- 3
- 0
- 约1.53万字
- 约 15页
- 2016-10-16 发布于贵州
- 举报
数据结构实验指书new(完整版)
数据结构实验指导书
实验一、 实验目的、 掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在链接存储结构上的运算。、 实验要求1、 认真阅读和掌握本实验的程序。2、 上机运行程序。3、 保存和打印出程序的运行结果,并结合程序进行分析。4、 按照,重新改写程序并运行,打印出文件清单和运行结果、 注意事项:、 实验Odsqlist.h文件:
#define LIST_INIT_SIZE 8 //线性表存储空间的初始分配量
#define LISTINCREMENT 10 //线性表存储空间的分配增量
#define OVERFLOW -2
#define ERROR 0
#define OK 1
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef int ElemType;
typedef struct {
ElemType *elem; // 存储空间基址
int length; // 当前长度
int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList; // 俗称 顺序表
typedef SqList OdSqList; //有序顺序表
Status InitList(OdSqList); // 结构初始化
void Destroy(OdSqList); //销毁有序顺序表
void ClearList(OdSqList);//清空有序表
Status ListEmpty(OdSqList);//判有序表为空
int ListLength(OdSqList);//求表长
int LocateElem(OdSqList,ElemType); // 查找
void ListInsert(OdSqList,ElemType); // 插入元素
Status ListDelete(OdSqList, int,ElemType ); // 删除元素
int ListDeletem(OdSqListL, ElemType e); // 删除所有值为e的元素,返回删除的元素个数
int ListDeletemn(OdSqList, ElemType, ElemType ); // 删除所有值界于mink~maxk的元素,并返回删除的元素个数
void ListTraverse(OdSqList);//遍历非递减有序线性表
odsqlist.cpp文件:
#includestdio.h
#includestdlib.h
#include odsqlist.h
Status InitList( OdSqList L ){
// 构造一个空的线性表
L.elem = (ElemType*) malloc (LIST_INIT_SIZE*sizeof(ElemType));
if (!L.elem)
exit(OVERFLOW);
L.length = 0;
L.listsize = LIST_INIT_SIZE;
return OK;
} // InitList
void ListTraverse(OdSqList L){
//遍历线性表
int i;
printf(listsize is %d.\n,L.listsize);
printf(listlength is %d.\n,L.length);
printf(the list is:();
for(i=1;i=L.length;i++)
printf(%d ,L.elem[i-1]);
printf()\n);
}
int LocateElem(OdSqList L, ElemType e){
// 在顺序表中查询第一个满足判定条件的数据元素,若存在,则返回它的位序,否则返回 0
int i;
i = 1; // i 的初值为第 1 元素的位序
ElemType *p;
p = L.elem; // p 的初值为第 1 元素的存储位置
while (i = L.length *p++!=e) ++i;
if (i = L.length) return i;
else return 0;
}
void ListInsert(OdSqList L, ElemType e) {
// 在顺序表L中保序插入新的元素e
ElemType *newbase,*p,*q;
if (L.length = L.listsize) { // 当前存储空间已满,增加分配
newba
原创力文档

文档评论(0)