作者pk873 (P.K)
看板NTUE-CS104
标题[C++ ] 有关於很多人搞不懂的作业一
时间Tue Mar 20 02:34:03 2012
大略看了一下程式
很多人实际上搞不太懂老师是在教什麽
或者不知道在干嘛
先附上 范例程式码 应该只有这次会这样做吧
#include<iostream>
#include<cstdlib> // DEV C++ 5ed以上需要include
using namespace std;
int main(void){
int *array[6]; //用来存位址的指标阵列
for(int i=0;i<6;i++){
array[i]=NULL; //将指标阵列全部接地初始化(NULL为空)
}
int t=0,input=0,count=0;
cout<<"要输入多少数字?(1~5)\n";
cin>>count; //计算要输入多少数字
int *pointer=NULL; //用来指向被new出来的空间之指标
for(int i=0;i<count;i++){//依序new出空间并输入数字
cin>>input; //其实14-16行可以缩成两行但这样写取址取值不熟的人
//应该比较看得懂
pointer=new int; // (要缩减的话就不需要input变数)
*pointer=input; //虽是多此一举 但是实际上就是把input存进pointer指
//标指向的空间里
array[t]=pointer; //将位址存入指标阵列
t=input; //这次存的数字指向下一个要到的指标阵列之编号 所
//以要暂存
}
t=0; //纯粹需要一个变数代表阵列编号 所以拿之前的变数来
//利用
while(array[t]!=NULL){ //将路径重新追踪一遍
cout<<*(array[t])<<" ";
t=*(array[t]);
}
system("pause");
}
因为我觉得老师出的这项作业有点奥妙
经过变形後 虽然有一些串列(Link-list)的精神
但实际上以後也不太可能会这样用了
因为这就要提到所谓串列(Link-list)跟阵列(Array)的差别
以後大二资料结构会详细的提到
主要的不同在 阵列(Array) 宣告完後 空间就完全固定了
无法再往上增加 因为阵列是连续的空间 无法利用之後的宣告
把新的空间加在之前的阵列後面
而串列(Link-list)就如字面上的表达
有连接...(好像在说废话)
实际上就是分散在记忆体各处的空间
利用指标串连 连成一群可以被利用的大空间
举例说 就像汪洋的大海上有许多破碎的"小岛"
每一座岛的土地都很少 但所有的岛屿加起来就不得了
如果你想利用所有的土地 就必须造桥(指标)通往其他岛屿(空间)
然後造桥的规则是只能走单向 而且一座岛只能从一座桥出去
然後从第一座岛屿(Head) 到最後一座(NULL) 会连成像链子一般
就像下图
第一座岛(Head)--这是桥(指标)--> 岛屿(空间) --这是桥(指标)--> 岛屿(NULL)
中间的部分可以一直重复的
只要有需要 就可以随时加盖(新增空间)
至於为什麽只能有一座单向的桥 (只有一个指标指向下个空间)
是因为如果盖太多桥会浪费太多成本(也就是"空间" 指标也是要用空间存的)
在古老寸bit寸金的年代 可不允许人浪费空间
依造上面的资料结构 我们只能从头(head)进入串列
所以所以要找中间某座岛时会比较麻烦
就像有个探险家从第一座岛出发
一定要经过很多座岛才能到达自己想要的地方
因为桥(指标)就是这样盖(指)的
不像阵列可以指定某个编号直接读取
大致上就像上面所提的
所以阵列方便找寻资料
串列方便增加空间
这个就是他们的优点与限制
如果还是看不太懂我举的例子的话
可以想像一下
像RO那样的游戏
地图一定有传送点传到下一个地图
地图就像资料 传送点就像指标
这样讲不知道有没有FU 哈哈
各位加油吧!!
--
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄
▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄无数次实验证明▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄
▄▄▄
▄▄▄▄▄▄▄▄▄▄ 机会是自己撞出来的 ▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄
▄▄
________ █████████████████████████
▌ █ ██▌
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.127.36.184
1F:→ gcobc12632:PKㄉㄉ 03/20 11:48
2F:推 HotHsuan:嘴角失守>\\\< 在玩RO的时候看到这篇 XD 感谢学长!! 03/22 06:41
3F:→ HotHsuan:突然觉得玩RO有意义 03/22 06:48
4F:推 jerry771210:include <list> 05/02 21:01