数据机构——顺序表的基本操作
创始人
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;
}

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...