数据结构单链表课程设计设计报告

数据结构单链表课程设计设计报告

ID:9804258

大小:314.50 KB

页数:28页

时间:2018-05-10

数据结构单链表课程设计设计报告_第1页
数据结构单链表课程设计设计报告_第2页
数据结构单链表课程设计设计报告_第3页
数据结构单链表课程设计设计报告_第4页
数据结构单链表课程设计设计报告_第5页
资源描述:

《数据结构单链表课程设计设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《数据结构》课程设计报告1)需求分析此程序主要用来实现单链表的创建、插入、删除、排序、并、交、差运算及输出等基本操作。程序需要根据使用者的需要来运算得出符合要求的结果①在程序运行的过程中根据提示进行输入,使用了scanf函数;②使用了printf函数进行输出;③程序输出符合使用者的需要的结果;④程序能够输出任意运算的正确结果。2)概要设计1.定义所需的数据结构data*nexttypedefstructLNode{intdata;//数据域structLNode*next;//指针域}LNode,*LinkList;2.模块

2、划分voidLinkListCreat(LinkList&L,intn);//创建voidListInsert(LinkListhead,inti,inte);//插入voidListDelete(LinkListhead,inti,inte);//删除voidprintList(LinkList&head);//输出voidLinkListsort(LinkList&L);//排序voidLinkListMerge(LinkList&La,LinkList&Lb,LinkList&Lc);//并voidLinkListJi

3、ao(LinkList&La,LinkList&Lb,LinkList&Lc);//交voidLinkListcha(LinkList&La,LinkList&Lb,LinkList&Lc);//差voidLinkListhebing(LinkList&La,LinkList&Lb,LinkList&Lc);//差集的并28voidmain();//主函数,分别调用以上的子函数3.功能设计首先利用元素逆序插入法建立链表,然后导出菜单,用switch调用各个子函数,实现链表的创建,插入,删除,排序,交,并,差等运算,其中排序用

4、的是冒泡法。3)详细设计//单链表的创建voidCreatList(Lnode*L)/*建立链表CreastList函数*/{Lnode*p;intvalue;L->next=NULL;while(1)/*当输入非0数值时*/{scanf("%d",&value);if(value==NULL)return;p=(Lnode*)malloc(sizeof(Lnode));/*建立P链表*/p->data=value;p->next=L->next;/*把后输入的插到前面*/L->next=p;}}//单链表的输出voidpr

5、intList(Lnode*head){printf("输出的结果如下:");Lnode*p=head->next;//头结点赋给Pif(p==NULL){printf("Listisempty!");return;}while(p!=NULL){printf("%d",p->data);28p=p->next;}printf("");}//单链表的插入voidListInsert(LinkListhead,inti,inte)//在单链表中第i个位置之前插入e元素{LinkListp,s;intj=0;p=he

6、ad;while(p&&jnext;++j;}if(!p

7、

8、j>i-1){printf("要插入的位置错误!");}s=(LNode*)malloc(sizeof(LNode));//给插入的元素开辟空间s->data=e;//改变指针指向s->next=p->next;p->next=s;}//单链表的删除intListDelete_L(Lnode*L,inti)/*删除函数*/{Lnode*p=L->next;intj=0;Lnode*q;28while(p->next&&j

9、-1){p=p->next;++j;}/*找出第i节点,并令p指向其前趋*/if(!p->next

10、

11、j>i-1)return0;q=p->next;p->next=q->next;free(q);return1;}//单链表的差运算Lnode*c,*a,*t;c=C=(Lnode*)malloc(sizeof(Lnode));a=A->next;while(a){p=B->next;while(p&&a->data!=p->data){p=p->next;}if(!(p&&p->data==a->data)){t=(Lno

12、de*)malloc(sizeof(Lnode));t->data=a->data;c->next=t;c=t;}a=a->next;}c->next=NULL;printf("进行差运算,结果为:");printList(C);C=(Lnode*)malloc(sizeof(Ln

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

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

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