《1.C语言顺序表实验报告_计算机-C++资料.pdf》由会员分享,可在线阅读,更多相关《1.C语言顺序表实验报告_计算机-C++资料.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、实验报告要求 一、实验目的 二、实验内容 三、程序流程图 四、实验结果(要求检测所有情况的正确性,写出测试条件及相应的测试结果)五、完成思考题 实验一 顺序表的基本操作(2 学时)一、实验目的 了解顺序表的逻辑特征,掌握顺序表的描述方法、特点及有关的概念,掌握顺序表上的插入和删除等基本操作算法。二、实验内容 在顺序表List 中,实现顺序表的基本操作,包括:初始化顺序表,在表中插入元素、删除元素。基本要求:(1)顺序表的元素个数可随意设定;(2)可连续测试任意多个元素的插入、删除,(插 入、删除位置及要插入元素数值均从键盘输入);(3)任一操作结束后将顺序表中的内容输出;(4)可由用户选择退出
2、程序。三、实验要点及说明 顺序表又称为线性表的顺序存储结构,它是用一组地址连续的存储单元依次存放线性表的各个元素。可按如下格式定义顺序表:#define MAXLEN 50/*定义顺序表最大元素个数 50*/typedef struct datatype ListMAXLEN;/*定义顺序表 List*/int Num;/*定义顺序表表长*/Seqlist;模块划分:(1)initiq()函数:初始化顺序表(2)insertq()函数:实现插入功能(3)deleteq()函数:实现删除功能(4)print()函数:实现输出功能 四、参考源程序#include#define MAXLEN 50
3、typedef int datatype;typedef struct datatype ListMAXLEN;int Num;Seqlist;void initiq(Seqlist*la);int insertq(Seqlist*la,int n);欢迎下载 2 int deleteq(Seqlist*la,int n);int print(Seqlist*la);void main()Seqlist la;int s,n;/*s 选择输入,n 插入或删除数据的个数*/printf(请输入你的选择:1-initiate 2-insert 3-delete 4-print 5-exitnyou
4、r choice=);scanf(%d,&s);while(s!=5)if(s=1)initiq(&la);printf(完成初始化!n);else if(s=2)printf(请输入待插入的数据个数:);scanf(%d,&n);insertq(&la,n);print(&la);else if(s=3)printf(请输入待删除的数据个数:);scanf(%d,&n);deleteq(&la,n);print(&la);else if(s=4)print(&la);else printf(你的选择是错误的!n);printf(请输入你的选择:1-initiate 2-insert 3-de
5、lete 4-print 5-exitnyour choice=);scanf(%d,&s);/*初始化*/void initiq(Seqlist*la)la-Num=0;/*插入*/int insertq(Seqlist*la,int n)int i,j;/*i 插入位置,j 顺序表下标*/datatype x;/*x 插入数据*/while(n)if(la-Num=MAXLEN-1)printf(n 表满,不能插入!插入未完成,还有%d 个数据未插入 n,n);return 0;printf(请输入插入的位置和数据:);scanf(%d%d,&i,&x);if(ila-Num)printf
6、(n 插入位置不合理!n);测试结果五完成思考题实验一顺序表的基本操作学时一实验目的了解顺序表的逻辑特征掌握顺序表的描述方法特点及有关的概念掌握顺序表上的插入和删除等基本操作算法二实验内容在顺序表中实现顺序表的基本操作包括初始化顺 除位置及要插入元素数值均从键盘输入任一操作结束后将顺序表中的内容输出可由用户选择退出程序三实验要点及说明顺序表又称为线性表的顺序存结构它是用一组地址连续的存单元依次存放线性表的各个元素可按如下格式定义顺 删除功能函数实现输出功能四参考源程序选择输入插入或删除数据的个数请输入你的选择完成初始化请输入待插入的数据个数请输入待删除的数据个数你的选择是错误的请输入你的选择初
7、始化插入插入位置顺序表下标插入数据表满 欢迎下载 3 else if(i=la-Num)la-Listi=x;else for(j=la-Num;ji;j-)la-Listj=la-Listj-1;la-Listi=x;la-Num+;n-;printf(插入完成 n);return 1;/*删除*/int deleteq(Seqlist*la,int n)int i,j;/*i 删除位置,j 顺序表下标*/while(n)if(la-Num=0)printf(n 表空,不能删除!n);return 0;printf(请输入删除的位置:);scanf(%d,&i);if(i=la-Num)pr
8、intf(n 删除位置错误!n);else for(j=i+1;jNum;j+)la-Listj-1=la-Listj;la-Num-;n-;printf(删除完成!n);return 1;/*显示输出*/int print(Seqlist*la)int m;if(la-Num=0)printf(顺序表为空!n);return 0;else printf(当前的顺序表为:n);for(m=0;mNum;m+)printf(List%d=%d,m,la-Listm);printf(n 表长为%dn,la-Num);return 1;五、思考题 1设顺序表 L 中的数据元素按递增排列,编写一个算法
9、,将数据元素 x 插入到顺序表 L 的适当位置上,以保持顺序表的有序性。测试结果五完成思考题实验一顺序表的基本操作学时一实验目的了解顺序表的逻辑特征掌握顺序表的描述方法特点及有关的概念掌握顺序表上的插入和删除等基本操作算法二实验内容在顺序表中实现顺序表的基本操作包括初始化顺 除位置及要插入元素数值均从键盘输入任一操作结束后将顺序表中的内容输出可由用户选择退出程序三实验要点及说明顺序表又称为线性表的顺序存结构它是用一组地址连续的存单元依次存放线性表的各个元素可按如下格式定义顺 删除功能函数实现输出功能四参考源程序选择输入插入或删除数据的个数请输入你的选择完成初始化请输入待插入的数据个数请输入待删
10、除的数据个数你的选择是错误的请输入你的选择初始化插入插入位置顺序表下标插入数据表满 欢迎下载 4 2设计一算法实现删除顺序表 a 中第 i 个元素起的 k 个元素。typedef struct int datatype100;int length;/*顺序表的长度*/SqList;3设已有线性表 la 的数据结构定义同上,编写一个算法,删除顺序表 la 中所有值为 x 的数据元素。4如何用程序实现将两个不同的顺序表复制到一个顺序表中?测试结果五完成思考题实验一顺序表的基本操作学时一实验目的了解顺序表的逻辑特征掌握顺序表的描述方法特点及有关的概念掌握顺序表上的插入和删除等基本操作算法二实验内容在顺序表中实现顺序表的基本操作包括初始化顺 除位置及要插入元素数值均从键盘输入任一操作结束后将顺序表中的内容输出可由用户选择退出程序三实验要点及说明顺序表又称为线性表的顺序存结构它是用一组地址连续的存单元依次存放线性表的各个元素可按如下格式定义顺 删除功能函数实现输出功能四参考源程序选择输入插入或删除数据的个数请输入你的选择完成初始化请输入待插入的数据个数请输入待删除的数据个数你的选择是错误的请输入你的选择初始化插入插入位置顺序表下标插入数据表满