欢迎来到天天文库
浏览记录
ID:41567503
大小:67.29 KB
页数:11页
时间:2019-08-27
《C语言单链表基本函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、•无空间限制带头结点单链表结构体1.宏定义:#include#include#defineOVERFLOW-2#dcfincOK1#defineTRUE1#defineERROR0#defineFALSE0#defineElemType****;2.结构体:2.无空间限制单链表结构休:typedefstructNode{ElemTypedata;structNode*next;}Node,*Linklist;3.基本函数:intInitlist_Linklist_l(LinklistL)/*初始化单
2、链表:1•先决条件:定义一个全局尾指针变量;2•函数作用:初始化链表。*/{L->next=NULL;tail=L;printfC*单链表现初始化了!“);returnOK;}intInitlist_Linklist_2(LinklistL)/*初始化单链表:1•先决条件:初始化结构体数据即L->next=NULL(-次咸执行一次Initlist_Linklist_l,定义一个全局尾指针变量;2•函数作用:删除已有链表,并初始化单链表*/{Node*p,*q;if(p=L->next)while(p)q=p->ncxt;free(p
3、);p=q;L->next=NULL;tail=L;printfC单链表现初始化了!“);returnOK;}intIncrease_LinkIist(LinklistL)/*尾接法增加数据•先决条件:先按初始化函数初始化,定义一个全局尾指针变量;2•函数作用:为单链表L增加数据,以标识符“0”结束*/{intpanduan;ElemTypee;Node*p;printf(”输入0结束增加数据!“);doprintfC*请输入数据:”);scanf(”%d",&e);〃因ElemType不同而不同,特别是字符类型getchar(
4、);if(c==0)//MElemType不同而不同,特别是字符类型{printf(“再次输入0表示结束增加数据,输入非零将把0增加到数据中An“);printf(”请输入:”);scanf("%d",&panduan);getchar();if(panduan==0){printf(”正常结束增加数据!rT);returnOK;}}p=(Nodc*)malloc(sizeof(Node));if(p==NULL){printf(M屮请空间失败,请稍后再试!");returnOVERFLOW;}tail->next=p;tail=
5、p;tail->data=e;tail->next=NULL;e++;}while(e!=O);//因ElemType不同而不同,特别是字符类型printf(”正常结束增加数据!“);retumOK;}intInput_Linklist(LinklistL)/*遍历输出函数:1•先决条件:先决条件:先按初始化函数初始化,使链表为带头结点;2•函数作用:输岀单链表中各个数据*/{Node*p;intcount=0;for(p=L->next;p!=NULL;p=p->next){printf(”%d*p->data);//会因Ele
6、mType不同而不同count++;if(count%10==0)printf(MM);}printf(””);returnOK;}intDelete_Linklist_l(LinklistL)/*删除函数:1•先决条件:初始化单链表或初始化结构体数据即L->next=NULL,单链表以值(要求为数,不能是字符)排列,定义一个全局尾指针变量;2•函数作用:删除表中所不大于maxk且不小于mink的元素。*/{ElemTypemink,maxk;Node*o,*p,*q;intcount=();printf(”删除表中所不大于ma
7、xk且不小于mink的元素。”);printf(n请输入mink和maxk值:”);scanf(M%d%d",&mink,&maxk);//因ElemType不同]何不同getchar();do{if(maxknext;p!=NULL
8、;p=q)q=p->next;if(mink<=p->data&&p->data<=maxk){free(p);o->next=q;count++;}elseo=p;)tail=o;printf('洪删除满
此文档下载收益归作者所有