c++ 链栈的实现

链栈的实现

#include<iostream>
using namespace std;
typedef int elementtype;
struct node{
	elementtype data;
	node *next;
}; 
typedef node * nodepointer;

bool initstack(nodepointer &S){
	S=NULL;
	return true;
}

void push(nodepointer &S,elementtype e){
	nodepointer p;
	p=new node;
	p->data=e;
	p->next=S;
	S=p;
}

elementtype pop(nodepointer &S){
	elementtype e=S->data;
	nodepointer p;
	p=S;
	S=S->next;
	delete p;
	return e;
}

void visit(nodepointer &S){
	cout<<"栈内元素为:";
	while(S!=NULL){
	cout<<pop(S)<<"  ";
	}
}



int main(){
	elementtype e;
	nodepointer S;
	int n;
	int op=1;
	
	while(op){
	system("cls");
	cout<<"………………………………链栈操作……………………………………"<<endl;
	cout<<"1	初始化栈	2	入栈			"<<endl;
	cout<<"3	出栈		4	遍历栈			"<<endl;
	cout<<"请输入想要操作功能前的数字"<<endl;
	cin>>op;
	switch(op){
		case 1:
			initstack(S); 
			getchar();getchar();
			break;
		case 2:
			cout<<"输入想要入栈的元素"<<endl;
			cin>>e; 
			push(S,e);
			cout<<"入栈成功"<<endl; 
			getchar();getchar();
			break;
		case 3:
			e=pop(S);
			cout<<"栈顶元素为  "<<e<<endl; 
			getchar();getchar();
			break;
		case 4:
			visit(S);
			getchar();getchar();
			break;	
				
		case 0:
			break;
	} 
}
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值