数据结构实验报告在实现线性表的基础上实现逆置功能.doc

数据结构实验报告在实现线性表的基础上实现逆置功能.doc

ID:58854234

大小:181.50 KB

页数:7页

时间:2020-09-23

数据结构实验报告在实现线性表的基础上实现逆置功能.doc_第1页
数据结构实验报告在实现线性表的基础上实现逆置功能.doc_第2页
数据结构实验报告在实现线性表的基础上实现逆置功能.doc_第3页
数据结构实验报告在实现线性表的基础上实现逆置功能.doc_第4页
数据结构实验报告在实现线性表的基础上实现逆置功能.doc_第5页
资源描述:

《数据结构实验报告在实现线性表的基础上实现逆置功能.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构实验报告1.实验题目在实现线性表的基础上实现逆置功能2.需求分析  本演示程序用TC编写,完成线性表的逆置功能。①输入的形式和输入值的范围:逆转线性表中的元素首先需要输入需要逆转的元素,然后通过计算机逆转以后输出。在输入和输出都要求其值为整数。②输出的形式:在操作中显示操作是否正确以及操作后逆转的内容。  ③程序所能达到的功能:完成线性表的元素逆转操作。  ④测试数据:   输入3,1,2.输出结果为2,1,3.3.概要设计 1)为了实现上述程序功能,需要定义线性表的抽象数据类型:typedefstructLNode{定义元素的类型:ElemTypedata;定义的*

2、next结构体类型的指针:structLNode*next;}作用:定义链表结构体2)定义新的链表StatusInitial_L(LinkListL)3)定义链表实现插入元素功能StatusGetElem_L(LinkListL,inti,ElemType*e)4)定义链表实现打印出初始链表的功能:StatusPrint(LinkListL)5)定义链表实现插入元素的功能:StatusListInsert_L(LinkListL,inti,ElemTypee)6)定义链表实现逆转元素的过程:StatusListInv(LinkListL)4.详细设计  1)为了实现上述程序功

3、能,需要定义线性表的抽象数据类型:typedefstructLNode{定义元素的类型:ElemTypedata;定义的*next结构体类型的指针:structLNode*next;}作用:定义链表结构体2)为了实现上述功能,需要新的链表:StatusInitial_L(LinkListL){L->next=NULL;L->data=-1000;returnOK;}3)为了实现上述功能,需要能够插入元素,故引用该函数:StatusGetElem_L(LinkListL,inti,ElemType*e){returnOK;}4)将链表的初始值打印出来:StatusPrint(L

4、inkListL){LNode*p;p=L->next;if(p==NULL)printf("链表为空!");while(p!=NULL){printf("%d",p->data);p=p->next;}printf("");returnOK;}StatusPrint(LinkListL,char*s){LNode*p;p=L->next;if(p==NULL){printf("链表为空!");returnERROR;}printf(s);while(p!=NULL){printf("%d",p->data);p=p->next;}printf("");ret

5、urnOK;}5)为了实现上述功能,还需要插入功能:StatusListInsert_L(LinkListL,inti,ElemTypee)*L为链表,i为链表的长度,e为过渡空间指针*{LNode*p,*s;p=L;intj=0;while(p&&jnext;++j;}if(!p

6、

7、j>i-1)returnERROR;*p为空,则非p为真,if语句可执行,链表为空或者插入在链表的后面,后面是不允许的,所以终止*s=(LinkList)malloc(sizeof(LNod

8、e));*插入节点,包括指针域和数据域*s->data=e;s->next=p->next;p->next=s;returnOK;}6)实现逆置功能:StatusListInv(LinkListL){LNode*p,*q,*r;p=L->next;if(p==NULL

9、

10、p->next==NULL){printf("链表只有一个结点或为空,无需逆转!");returnOK;}q=p->next;r=q->next;p->next=NULL;while(r!=NULL){q->next=p;p=q;q=r;r=r->next;}q->next=p;L->next=q;r

11、eturnOK;}5.调试分析  说明:原因在于在打头文件的时候,漏打了其中一个部分,导致指针变量不同,出现错误。6.使用说明在编辑程序的时候将要逆转的元素打出,如图,然后点击运行实现元素的逆转过程。7.测试结果  8.程序1)头文件#defineElemTypeint#include#include#includetypedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;

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

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

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