欢迎来到天天文库
浏览记录
ID:31852959
大小:151.00 KB
页数:7页
时间:2019-01-21
《实验的一线性表及其应用i》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案姓名学号实验项目线性表及其应用(I)实验内容1.实现线性表的顺序存储结构和主要的基本操作,并添加输出显示等辅助函数,在此基础上实现后续两个算法。线性表的抽象数据类型定义参见教材第19页。顺序存储结构的定义参见教材第22页。2.设线性表存放于顺序表A中,其中有n个元素,且递增有序,请设计一算法,将x插入到线性表的适当位置,以保持线性表的有序性。(题集第17页2.11)3.试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,…,an)逆置为(an,an-1,…,a1)。(题集第18页2.21
2、)算法设计与程序实现:算法分析本次实验的目的是理解和掌握线性表顺序存储结构的用法,要解决两个基本问题一是将元素插入到有序的顺序表中,并保持线性表的有序性;二是实现顺序表的就地逆置。首先需插入元素的顺序表是有序的,故需先将输入的线性表元素进行排序,至于数据排序,我选择的是起泡排序算法,而实现插入元素到顺序表,则是将待插入的元素与已排序的顺序表中的每个元素进行比较进而确定插入位置;实验内容二的就地逆置则仅仅只需用一个for循环将顺序表中对称位置处的元素交换即可。程序设计流程图如下所示:精彩文档实用标准文案核心程序此程序中用到的
3、自己编写的头文件以在下面给出,而头文件的说明则在主函数中文件包含部分的注释处,核心程序如下:1.主函数如下:#include"stdafx.h"//标准输入输出函数头文件#include"windows.h"//cmd窗口设置函数头文件#include"ADT.h"//数据结构中相关结构体类型定义及相关数据类型定义#include"DataStructure_LinearList.h"//数据结构第二章线性表中相关函数的定义及声明intmain(){system("title数据结构实验实验名称:线性表及其应用(I)");
4、//设置cmd窗口标题system("colorF1");//设置控制台窗口的背景色和前景色system("date/T");//输出当前的日期system("TIME/T");//输出当前的时间inti,DIR;//控制变量intLIST_MAX;//表长精彩文档实用标准文案ElemTypedata;//待插入元素SqListL;//定义SqList类型变量InitList_Sq(L);//初始化顺序表printf("※1.请输入所需建立的线性表的长度:");scanf_s("%d",&LIST_MAX);printf(
5、"※2.请录入数据:");for(i=0;i6、printf("※4.数据递减排列:");}PrintfList_Sq(L);//打印输出printf("※5.请输入待插入的元素:");scanf_s("%d",&data);InsertSequentList_Sq(L,data);//将数据元素插入到顺序表L中printf("※6.插入元素后的顺序表:");PrintfList_Sq(L);//打印输出InverseList_Sq(L);//将顺序表就地逆置printf("※7.就地逆置后的顺序表:");PrintfList_Sq(L);//打印输出print7、f("");return0;}2.头文件”ADT.h”的部分程序如下:#ifndefADT_H_#defineADT_H_/*************************************************************常量和数据类型预定义************************************************************//*------函数结果状态代码------*/#defineTRUE1精彩文档实用标准文案#defineFALSE0#define8、OK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2/*------排序方式状态------*/#defineINCREASE1//递增#defineDECREASE0//递减/*------数据类型预定义------*/typedefintStatu
6、printf("※4.数据递减排列:");}PrintfList_Sq(L);//打印输出printf("※5.请输入待插入的元素:");scanf_s("%d",&data);InsertSequentList_Sq(L,data);//将数据元素插入到顺序表L中printf("※6.插入元素后的顺序表:");PrintfList_Sq(L);//打印输出InverseList_Sq(L);//将顺序表就地逆置printf("※7.就地逆置后的顺序表:");PrintfList_Sq(L);//打印输出print
7、f("");return0;}2.头文件”ADT.h”的部分程序如下:#ifndefADT_H_#defineADT_H_/*************************************************************常量和数据类型预定义************************************************************//*------函数结果状态代码------*/#defineTRUE1精彩文档实用标准文案#defineFALSE0#define
8、OK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2/*------排序方式状态------*/#defineINCREASE1//递增#defineDECREASE0//递减/*------数据类型预定义------*/typedefintStatu
此文档下载收益归作者所有