C链表好难,谁能简单点的告诉我
我简单的用比喻来说明。
剩下的还是得靠自己对编程的悟性了。声明:可以把向前挂车厢想象成把后一节车厢的地址赋值给前一车厢的next指针。首先我们把链表的节点比喻成火车的车厢。每节车厢的前面都有一个钩子,我们把这想想成指针,他用来连接上一节车厢。接着使用尾插法的话,也就是先要找到火车尾,即链表的尾指针。然后把自己要加进去的车厢挂到火车的最后面。最后标记这节车厢为火车尾(把地址赋值给尾指针)。使用头插法的话,就是先找到火车头,即链表的头指针。然后把头指针后面的那节车厢挂到你要插入链表的那节车厢的后面。最后在把插入链表的那节车厢挂到火车头去(把地址赋值给头指针)。举例:(火车车厢)struct node{intnum;node*next;};(火车头)node* Head;(火车尾)node* End;(车厢1)node* m1;(车厢2)node* m2;//开始前链表只有火车头,后面没有车厢,车头也是车尾。Head=End=NULL;//1.头插法//申请车厢1m1=new node;m1->next=NULL;if(Head==NULL) //如果只有火车头执行这里面的{Head=m1; //把第一节车厢先挂到车头先End=m1;//现在只有这节车厢,所以他是尾车厢}else //如果除了火车头还有其他车厢执行这里面的{m1->next=Head; //先把火车头后面的车厢挂到第一节车厢后面先Head=m1; //再把整串火车挂回车头}//2.尾插法//申请车厢2m2=new node;m2->next=NULL;if(Head==NULL) //如果只有火车头执行这里面的{Head=m2; //把第一节车厢先挂到车头先End=m2;//现在只有这节车厢,所以他是尾车厢}else //如果除了火车头还有其他车厢执行这里面的{End->next=m2; //把车厢挂到车尾去End=m2; //标记这节车厢是车尾}
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇