欢迎光临散文网 会员登陆 & 注册

【教程】手把手教你实现数据结构顺序表(2)!

2023-07-07 22:24 作者:爱编程的飙尘  | 我要投稿

#include <iostream>


//顺序表

#define maxLen 100


using namespace std;


typedef struct elemType {

int elemNo;

string elemName;

}elemType;


typedef struct sqList {

elemType data[maxLen];

int length;

}sqList;


void initList(sqList &sq){

cout<<endl<<"初始化&清除成功!"<<endl;

sq.length = 0;

}


int isPok(sqList sq){

cout<<"请输入要操作的位置:";

int p = 1;

cin>>p;

if(p>=1&&p<=sq.length){

return p;

}

cout<<"输入的位置不合法!";

return -1;

}


void allList(sqList sq) { //遍历数据

cout<<endl<<"遍历结果如下:"<<endl;

cout<<"elemNo"<<" "<<"elemName"<<endl;

for(int i = 0;i<sq.length;i++){

cout<<sq.data[i].elemNo<<" "<<sq.data[i].elemName<<endl;

}

cout<<"当前数据个数为:"<<sq.length<<"个"<<endl;

}


void addList(sqList &sq, elemType elem) {//增

if(sq.length>=0 && sq.length<maxLen-1){

elem.elemNo=sq.length;

sq.data[sq.length++] = elem;

cout<<"添加成功!"<<endl;

}

else cout<<"当前顺序表已满!!"<<endl;

}


void delList(sqList &sq) {//删

int p = isPok(sq);

if(p == - 1){

cout<<"删除失败!";

return;

}

else {

for (int i = p; i<sq.length; i++){

sq.data[i-1] = sq.data[i];

}

sq.length--;

cout<<"删除成功!";

}

}

elemType setAndGetEmem(int elemNo, string elemName) {

elemType elem;

elem.elemNo = elemNo;

elem.elemName = elemName;

return elem;

}

void changeList(sqList &sq) {//改

int p = isPok(sq);

if(p == -1){

cout<<"失败!";

return;

}

else{

sq.data[p-1] = setAndGetEmem(10086,"中国移不动");

cout<<"修改成功!";

}

}

elemType getList(sqList sq) {//查

elemType t;

int p = isPok(sq);

if(p == -1){

cout<<"查询失败!";

return t;

}

else{

cout<<"查询成功!结果为:"<<endl;

cout<<sq.data[p-1].elemNo<<" "<<sq.data[p-1].elemName<<endl;

t = sq.data[p-1];

return t;

}

}




void menu (){

cout<<endl<<"\n1.初始化&清除顺序表\n2.增加数据\n3.删除数据\n4.修改数据\n5.查询数据\n6.遍历数据\n7.退出"<<endl;

cout<<"请输入选项: "<<endl;

}


int main() {

sqList sq; //声明变量

while(1){

menu();

int choice = 1;

cin>>choice;

switch(choice){

case 1:initList(sq);//初始化

break;

case 2:addList(sq, setAndGetEmem(1, "test")); //增

break;

case 3:delList(sq); //删

break;

case 4:changeList(sq); //改

break;

case 5:getList(sq); //查

break;

case 6:allList(sq); //遍历

break;

case 7:cout<<"已退出!!";return 0;

default: cout<<"输入有误!"<<endl;

}

}

return 0;

}

【教程】手把手教你实现数据结构顺序表(2)!的评论 (共 条)

分享到微博请遵守国家法律