数据结构实验指导书(C版).docx

数据结构实验指导书(C版).docx

ID:52199557

大小:33.36 KB

页数:12页

时间:2020-03-24

数据结构实验指导书(C版).docx_第1页
数据结构实验指导书(C版).docx_第2页
数据结构实验指导书(C版).docx_第3页
数据结构实验指导书(C版).docx_第4页
数据结构实验指导书(C版).docx_第5页
资源描述:

《数据结构实验指导书(C版).docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构实验指导书(C语言版)2017年9月目录1、顺序表的实现12、链栈的实现33、前序遍历二叉树54、图的深度优先遍历算法75、散列查找911、顺序表的实现1.实验目的⑴掌握线性表的顺序存储结构;⑵验证顺序表及其基本操作的实现;⑶理解算法与程序的关系,能够将顺序表算法转换为对应的程序。2.实验内容⑴建立含有若干个元素的顺序表;⑵对已建立的顺序表实现插入、删除、查找等基本操作。3.实现提示定义顺序表的数据类型——顺序表结构体SeqList,在SeqList基础上实现题目要求的插入、删除、查找等基本操作,为便于查看

2、操作结果,设计一个输出函数依次输出顺序表的元素。简单起见,本实验假定线性表的数据元素为int型,要求学生:(1)将实验程序调试通过后,用模板类改写;(2)加入求线性表的长度等基本操作;(3)重新给定测试数据,验证抛出异常机制。4.实验程序在编程环境下新建一个工程“顺序表验证实验”,并新建相应文件,文件包括顺序表结构体SeqList的定义,范例程序如下:#defineMaxSize100/*假设顺序表最多存放100个元素*/typedefintDataType;/*定义线性表的数据类型,假设为int型*/typede

3、fstruct{DataTypedata[MaxSize];/*存放数据元素的数组*/intlength;/*线性表的长度*/}SeqList;文件包括建立顺序表、遍历顺序表、按值查找、插入操作、删除操作成员函数的定义,范例程序如下:intCreatList(SeqList*L,DataTypea[],intn){if(n>MaxSize){printf("顺序表的空间不够,无法建立顺序表");return0;}for(inti=0;idata[i]=a[i];L->length=n;ret

4、urn1;}10voidPrintList(SeqList*L){for(inti=0;ilength;i++)printf("%d",L->data[i]);/*输出线性表的元素值,假设为int型*/}intLocate(SeqList*L,DataTypex){for(inti=0;ilength;i++)if(L->data[i]==x)returni+1;/*返回序号*/return0;/*退出循环,说明查找失败*/}intInsert(SeqList*L,inti,DataTypex){i

5、f(L->length>=MaxSize){printf("上溢错误,插入失败");return0;}if(i<1

6、

7、i>L->length+1){printf("位置错误,插入失败");return0;}for(intj=L->length;j>=i;j--)/*j表示元素序号*/L->data[j]=L->data[j-1];L->data[i-1]=x;L->length++;return1;}intDelete(SeqList*L,inti,DataType*ptr){if(L->length==0

8、){printf("下溢错误,删除失败");return0;}if(i<1

9、

10、i>L->length){printf("位置错误,删除失败");return0;}*ptr=L->data[i-1];/*取出位置i的元素*/for(intj=i;jlength;j++)/*j表示元素所在数组下标*/L->data[j-1]=L->data[j];L->length--;return1;}在定义了顺序表的存储结构SeqList并实现了基本操作后,程序中就可以使用SeqList类型来定义变量,可以调用实现

11、基本操作的函数来完成相应的功能。范例程序如下:#include#include/*将顺序表的存储结构定义和各个函数定义放到这里*/intmain(){intr[5]={1,2,3,4,5},i,x;10SeqListL;/*定义变量L为顺序表类型*/Creat(&L,r,5);/*建立具有5个元素的顺序表*/printf("当前线性表的数据为:");PrintList(&L);/*输出当前线性表12345*/Insert(&L,2,8);/*在第2个位置插入值为8的元素*/pr

12、intf("执行插入操作后数据为:");PrintList(&L);/*输出插入后的线性表182345*/printf("当前线性表的长度为:%d",Length(&L));/*输出线性表的长度6*/printf("请输入查找的元素值:");scanf("%d",&x);i=Locate(&L,x);if(0==i)printf("查找失败");el

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

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

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