/*
顺序表中基本操作的实现
2018.04.10
*/
#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;
//函数结构状态代码
#define OK 1
#define ERROR 0
#define OVERFLOW -2
//Status是函数返回值的类型,其值是函数结果状态代码
typedef int Status;
#define MAXSIZE 10000
typedef struct{
char no[20]; //图书IBSN
char name[50]; //图书名字
double price; //图书价格
}Book;
typedef struct{
Book *elem; //存储空间的基地址
int length; //图书表中当前图书的个数
}SqList; //图书表的顺序存储结构类型为SqList
//-----------------------------------------------------------------------------------------
//顺序表的初始化
//算法步骤:
//1.为顺序表动态分配一个预定义大小的数组空间,使elem指向这段空间的基地址;
//2.将表长设置为0
Status InitList(SqList &L){
//构造一个空的顺序表L
L.elem=new Book[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间
if(!L.elem) //存储分配失败则退出
exit(OVERFLOW);
L.length=0; //空表长度为0
return OK;
}
//-----------------------------------------------------------------------------------------
//取值(根据指定位置序号i,获取顺序表中的第i个元素的值)
//算法步骤:
//1.判断i是否合理(1<=i<=L.L.length);
//2.若i合理,则将第i个元素L.elem[i-1]赋值给参数e,通过e返回第i个数据元素的传值;
Status GetElem(SqList L,int i,Book &e){
if(i<1||i>L.length)
return ERROR;
e=L.elem[i-1];
return OK;
}
//-----------------------------------------------------------------------------------------
//查找(根据指定的元素值e,查找 顺序表中第1个与e相等的元素;若成功则返回该元素在表中的位置序号;若失败,则返回0)
//算法步骤:
//1.从第一个元素起,依次和e相比较,若找到与e相等的元素L.elem[i],则
数据结构——顺序表中基本操作的实现
最新推荐文章于 2024-05-21 22:35:44 发布