C语言.链表.学习笔记

C语言.链表.学习笔记

ID:37921828

大小:28.00 KB

页数:4页

时间:2019-06-02

C语言.链表.学习笔记_第1页
C语言.链表.学习笔记_第2页
C语言.链表.学习笔记_第3页
C语言.链表.学习笔记_第4页
资源描述:

《C语言.链表.学习笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言.链表.学习笔记链表的插入节点的小程序,其原理与删除节点的差不多。都是首先要找到欲处理的节点。插入节点的情况有3种,即所谓的头节点,尾节点和中间节点。1.头节点的处理:将节点插入在链表第一个元素前面,只要将新建立的节点指针指向链表的第一个节点就可以了。2.尾节点的处理:将节点插入在链表的最后一个元素后面,将尾节点的指针指向新建立的节点,然后将新建立的节点指向NULL位置。3.中间节点的处理:将节点插入在链表中间的任意位置,比如有p,q2个节点(p在前),则需将新建立的节点指向q,将p指向新建立的节点。在下面的程序中还用到了冒泡排序法。不

2、要小瞧这个冒泡排序哦。据说GOOGLE的笔试题中一个冒泡就能让60%的人回家。好了,下面贴出程序。#include#includestructlist//定义链表的结构,方法很固定,熟记{intdata;structlist*next;};typedefstructlistnode;typedefnode*link;link  create_list(intarray[],intnum)//创建链表,以数组和元素个数作为形参变量{linktmp1,tmp2,pointer;//pointer指针始终指向该

3、链表,tmp1和tmp2指针用来将数组元素输入到节点中inti;pointer=(link)malloc(sizeof(node));//首先分配地址空间pointer->data=array[0];//输入第一个元素tmp1=pointer;for(i=1;inext=NULL;  tmp2->data=array[i];  tmp1->next=tmp2;  tmp1=tmp2;}returnpointer;}voidbubble_so

4、rt(linkpointer,intnum)//给出链表指针和节点个数,可以用冒泡算法进行排序{linktmp;inti,j,k;for(i=1;idata>tmp->next->data)   {    k=tmp->data;    tmp->data=tmp->next->data;    tmp->next->data=k;   }   tmp=tm

5、p->next;  }}}voidprint_list(linkpointer){while(pointer){  printf("2:%d",pointer->data);  pointer=pointer->next;}}linkinsert_node(linkpointer,linkbtmp,intvalue){linknewnode;if(btmp==NULL)//此为头节点前需要插入元素的情况{  newnode=(link)malloc(sizeof(node));  newnode->data=value;  newnod

6、e->next=pointer;  returnnewnode;}else{  if(btmp->next==NULL)//此为尾节点后需要加入的元素的情况  {   newnode=(link)malloc(sizeof(node));   newnode->data=value;   btmp->next=newnode;   newnode->next=NULL;  }  else//此为在链表中间需要加入元素的情况  {   newnode=(link)malloc(sizeof(node));   newnode->data=val

7、ue;   newnode->next=btmp->next;//注意下面这两句的先后顺序,要先指明新节点的后续节点。   btmp->next=newnode;  }  returnpointer;//返回链表头指针}}linksearch_insert_location(linkpointer,intvalue){linktmp,btmp;intOTRUE=1;tmp=pointer;btmp=NULL;while(tmp&&OTRUE){  if(valuedata)  {   OTRUE=0;  }  if(OTRUE) 

8、 {   btmp=tmp;   tmp=tmp->next;  }}pointer=insert_node(pointer,btmp,value);returnp

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

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

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