c++实验设计(二)--单向链表的设计

c++实验设计(二)--单向链表的设计

ID:7781187

大小:42.00 KB

页数:5页

时间:2018-02-25

c++实验设计(二)--单向链表的设计_第1页
c++实验设计(二)--单向链表的设计_第2页
c++实验设计(二)--单向链表的设计_第3页
c++实验设计(二)--单向链表的设计_第4页
c++实验设计(二)--单向链表的设计_第5页
资源描述:

《c++实验设计(二)--单向链表的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、这一次是有关链表的总结:许多人对链表很陌生,链表是数据结构的核心内容,我们学的只是其中的一点,多余的内容我也不太清楚,有兴趣的话可以查看有关数据结构的书。下面主要谈谈创建简单的链表是怎么实现的。一、链表是由节点通过指针连在一块的,所以节点是其基本元素:、首先创建节点:structNode{inta;Node*next;};链表的节点和一般的结构体有点区别,包含两个部分:1、数据域2、指针域。数据域是根据自己的需要所设计的,上例中inta就是数据域的内容,Node*next是指针域的内容,我这个链表是模拟整型数据进栈出栈的过程。书上有个内容:一般情况下,结构体是不含

2、有本身结构体的变量,例如:structNode{inta;Nodenext;};这样就不正确了,具体原因是因为这个结构体没创建成功,不知道其所占空间,系统无法为之分配空间,但是可以使自身的指针型数据,因为无论是何种类型的指针,其所占空间大小都是4个字节,所占空间大小就很明确了。下面我们就具体来实现这个创建链表的过程:、添加节点:voidcreat(Node*&Head){Node*p=newNode;cin>>p->a;p->next=Head;Head=p;}数据结构中成这种添加节点的方法叫头插法,自然有对应的尾插法(这里不说了)。注意几个细节吧:1、voidc

3、reat(Node*&Head)中的Head前加了个“&”符号表示引用,这表明从主函数中传递过来的头节点的别名是Head,就是在该函数中改变Head的指向影响到了主函数传递过来的参数的指向,“*”表示的是指针变量。创建链表一定要用堆空间的形式来为节点申请空间,这样做当然有好处,如果不用堆空间,那么在该函数中申请的局部自动变量会随着该函数的结束而被销毁空间,那么所创建的链表也就不复存在了。故用堆空间来申请。我们在主函数中具体的操作一下:structNode{inta;Node*next;};#includeusingnamespacestd;vo

4、idcreat(Node*&Head){Node*p=newNode;cout<<"请输入一个整数:";cin>>p->a;p->next=Head;Head=p;}intmain(){Node*head=NULL;creat(head);cout<a<

5、eat(head);}cout<a<

6、数中,其指向就改变了,编程指向链表的头节点的位置,这就是引用传递的效果“voidcreat(Node*&Head)”中Head前是“&”,引用的标志,也就是起这个作用,改变主函数中head的指向。下面就写一个对链表遍历的函数:、链表的遍历voidshow(constNode*Head){if(Head==NULL){cout<<"链表是空";}while(Head!=NULL){cout<a<<"";Head=Head->next;}}这样就可以实现你想查看的数据了在主函数中这样就可以实现:intmain(){Node*head=NULL;for

7、(inti=0;i<5;i++){creat(head);}show(head);return0;}下面在说如何删除链表:、删除链表的函数设计:voiddeletehead(Node*&Head){Node*p=Head;while(p!=NULL){p=Head->next;deleteHead;Head=p;}}在主函数中只需要这样实现即可:intmain(){Node*head=NULL;for(inti=0;i<5;i++){creat(head);}show(head);deletehead(head);show(head);return0;}整个代码:

8、struc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。