数据结构 |
您所在的位置:网站首页 › 以宽容为题的记叙文600字 › 数据结构 |
线性表综合练习-图书数据为例 利用book.txt导入数据到C语言程序中,输入所有图书数据,对图书数据进行查询、修改、删除等算法操作; 参考代码: #include #include #include #include using namespace std; #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status; //Status 是函数返回值类型,其值是函数结果状态代码。 typedef int ElemType; //ElemType 为可定义的数据类型,此设为int类型 #define MAXSIZE 100 //顺序表可能达到的最大长度 struct Book { string id;//ISBN string name;//书名 double price;//定价 }; typedef struct { Book *elem; //存储空间的基地址 int length; //当前长度 } SqList; Status InitList_Sq(SqList &L) { //算法2.1 顺序表的初始化 //构造一个空的顺序表L L.elem = new Book[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间 if (!L.elem) exit(OVERFLOW); //存储分配失败退出 L.length = 0; //空表长度为0 return OK; } Status GetElem(SqList L, int i, Book &e) {//算法2.2 顺序表的取值 if (i < 1 || i > L.length) return ERROR; //判断i值是否合理,若不合理,返回ERROR e = L.elem[i - 1]; //elem[i-1]单元存储第i个数据元素 return OK; } int LocateElem_Sq(SqList L, double e) { //算法2.3 顺序表的查找 //顺序表的查找 for (int i = 0; i < L.length; i++) if (L.elem[i].price == e) return i + 1;//查找成功,返回序号i+1 return 0;//查找失败,返回0 } Status ListInsert_Sq(SqList &L, int i, Book e) { //算法2.4 顺序表的插入 //在顺序表L中第i个位置之前插入新的元素e //i值的合法范围是1= i - 1; j--) L.elem[j + 1] = L.elem[j]; //插入位置及之后的元素后移 L.elem[i - 1] = e; //将新元素e放入第i个位置 ++L.length; //表长增1 return OK; } Status ListDelete_Sq(SqList &L, int i) { //算法2.5 顺序表的删除 //在顺序表L中删除第i个元素,并用e返回其值 //i值的合法范围是1 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |