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

数据结构顺序栈的代码实现2

2023-08-05 23:45 作者:爱编程的飙尘  | 我要投稿

#include <iostream>


//Stack

#define maxLen 100


using namespace std;


typedef struct elemType {

int elemNo;

string elemName;

}elemType;


typedef struct sqStack {

elemType data[maxLen];

int top;

}sqStack;


void initStack(sqStack &st){

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

st.top = -1;

}



elemType getTop(sqStack &st) {//获取栈顶

elemType t;

if(st.top > -1){

cout<<"栈顶元素为:\n";

cout<<st.data[st.top].elemNo<<endl;

t = st.data[st.top];

}

else {

cout<<"当前为空栈!"<<endl;

}

return t;


}


void getLength(sqStack st){

for(int i = 0; i <= st.top; i++){

cout<<endl<<st.data[i].elemNo<<endl;

}

cout<<"当前栈内元素个数为:"<<st.top+1<<endl;

}


void push(sqStack &st, elemType elem) {//入栈

if(st.top<maxLen-1){

elem.elemNo=st.top+1;

st.data[++st.top] = elem;

cout<<"入栈成功!"<<endl;

}

else cout<<"当前栈已满!!"<<endl;

}


elemType pop(sqStack &st) {//出栈

elemType elem;

if(st.top>-1){

cout<<"出栈元素为:\n";

cout<<st.data[st.top].elemNo<<endl;

elem = st.data[st.top--];

}

else cout<<"当前为空栈!"<<endl;

return elem;

}


elemType setAndGetEmem(int elemNo, string elemName) {

elemType elem;

elem.elemNo = elemNo;

elem.elemName = elemName;

return elem;

}


void menu (){

cout<<endl<<"\n1.初始化栈\n2.入栈\n3.出栈\n4.获取栈顶元素\n5.获取栈长度\n6.退出"<<endl;

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

}


int main() {

sqStack st; //声明变量

while(1){

menu();

int choice = 1;

cin>>choice;

switch(choice){

case 1:initStack(st);//初始化

break;

case 2:push(st, setAndGetEmem(1, "test")); //入栈

break;

case 3:pop(st); //出栈

break;

case 4:getTop(st); //改获取栈顶元素

break;

case 5:getLength(st); //改获取栈顶元素

break;

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

break;

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

}

}

return 0;

}

数据结构顺序栈的代码实现2的评论 (共 条)

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