2021-01-19

#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;
} 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值