欢迎来到天天文库
浏览记录
ID:48454158
大小:84.50 KB
页数:20页
时间:2020-01-31
《链表基本操作.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、.题目一链表基本操作一、数据结构与核心算法的设计描述1、单链表的最大长度#defineMAXSIZE1002、单链表的结点类型定义/*定义elemtype为int类型*/typedefintelemtype;/*单链表的结点类型*/typedefstructSTD{elemtypeelem;STD*next;}list,*linklist;3、初始化单链表/*函数功能:对链表进行初始化。参数:链表(linklistL)。成功初始化返回1,否则返回0*/intinit(linklist&L){L=(linklist)malloc(
2、sizeof(list));//头结点申请内存。if(!L)//判断有无申请到空间。return0;//没有申请到内存,参数失败返回0L->next=NULL;L->elem=0;//单链表中有多少元素return1;//成功参数返回1}4、清空单链表/*函数功能:把链表清空。参数:链表(linklistL)。成功清空链表返回1*/intmakeempty(linklist&L){linklistp,q;p=L->next;while(p)//当p非空时,删除p{q=p;p=p->next;free(q);}L->next=NU
3、LL;//只剩头指针,所以L->next=NULLL->elem=0;//清空后链表中元素为0return1;//清空后返回1}5、求链表长度/*函数功能:返回链表的长度。参数;链表(linklistL)。函数返回链表的长度*/intgetlength(linklistL)..{linklistp;p=L->next;intj=0;while(p){j++;//统计链表中元素p=p->next;}returnj;//最后返回链表长度.}6、判断链表是否为空/*函数功能:判断链表是否为空。参数;链表(linklistL)。链表为空
4、时返回0,不为空返回1*/intisempty(linklistL){if(L->next)//头结点后有元素表示链表不空则返回1return1;elsereturn0;//头结点后没有元素表示链表不空则返回0}7、检查链表是否为满/*函数功能:判断链表是否为满。参数;链表(linklistL)。链表为满时返回0,不为满返回1*/intisfull(linklistL){if(L->elem<=MAXSIZE)//头结点的elem储存的为链表的长度。return1;//其小于MAXSIZE表示链表不满elsereturn0;//
5、否则返回0}8、遍历链表/*函数功能:遍历链表,输出每个节点的elem值。参数;链表(linklistL)通过循环逐个输出节点的elem值*/voidshow(linklistL){linklistp;p=L->next;if(isempty(L)==0)//当链表为空时则输出链表为空{cout<<"链表为空!";}while(p)//当链表为不空时则输出链表每个节点的elem值{cout<elem<<"";p=p->next;}..cout<6、;链表(linklistL),给定元素(inti)如果链表中有给定元素(i)则返回1,否则返回0*/intfind(linklistL,inti){linklistp;p=L->next;while(p){if(p->elem==i)//判断有无元素I,有返回1return1;p=p->next;}return0;//没有找到返回0}10、从链表中查找与给定元素值相同的元素在表中的位置/*函数功能:从链表中查找给定元素的位置。参数;链表(linklistL),给定元素(inti)如果链表中有给定元素i则返回元素的位置,没有则返回7、0*/intlocation(linklistL,inti){linklistp;intj=0;p=L->next;while(p){j++;if(p->elem==i)//判断有无元素i,有返回其的位置jreturnj;p=p->next;}return0;//没有则返回0}11、向链表中插入元素/*函数功能:向链表中的某个位置插入元素。参数;链表(linklistL),位置(inti),元素(elemtypee)。成功插入返回1,否则返回0*/intinsert(linklist&L,inti,elemtypee){link8、listp,s;intj=0;p=L;while(p&&jnext;..j++;}if(j>i-19、10、!p)//不符合条件返回0return0;s=(linklist)malloc(sizeof(list));//给
6、;链表(linklistL),给定元素(inti)如果链表中有给定元素(i)则返回1,否则返回0*/intfind(linklistL,inti){linklistp;p=L->next;while(p){if(p->elem==i)//判断有无元素I,有返回1return1;p=p->next;}return0;//没有找到返回0}10、从链表中查找与给定元素值相同的元素在表中的位置/*函数功能:从链表中查找给定元素的位置。参数;链表(linklistL),给定元素(inti)如果链表中有给定元素i则返回元素的位置,没有则返回
7、0*/intlocation(linklistL,inti){linklistp;intj=0;p=L->next;while(p){j++;if(p->elem==i)//判断有无元素i,有返回其的位置jreturnj;p=p->next;}return0;//没有则返回0}11、向链表中插入元素/*函数功能:向链表中的某个位置插入元素。参数;链表(linklistL),位置(inti),元素(elemtypee)。成功插入返回1,否则返回0*/intinsert(linklist&L,inti,elemtypee){link
8、listp,s;intj=0;p=L;while(p&&jnext;..j++;}if(j>i-1
9、
10、!p)//不符合条件返回0return0;s=(linklist)malloc(sizeof(list));//给
此文档下载收益归作者所有