作者chchwy (mat)
看板NTUE-CS100
标题Re: [课业] 程设作业
时间Tue Apr 8 23:02:29 2008
上面我已经把三个观念都讲了
接下来linked list就简单啦
来做功能1)串头
先用概念图讲解,这是一个linked list
现在我们要插入一个新node ■
head→□→□→□→□→□
↑
■要插在head跟□之间
两个动作就可以完成
setp1.新node■的屁股指向原来的list头□
step2. 将head指向新node■
就完成新linked list啦
head→■→□→□→□→□→□
就完成插入动作啦
int main(){
node* head=0;
int input;
while(1){
cout << "插入新资料: "; //读进新资料
cin >> input;
node* insertNode = new node; //new一个新node,
//这个node的位址储存在insertNode
//step1.
insertNode->next = head;
//step2.
head = insertNode;
//插入finish! step1,2顺序不能对调,原因自己想一下
//为了检视我们的插入结果正不正确
//弄个function印出整个list ,funciton内容在下面
printList(head);
}
return 0;
}
void printList(node* head){
node* p = head;
cout << "head->";
while(p){ //这行的意思等同p!=NULL,为什麽呢
//记得C++里,零是False,非零就是true
cout << p->data << "->" ; //print node data
p = p->next; //p往後移动一个node
}
}
简单讲解,我们弄个个指标p,这个指标p指的位址一开始跟head相同
p
↓
head→□→□→□→□→□
然後 每印出一个node data,就把p往後移动一个node
直到最後那个node屁股後已经没东西了,也就是空指标才停止。
--
夜精小德
Char - 巨龙之喉 (前
月神殿) PvP
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.68.15.230
※ 编辑: chchwy 来自: 203.68.15.230 (04/08 23:19)