精品网站建设费用,制作网站的过程是对信息的,做网投网站好,百度百科词条创建入口定义一个链表的节点之前说到树#xff0c;里面也有一个节点#xff0c;节点是用来存数据的#xff0c;不管是树还是其他什么数据结构#xff0c;最终的目的都是用来处理数据的#xff0c;所以节点里面包含两个东西#xff0c;一个是指针#xff0c;指针可以指向其他位置… 定义一个链表的节点之前说到树里面也有一个节点节点是用来存数据的不管是树还是其他什么数据结构最终的目的都是用来处理数据的所以节点里面包含两个东西一个是指针指针可以指向其他位置可以是下一个节点可以是上一个节点还有一个东西就是数据本身我们用一个int来代表数据如果是很复杂的数据我们也可以用结构体表示。typedef struct Node{ int data; struct Node * next;}*p_Node;定义一个链表头结构体链表头也可以是一个节点可以认为他就是一个指针这个指针就指向这个链表的表头所以我们还是用上面的结构体来声明这个头节点再换个名字就好了。typedef struct head{ p_Node root;};声明一个链表头一个链表没有头是不行的就像一个家庭没有户主是不行的也像一个球队如果没有队长也是不行的我们打正式比赛还需要教练但是正常一个球队我们必须有一个队长队长非常重要就像一个链表一样链表头也是一样的重要。 /*初始化一个链表*/ struct head p_head; /*链表为空链表指向下一项为空说明链表为空*/ p_head.root NULL;我们的链表头是空的没有指向任何地方这样做有没有问题所以执行了那几行代码后会变成这个样子。这里提一下可能很多初学者觉得这个有没有问题到底是不是这样的我们回顾声明和定义什么是声明什么是定义呢声明和定义的主要区别是有没有分配内存空间我们使用struct head p_head定义了一个指针那么这个就需要分配内存空间。向链表插入一个数据插入数据的时候因为我们需要该表头指针的位置所以会做的判断正常插入一个数据到链表里面去的时候先是开辟一个节点然后操作这个节点的next指针然后让链表的尾部指向这个节点。链表源码示例#include stdio.h#include stdlib.htypedef struct Node{ int data; struct Node * next;}*p_Node;typedef struct head{ p_Node root;};/*直接做插入的动作不给head 单独分配内存*/int list_insert(struct head * p_head,int data){ /*新建一个节点*/ p_Node pTemp (p_Node)malloc(sizeof(struct Node)); /*把数据放入这个新建的节点里面*/ pTemp-data data; pTemp-next NULL; if(p_head-root NULL) { p_head-root pTemp; printf(#1list_insert:%d\n,data); return (0); }else{ /*找到链表的尾部节点*/ p_Node pTemp1 p_head-root; while(pTemp1-next ! NULL) { pTemp1 pTemp1-next; } /*插入新节点*/ pTemp1-next pTemp; printf(#2list_insert:%d\n,data); return (0); }}int list_traverse(p_Node node){ if(node NULL) { printf(list_traverse: pHead null \n); return (-1); } p_Node pTemp1 node; while(pTemp1 ! NULL) { printf(data:%d\n,pTemp1-data); pTemp1 pTemp1-next; }}int main(){ int i 0; printf(main Entering ...\n); /*初始化一个链表*/ struct head p_head; /*链表为空链表指向下一项为空说明链表为空*/ p_head.root NULL; /*像链表插入数据*/ for(i 0;i 10;i) { list_insert(p_head,i); } /*遍历链表*/ list_traverse(p_head.root); printf(main Exiting ...\n); return (0);}执行结果最后用上面这个图片来表示链表就很简单了我们后面还会看到循环链表我们知道链表的尾部是指向NULL的如果我们把最后的那个链表指向head就是循环链表。—————END—————扫码或长按关注回复「 加群 」进入技术群聊