本顺序表一开始没有存放数据,需要使用insert函数自行插入
以下代码
// 线性表的顺序表实现 // @data:2021/11/17 // @author:Raften #include#include using namespace std; #define MAXSIZE 500 // X作为int类型 struct ElemType { int x; }; // 线性表结构体 struct List { ElemType data[MAXSIZE]; // 存放数据 int Length; // 线性表长度 }; // MySqList类定义 class MySqList{ public: MySqList(); // 成员函数 ~MySqList(); // 析构函数 void TravelSqList(); // 遍历顺序表 int FindSqList(ElemType e); // 在线性表L重查找e第一次出现的位置 void InsertSqList(int loc,ElemType e); //在位序loc前插入元素e void DeleteSqList(int loc); // 删除指定位置(loc)的元素 此处的 &e 因为e还需要承接下一位顺序表的值,而且他本身的值也应该被改变 ElemType FindKth(int loc); // 返回loc位元素 int LengthSqList(); //返回线性表SqList的长度 void ChoiceSqList(); // 功能选择 private: List L; // 表名为L }; // 成员函数的初始化 // 线性表的初始化 MySqList::MySqList() { L.Length = 0; for(int i=0;i L.Length+1){ cout<<"error:插入位置超出范围"< =MAXSIZE){ cout<<"error:顺序表已满"< =loc;i--){ L.data[i].x = L.data[i-1].x; } // 插入 L.data[loc-1].x = e.x; L.Length++; cout<<"插入成功"< L.Length+1){ cout<<"error:删除位置超出范围"< L.Length;i++){ L.data[i].x = L.data[i+1].x; } L.Length--; cout<<"删除成功"< L.Length+1){ cout<<"error:查询位置超出范围"< >number; int loc; // 定义位数 ElemType e; // 定义e int a; switch (number) { case 0: system("cls"); cout<<"==2s后退出程序=="< >a; e.x = a; cout<<"元素的位置位:"< >loc; cout<<"插入的元素: "< >a; e.x = a; InsertSqList(loc,e); break; case 4: system("cls"); cout<<"删除的位置:"; cin>>loc; DeleteSqList(loc); break; case 5: system("cls"); cout<<"需要查询的位置:"< >loc; e = FindKth(loc); cout< 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)