[计算机类论文精品]c语言数据结构双链表源代码

[计算机类论文精品]c语言数据结构双链表源代码

ID:6690013

大小:27.00 KB

页数:7页

时间:2018-01-22

[计算机类论文精品]c语言数据结构双链表源代码_第1页
[计算机类论文精品]c语言数据结构双链表源代码_第2页
[计算机类论文精品]c语言数据结构双链表源代码_第3页
[计算机类论文精品]c语言数据结构双链表源代码_第4页
[计算机类论文精品]c语言数据结构双链表源代码_第5页
资源描述:

《[计算机类论文精品]c语言数据结构双链表源代码》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、c语言数据结构双链表源代码/******************************************************************************双链表的创建。此双链表要求为带头节点的,为了算法方便特采用了循环双链表。通过编程发现带头节点的也有其不便之处。为了保持表的一直有序性思考如下:1:表的一开始的创建就要有序。2:插入元素后要做到仍然有序。3:删除元素不会改变表的有序性4:所谓有序,即为非降序或者非升序排列。5:为了做到以上几点,考虑到链表的不易排序性质,特设置一个线性表作为输入缓存空间进行事先排序。关

2、于排序的方法有多种,为了快速完成采用了较为简单的插入排序。copyright:yywill帖请注明,做人要厚道******************************************************************************/#includetypedefstructLNode{   int   data;   struct LNode  *next;   struct LNode  *prior;}*Link,Position;typedefstructList_Struct{/*头节

3、点*/   Linkhead,tail;   intlen;   intvalue;/*0表示升序/非降序排列,1表示降序/非升序排列*/}LinkList,*List;/*****************************************************************************/MakeNode(Linkp,Listl,inte){/*创建节点*/   ListInitList();   p->data=e;   l->tail=p;/*此函数只设置尾节点,因为头节点只要设置一次*/}/******

4、***********************************************************************/ListInitList(){     /*初始化建立双链表*/   LinkList*l;   l=(LinkList*)malloc(sizeof(LinkList));   l->len=0;   l->head=l->tail;/*当头节点和尾节点指向同一地址时候表示为空表*/   returnl;}/************************************************

5、*****************************/CreateList(intn,Listl,int*e){  /*1.建立一个有序的带表头结点的双链表*/                                  /*n为元素个数*/inti,elem;Position*p1,*p2;Sort(n,e);p1=(Position*)malloc(sizeof(Position));elem=e[1];MakeNode(p1,l,elem);/*第一个节点*/p1->next=p1;p1->prior=p1;l->head=p1

6、;l->len=1;   if(n==0)return;/*如果链表只有一个项则不用执行下面的函数,直接退出*/       for(i=2;i<=n;i++){       p2=(Position*)malloc(sizeof(Position));       elem=e[i];       MakeNode(p2,l,elem);       (l->len)++;/*表长度计数,每循环一次加一*/       p1->next=p2;p2->next=l->head;       l->head->prior=p2;p2->prior

7、=p1;p1=p2;       }l->value=1;/*默认为非升序创建*/}/*****************************************************************************/ListTraverse(Listl){ /*遍历链表*/inti=0;Linkp;p=l->head;printf("(");   for(;ilen;i++){   printf("%d,",p->data);   p=p->next ;   }printf(")");}/************

8、*****************************************************************/Co

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

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

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