收藏 分享(赏)

代码:天津理工大学数据结构实验——链表的创建及操作.doc

上传人:dzzj200808 文档编号:2241067 上传时间:2018-09-07 格式:DOC 页数:6 大小:41KB
下载 相关 举报
代码:天津理工大学数据结构实验——链表的创建及操作.doc_第1页
第1页 / 共6页
代码:天津理工大学数据结构实验——链表的创建及操作.doc_第2页
第2页 / 共6页
代码:天津理工大学数据结构实验——链表的创建及操作.doc_第3页
第3页 / 共6页
代码:天津理工大学数据结构实验——链表的创建及操作.doc_第4页
第4页 / 共6页
代码:天津理工大学数据结构实验——链表的创建及操作.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、/* Note:Your choice is C IDE */#include #include #includetypedef struct Nodeint data;struct Node *pNext;NODE, *PNODE;PNODE create_list(void); /创建链表void traverse_list(PNODE); /输出int is_empty(PNODE pHead); /判断是否为空int length_list(PNODE); /计算长度void insert_list(PNODE,int,int); /插入void delete_list(PNODE,i

2、nt,int*);/删除void sort_list(PNODE); /排序void reverse(PNODE); /倒置void delsame(PNODE); /删除重复元素void main()int len,val;PNODE pHead=NULL;pHead= create_list();len=length_list(pHead);printf(“length=%dn“,len);traverse_list(pHead);sort_list(pHead);traverse_list(pHead);insert_list(pHead,6,99);traverse_list(pHea

3、d);sort_list(pHead);traverse_list(pHead);if( is_empty(pHead) )printf(“emptyn“);else printf(“no emptyn“);delete_list(pHead,3,printf(“删除的元素为 %dn“,val);traverse_list(pHead);reverse(pHead);traverse_list(pHead);delsame(pHead);traverse_list(pHead);PNODE create_list()int len;int i;int val;PNODE pNew;/新节点PN

4、ODE pHead;/尾指针PNODE pTail;/头指针pHead=(PNODE)malloc(sizeof(NODE);/为头结点分配空间pTail=pHead;pTail-pNext=NULL;if(NULL= pHead)printf(“分配失败 n“);exit(-1);printf(“请输入您需要生成的链表节点的个数:len=“);scanf(“%d“,for(i=0;idata=val;pTail-pNext=pNew;pNew-pNext=NULL;pTail=pNew;return pHead;void traverse_list(PNODE pHead)PNODE p;p

5、=pHead-pNext;while (NULL != p)printf(“%d “,p-data);p=p-pNext;printf(“n“);return;int is_empty(PNODE pHead)if(NULL=pHead-pNext)return 1;elsereturn 0;int length_list(PNODE pHead)int len=0;PNODE p=pHead;while(NULL!=p-pNext)len+;p=p-pNext;return len;void sort_list(PNODE pHead)/类似于数组排序int i,j,t;PNODE p,q;

6、int len;len=length_list(pHead);for(i=0,p=pHead-pNext;ipNext)for(j=i+1,q=p-pNext;jpNext)if(p-data q-data)t=p-data;p-data=q-data;q-data=t;return;void insert_list(PNODE pHead,int pos,int val)int i=0;PNODE p=pHead;PNODE pNew;while(NULL!=p i+;if(ipos-1 | NULL=p)printf(“插入位置不存在 n“);exit(-1); pNew=(PNODE)m

7、alloc(sizeof(NODE);if(NULL=pNew)printf(“动态分配内存失败 n“);exit(-1);pNew-data=val;pNew-pNext=p-pNext;p-pNext=pNew;void delete_list(PNODE pHead,int pos,int *pVal)int i=0;PNODE q,p=pHead;while(p-pNext!=NULL i+;if(p=NULL | ipos-1)printf(“删除位置不存在 n“);exit(-1);q=p-pNext;p-pNext=q-pNext;*pVal=q-data; free(q);vo

8、id reverse(PNODE pHead)PNODE p,q,s;s=pHead;pHead=pHead-pNext;p=NULL;q=pHead;while(q!=NULL)pHead=pHead-pNext;q-pNext=p;p=q;q=pHead; s-pNext=p;pHead=s; void delsame(PNODE pHead)int a;PNODE p,q,r;p=pHead-pNext;while(p!=NULL)a=p-data;loop:for(q=p;q-pNext!=NULL;q=q-pNext)if(q-pNext-data=a)r=q-pNext;q-pNext=r-pNext;free(r);goto loop;p=p-pNext;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报