数据结构线性表的链式存储结构

数据结构线性表的链式存储结构

ID:22287507

大小:144.36 KB

页数:11页

时间:2018-10-28

数据结构线性表的链式存储结构_第1页
数据结构线性表的链式存储结构_第2页
数据结构线性表的链式存储结构_第3页
数据结构线性表的链式存储结构_第4页
数据结构线性表的链式存储结构_第5页
资源描述:

《数据结构线性表的链式存储结构》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、态昌航全大学矣發板去课程名称:数据结构实验名称:实验二:线性表的链式存储结构班级:080611学生姓名:赖凌学号:08061101指导教师评定:签名:题目:设计并实现以下算法:给出用单链表存储多项式的结构,利用后接法生成多项式的单链表结构,实现两个多项式相加的运算,并就地逆置相加后的多项式链式。一、需求分析1.实现两张线性表的链式存储,合并及删除值相同元素的操作。2.在演示过程序中,用户敲击键盘,即可观看演示结果。3.程序执行的命令包括:(1)构造线性链表A(2)构造线性链表B(3)求两张表的并(4)删除C中值相同的元素二、概要设计1.为实现

2、上述算法,需要线性表的抽象数据类型:ADTLinkIJstList{数据对象:D={ai:

3、a;^RlemSet,i=l…n,n^O}数据关系:Rl={aj^D,i=2,基本操作:StatusTnitList(LinkList&L)//操作结果:构造一个空的线性链表L。StatusMakeNode(Link&p,ElemTypee);//分配由p指向的值为e的结点,并返回OK;若分配失败,则返回ERRORStatusAppend(LinkList&L,Links);//将指针s所指(彼此以指针相链接)的一串结点链接在线性链表

4、L的最后一个结点之后,并改变链表L的尾指针指向新的馬结点StatusListEmpty(LinkkistL);//若线性链表L为空表,则返回TRUE,否则返回ERROR。IntListLength(LinkListL);//返回线性链表中L最后一个结点的位置。ElemTypeGetCurElem(Linkp);//己知P指向线性链表中的一个结点,返回p所指结点中数据元素的值PositionGetllead(LinkListL);//返回线性链表L中头结点的位置PositionGetLast(LinkListL);//返回线性链表L中最后一个结

5、点的位置}ADTLinkList1.本程序有三个模块:(1)主程序模块voidmain(){初始化;/接受命令;显示结果;}}(2)线性链表甲.元模块:实现线性链表抽象数据类型;(3)结点结构单元模块:定义线性链表屮的结点结构。三、详细设计1.元素类型,结点类型structnode{intdate;structnode氺next;};2.对抽象数据类型屮的部分基本操作的伪码算法如下:structnode*creat()structnode*head,*pa,*pb;hcad=(structnode*)malloc(sizeof(structn

6、ode));if(!head)exit(0);pa=head;pb=(structnode*)malloc(sizeof(structnode));if(!pb)exit(0);scanf("%d",&pb->date);if(!pb~>date){hcad->ncxt=NULL;free(pb);returnhead;while(pb-〉date)pa->next=pb;pa=pb;pb=(structnode*)malloc(sizoof(structnode));if(!pb)exit(O);scanf("%d",&pb->date);

7、}pa->next=NULL;free(pb);returnhead;}voidprint(structnode氺1){structnode氺p;inti=0;卜〉next;if(p){while(p){if(i%5==0)printfC’");printfp->date);p=p->next;i++;}}else{printf("ThelistyouhavedcreatedisNULL!!!!!!");}printf(,z/z);}voidaddlist(structnode氺la,structnode氺lb,struc

8、tnode氺lc)structnode氺pa,氺pb,氺pc,氺cj;pa=la->next;pb=lb->next;pc=lc;while(pa&&pb){if(pa->datodate){if(!(pc->next)

9、

10、pc->date!=pa->date){q=(structnode*)malloc(sizeof(structnode));if(!q)exit(0);q->date=pa->date;pc-〉next=q;pc=q;pa=pa-〉next;}elsepa=pa->next;if(pa->date〉pb-〉dat

11、e){if(!(pc->next)

12、

13、pc-〉date!=pb->date){q=(structnode*)malloc(sizeof(structnode));i

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

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

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