实验一-线性表及其应用(I)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名学号

scanf_s("%d", &LIST_MAX);

printf("※2. 请录入数据:");

for (i = 0; i

{

scanf_s("%d", &(L.elem[i])); //向顺序表中输入数据

++L.length; //表长自增1

}

printf("※3. 请选择数据的排序方式(0:递减,1:递增):");

scanf_s("%d", &DIR);

if (DIR)

{

BubbleSortList_Sq(L, INCREASE); //将顺序表递增排序

printf("※4. 数据递增排列:");

}

else

{

BubbleSortList_Sq(L, DECREASE); //将顺序表递减排序

printf("※4. 数据递减排列:");

}

PrintfList_Sq(L); //打印输出

printf("\n※5. 请输入待插入的元素:");

scanf_s("%d", &data);

InsertSequentList_Sq(L, data); //将数据元素插入到顺序表L中printf("※6. 插入元素后的顺序表:");

PrintfList_Sq(L); //打印输出

InverseList_Sq(L); //将顺序表就地逆置

printf("\n※7. 就地逆置后的顺序表:");

PrintfList_Sq(L); //打印输出

printf("\n\n");

return 0;

}

2.头文件”ADT.h”的部分程序如下:

#ifndef ADT_H_

#define ADT_H_

/************************************************************

* 常量和数据类型预定义

************************************************************/

/* ------函数结果状态代码------ */

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

/* ------排序方式状态------ */

#define INCREASE 1 //递增

#define DECREASE 0 //递减

/* ------数据类型预定义------ */

typedef int Status; //函数结果状态类型

typedef int_bool; //bool状态类型

/************************************************************

* 数据结构类型定义

************************************************************/

/************************线性表*************************/

/* ------顺序表数据类型定义------ */

typedef int ElemType; //顺序表中元素的数据类型

/* ------线性表的动态存储分配初始常量预定义------ */

#define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量

#define LISTINCREMENT 10 //线性表存储空间的分配增量

/* ------顺序存储结构类型定义------ */

typedef struct

{

ElemType * elem; //存储空间基址

int length; //当前长度

int listsize; //当前分配的存储容量

}SqList; //顺序表类型

3.头文件”DataStructure_LinearList.h”中部分函数定义如下:

#include

#include

#include"ADT.h"

/*

* 函数原型:Status InverseList_Sq(SqList &L)

* 函数功能:将线性表L就地逆置

* 入口参数:结构体类型SqList的引用

* 出口参数:返回函数结果状态

*/

Status InverseList_Sq(SqList &L)

{

int i; //循环变量

ElemType temp; //临时变量

for (i = 0; i <= (L.length + 1) / 2; i++) //根据对称中心进行数据交换{

temp = L.elem[i]; //缓存需要交换的数据

L.elem[i] = L.elem[L.length - 1 - i]; //对称位置数据交换

L.elem[L.length - 1 - i] = temp;

}

return OK;

} //InverseList_Sq

相关文档
最新文档