实验项目1 线性表及其应用.doc

实验项目1 线性表及其应用.doc

ID:61425977

大小:79.00 KB

页数:6页

时间:2021-01-29

实验项目1 线性表及其应用.doc_第1页
实验项目1 线性表及其应用.doc_第2页
实验项目1 线性表及其应用.doc_第3页
实验项目1 线性表及其应用.doc_第4页
实验项目1 线性表及其应用.doc_第5页
资源描述:

《实验项目1 线性表及其应用.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、电子与信息工程系《数据结构》实验报告实验一线性表及其应用1.实验目的(1)熟练掌握线性表的基本操作在两种存储结构上的实现。(2)掌握链表的建立、插入、删除和遍历等算法。2.实验环境Windows操作系统,VC++程序设计语言。3.实验内容(1)在顺序表中插入和删除元素的实现。(2)顺序表在一元多项式中的应用。(3)链表结点的定义。(4)链表的建立。(5)链表的插入和删除操作。(6)链表的遍历操作。4.实验题目(1)编写一个程序algo2-1.cpp,实现顺序表的各种基本运算(假设顺序表单元素类型为char),并在此基础上设计一个程序exp2-1.

2、cpp,完成如下功能。(1)采用尾查法插入元素、在指定位置插入元素。(2)输出顺序表、输出表的长度、判断表是否为空、输出指定的第3个元素、输出指定元素位置(2)编写一个程序algo2-2.cpp,实现单链表的各种基本运算(假设单链表的元素类型为char),定在此基础上设计一个程序exp2-2.cpp;完成如下功能:(1)初始化单链表h;(2)采用尾插法依次插入元素a,b,c,d,e;(3)输出单链表h;(4)输出单表h长度;(5)判断单链表h是否为空;(6)输出单链表h的第三个元素;(7)输出元素a的位置;(8)在第四个元素位置上插入元素f;(9

3、)输出单表h;(10)删除L的第三个元素;(11)输出单链表;5.程序及运行结果程序(1):#include#include#defineMaxSize50typedefcharElemType;typedefstruct{ElemTypedata[MaxSize];intlength;}SqList;voidInitList(SqList*&L)//初始化线性表{L=(SqList*)malloc(sizeof(SqList));//分配存放线性表的空间L->length=0;//置空线性表长度为0}voi

4、dDestroyList(SqList*L)//销毁线性表{free(L);}boolListEmpty(SqList*L)//判线性表是否为空表{return(L->length==0);}intListLength(SqList*L)//求线性表的长度{return(L->length);}voidDispList(SqList*L)//输出线性表{inti;if(ListEmpty(L))return;for(i=0;ilength;i++)printf("%c",L->data[i]);printf("");}boolGetE

5、lem(SqList*L,inti,ElemType&e)//求线性表中某个数据元素值{if(i<1

6、

7、i>L->length)returnfalse;//参数错误时返回falsee=L->data[i-1];//取元素值returntrue;//成功找到元素时返回true}intLocateElem(SqList*L,ElemTypee)//按元素值查找{inti=0;while(ilength&&L->data[i]!=e)i++;//查找元素eif(i>=L->length)//未找到时返回0return0;elsereturni+

8、1;//找到后返回其逻辑序号}boolListInsert(SqList*&L,inti,ElemTypee)//插入数据元素{intj;if(i<1

9、

10、i>L->length+1)returnfalse;//参数错误时返回falsei--;//将顺序表逻辑序号转化为物理序号for(j=L->length;j>i;j--)//将data[i]及后面元素后移一个位置L->data[j]=L->data[j-1];L->data[i]=e;//插入元素eL->length++;//顺序表长度增1returntrue;//成功插入返回true}bool

11、ListDelete(SqList*&L,inti,ElemType&e)//删除数据元素{intj;if(i<1

12、

13、i>L->length)//参数错误时返回falsereturnfalse;i--;//将顺序表逻辑序号转化为物理序号e=L->data[i];for(j=i;jlength-1;j++)//将data[i]之后的元素前移一个位置L->data[j]=L->data[j+1];L->length--;//顺序表长度减1returntrue;//成功删除返回true}voidmain(){SqList*L;ElemTypee

14、;printf("顺序表的基本运算如下:");printf("(1)初始化顺序表L");InitList(L);printf("

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

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

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