里美ゆりあ,金刚力武道,西安都市快报直播
今天学习了链表内的创建和添加,先总结一下我犯的错误
先上代码
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 typedef struct node 5 { 6 int id; 7 char *name; 8 char *tel; 9 struct node *next; 10 }node; 11 node *getnode(int id,char *name,char *tel); 12 void addnode(node **pphead,node **ppend,node *pnode); 13 int main() 14 { 15 node *phead = null; //1 16 node *pend = null; 17 18 addnode(&phead,&pend,getnode(1,"cyc","164864613521")); 19 addnode(&phead,&pend,getnode(2,"xmx","164864613521")); 20 addnode(&phead,&pend,getnode(3,"wdh","164864613521")); 21 addnode(&phead,&pend,getnode(4,"yk","164864613521")); 22 23 while(phead != null) 24 { 25 printf("%d %s %s\n",phead->id,phead->name,phead->tel); 26 phead = phead->next; 27 } 28 29 30 31 return 0; 32 } 33 node *getnode(int id,char *name,char *tel) 34 { 35 node *ptemp = (node *)malloc(sizeof(node)); 36 ptemp->id = id; 37 ptemp->name = name; 38 ptemp->tel = tel; 39 ptemp->next = null; 40 41 return ptemp; 42 } 43 void addnode(node **pphead,node **ppend,node *pnode) // 2 44 { 45 if(*pphead == null) 46 { 47 *pphead = pnode; 48 *ppend = pnode; 49 } 50 else 51 { 52 (*ppend)->next = pnode; 53 *ppend = pnode; 54 } 55 return; 56 57 }
代码注释:
思路分析:
本次练习首先是数据结构中简单链表中单个结点的创建,经过分析可得,若是想要在程序运行的过程当中进行创建添加操作:
链表简单的添加,此处的添加分为两种情况:
程序中原先若是有链表已经出现,那么头指针是指向第一个结点可以不变,此时尾指针所指向结点内所存储的 pnext 就可以指向添加的结点,然后继续把尾指针指向最后一个结点。
2019-04-18 22:37:16 编程小菜鸟反思,大佬勿喷 谢谢!
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论