数据结构将一个链表拆分成三个链表.doc

数据结构将一个链表拆分成三个链表.doc

ID:56048073

大小:120.29 KB

页数:8页

时间:2020-06-19

数据结构将一个链表拆分成三个链表.doc_第1页
数据结构将一个链表拆分成三个链表.doc_第2页
数据结构将一个链表拆分成三个链表.doc_第3页
数据结构将一个链表拆分成三个链表.doc_第4页
数据结构将一个链表拆分成三个链表.doc_第5页
资源描述:

《数据结构将一个链表拆分成三个链表.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《数据结构》实验报告◎实验题目:将一个链表拆分成三个链表。◎实验目的:1、掌握使用VisualC++6.0上机调试程序的基本方法;2、掌握链表结构中的基本操作并学会灵活运用;3、提高自己分析问题和解决问题的能力,在实践中理解教材上的理论。◎实验内容:建立链表并存储输入的数据,根据各节点数据的类型,建立三个链表并将不同类型的数据分别输出。一、需求分析1、输入的形式和输入值的范围:根据提示,输入链表中的各数据,输入回车结束输入,所输入的数据元素为字符类型。2、输出的形式:根据输入的字符串中数据的类型(字母、数字和其它),分类输出。3、程序所能达到的功能:

2、根据提示输入数据,然后根据数据元素类型的不同,将其分别输出,输出结束后提示是否结束,根据需要继续操作。由此可以实现实验内容中的要求。4、测试数据:输入链表中的各元素:*?9Li(0)@0211字母:Li数字:900211其它:*?()@是否结束?是,输入0;否,输入10谢谢使用,再见!二概要设计本程序使用单链表表示的线性表,建立链表并存储数据,拆分后的三个链表都用带头结点的单链表存放,先建立三个头结点,用一指针扫描待拆分的链表,然后根据各结点的数据的类型不同将其分别插入三个新链表中,由此实现了对链表的拆分,最后将链表中的数据输出即可实现题目要求。

3、本程序的基本操作和模块:①主程序模块main()对输入的操作进行提示,调用其它的各个函数;②建立链表并输入数据模块Create(LinkList*&L)③输出链表中的数据模块Printf(LinkList*L)④将原链表拆分成三个链表的模块:Fun(LinkList*hd,LinkList*ha,LinkList*hb,LinkList*hc)程序流程如下所示开始Create函数否Fun函数Printf函数是否结束是结束三详细设计  (一)元素类型、结点类型和指针类型typedefstructLNode{chardata;structLNode*ne

4、xt;}LinkList; (二)每个模块的分析1、主程序模块分析intmain(){LinkList*hd,*ha,*hb,*hc;//定义四个头结点指针,*hd代表待拆分链表,*ha,*hb和*hc分别代表字母,数字和其它类型的链表ha=(LinkList*)malloc(sizeof(LinkList));//创建ha头结点hb=(LinkList*)malloc(sizeof(LinkList));//创建hb头结点hc=(LinkList*)malloc(sizeof(LinkList));//创建hc头结点inti;//定义整型数据i,用

5、于判断是否终止本程序的运行charm;//定义字符型数据m,存放输入i的值之后的回车while(1){Create(hd);//调用建立单链表并输入数据的函数Fun(hd,ha,hb,hc);//调用拆分链表的函数printf("字母:");//提示输出的链表中数据为字母类型Printf(ha);//调用输出链表元素的函数,输出ha链表中的数据(字母类型)printf("数字:");//提示输出的链表中数据为数字类型Printf(hb);//调用输出链表元素的函数,输出hb链表中的数据(数字类型)printf("其它:");//提示输出的

6、链表中数据为其它类型Printf(hc);//调用输出链表元素的函数,输出hc链表中的数据(其它类型)printf("");printf("是否结束?是,输入0;否,输入1");//提示是否终止本程序的运行scanf("%d",&i);//输入整数iprintf("");if(i==1)scanf("%c",&m);//存放输入i的值之后的回车if(i==0)break;//当i为0时,结束循环,结束运行}printf("谢谢使用,再见!");return0;}2、建立链表和输入数据模块分析voidCreate(LinkLis

7、t*&L){LinkList*s,*r;L=(LinkList*)malloc(sizeof(LinkList));//创建头结点L->next=NULL;r=L;//r始终指向终端结点,开始时指向头结点printf("输入链表中的各元素:");//用于提示字符串的输入while(1){s=(LinkList*)malloc(sizeof(LinkList));//创建新结点scanf("%c",&s->data);//输入新节点的数据r->next=s;//将*s插入*r之后r=s;if(s->data=='')break;//若输入回车,

8、则字符串的输入结束}r->next=NULL;//终端结点next域置NULL}3、输出链表元素模块分析vo

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

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

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