数据机构——顺序表的基本操作
创始人
2024-02-23 15:16:20
0

一、实验要求 

 

 

 

 

 

 

 

 

 二、实验代码

# include "bits/stdc++.h"using namespace std;#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 100  //定义顺序表的最大长度//定义数据结构体
typedef struct book
{int number;  //编号string name; //名称float price; //定价
}book;//定义顺序表结构体
typedef struct
{book data[MAXSIZE];  //顺序表数据int length;  //顺序表长度
}SqlList;//顺序表的初始化函数
bool InitList_Sq(SqlList &L)
{for (int i = 0; i < MAXSIZE; i++){L.data[i].number = 0;L.data[i].name = 'a';L.data[i].price = 0;}L.length = 0;SqlList *elem = &L;if(elem != NULL)return OK;else return ERROR;
}//顺序表的插入操作
bool ListInsert_Sq(SqlList &L, int que, book num)
{//判断插入的位置是否合法if(que<0 || que>L.length)return ERROR;if(L.length >= MAXSIZE)return ERROR;for (int i = L.length; i > que; i--){L.data[i] = L.data[i-1];}//添加新元素L.data[que].number = num.number;L.data[que].name = num.name;L.data[que].price = num.price;L.length ++;return true;
}//顺序表的打印输出操作
void Printout_Sq(SqlList &L)
{cout << "编号" << setw(15) << "书名" << setw(15) << "定价" << endl;for (int i = 0; i < L.length; i++){cout << L.data[i].number << setw(15) << L.data[i].name << setw(15) << L.data[i].price << endl;}cout<=L.length)return ERROR;cout << "第" << i << "条的图书信息为: " << endl;cout << L.data[i].number << setw(15) << L.data[i].name << setw(15) << L.data[i].price << endl;
}//顺序表的查找
int LocateElem_Sq(SqlList &L, float price)
{for (int i = 0; i < L.length; i++){if(L.data[i].price == price){cout << "查找成功" << endl;cout << "该价格对应的书名为: " << L.data[i].name << endl;return 0;}}cout << "查询失败" << endl; return 0; 
}//顺序表的删除
bool ListDelete_Sq(SqlList &L, int que)
{if(que<0 || que>=L.length)return ERROR;for (int i = que; i < L.length; i++){L.data[i].number = L.data[i+1].number;L.data[i].price = L.data[i+1].price;L.data[i].name = L.data[i+1].name;}L.length --;return OK;
}int main()
{setlocale(LC_ALL,"zh-CN"); //设置程序为中文编码//========第一问===========SqlList L;if(InitList_Sq(L))cout << "成功建立顺序表!!!" << endl;elsecout << "顺序表建立失败!!!" << endl;//========第二问===========for (int i = 0; i < 3; i++){book book;cin >> book.number;  //编号cin >> book.name;    //书名cin >> book.price;   //定价ListInsert_Sq(L, i, book);}Printout_Sq(L); //输出//========第三问===========cout << "请输入一个位置用来获取数据:" << endl;for (int i = 0; i < 2; i++){int num;cin >> num;GetElem(L, num);}//========第四问===========cout << "请输入所查找的书本价格:" << endl;float price_elect;cin >> price_elect;LocateElem_Sq(L, price_elect);//========第五问===========cout << "请输入所要删除的书籍的编号:";int num_elect;cin >> num_elect;if(ListDelete_Sq(L, num_elect))cout << "删除成功" << endl;elsecout << "删除失败" << endl;Printout_Sq(L); //输出return 0;
}

相关内容

热门资讯

【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
牛客计算器的改良(Python... 文章目录1.题目描述2.输入描述:3.输出描述:4.示例15.分析6.代码7.结语 链接࿱...
【前端】‘??‘与‘||‘有什... 0 问题 经常写const data = res.data.a ?? ''或者const d...
正大杯|市调大赛|2023备赛... 关键信息 同时随着精细化养宠趋势的深入,宠物消费类目日渐丰富。 本报告通过 Niuco...
文本生成视频Make-A-Vi... Meta公司(原Facebook)在今年9月29日首次推出一款人工智能系...