资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
这一次是有关链表的总结: 许多人对链表很陌生,链表是数据结构的核心内容,我们学的只是其中的一点, 多余的内容我也不太清楚,有兴趣的话可以查看有关数据结构的书。 下面主要谈谈创建简单的链表是怎么实现的。 一、 链表是由节点通过指针连在一块的,所以节点是其基本元素:、首先创建节点:1struct Node int a; Node *next; ; 链表的节点和一般的结构体有点区别,包含两个部分:1、数据域 2、指针域。 数据域是根据自己的需要所设计的,上例中 int a 就是数据域的内容,Node *next 是指针域的内容,我这个链表是模拟整型数据进栈出栈的过程。书上有个 内容:一般情况下,结构体是不含有本身结构体的变量,例如: struct Node int a; Node next; ; 这样就不正确了,具体原因是因为这个结构体没创建成功,不知道其所占空间, 系统无法为之分配空间,但是可以使自身的指针型数据,因为无论是何种类型 的指针,其所占空间大小都是 4 个字节,所占空间大小就很明确了。 下面我们就具体来实现这个创建链表的过程:、添加节点:2void creat(Node * cinp-a; p-next=Head; Head=p; 数据结构中成这种添加节点的方法叫头插法,自然有对应的尾插法(这里不说 了) 。注意几个细节吧:1、void creat(Node * Node *next; ; #include using namespace std; void creat(Node * coutp-a; p-next=Head; Head=p; int main() Node *head=NULL; creat(head); coutaaanext; 这样就可以实现你想查看的数据了 在主函数中这样就可以实现: int main() Node *head=NULL; for(int i=0;inext; delete Head; Head=p; 在主函数中只需要这样实现即可: int main() Node *head=NULL; for(int i=0;i using namespace std; void creat(Node * coutp-a; p-next=Head; Head=p; void show(const Node *Head) if(Head=NULL)coutanext; coutnext; delete Head; Head=p; int main() Node *head=NULL; for(int i=0;ip-a; p-next=Head; Head=p; 主函数中调用就可以使这个样子: int main() Node *head=NULL; int t; cint; creat(head,t); show(head); deletehead(head); show(head); return 0; 比如我们用链表来创建一个学生的管理信息等等都可以。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号