#include<iostream> using namespace std; #define MAXSIZE 200 //入栈几个元素 #define DATA_NUMBER 5 //出栈几个元素 #define POP_DATA 2 typedef struct LNode{ int data[MAXSIZE];//存放栈的元素 int top;//栈底为-1 栈满为 MAXSIZE-1 } LNode; void initStack(LNode &lode){ lode.top = -1; } void pushData(LNode &lode){ cout<<"请输入你要入栈的元素"; int count = 0;//模拟入栈的次数 int data; while(true){ cin>>data; count++; //指针先移动 ,数据在入栈 lode.data[++lode.top] = data; if(count == DATA_NUMBER || lode.top >= MAXSIZE - 1){ break; } } } //出栈 void popData(LNode &lode,int stackNum){ //stackNum 从栈中pop几个元素 if(stackNum > DATA_NUMBER){ cout<<"出栈数超过入栈数"<<endl; return; } int count = 0;//用于记录出栈了几次 while(lode.top >-1){ cout<<lode.data[lode.top--]<<","<<endl; count++; if(count == POP_DATA){ break; } } } //全部出栈 void popAllData(LNode &lode){ while(lode.top >-1){ cout<<lode.data[lode.top--]<<","<<endl; cout<<"==="<<lode.top<<endl; } } int main(){ LNode lode; //初始化栈 initStack(lode); //入栈 pushData(lode); cout<<"【入栈最后的top】"<<lode.top<<endl; // popAllData(lode); //出栈 popData(lode,POP_DATA); cout<<"【出栈后的top】"<<lode.top<<endl; return 0; }
2021-01-19
最新推荐文章于 2024-06-01 21:43:54 发布