c++中栈stack如何使用? push,poop,top等的具体使用方法。 给出一段简单的代码就行。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中栈stack如何使用? push,poop,top等的具体使用方法。 给出一段简单的代码就行。相关的知识,希望对你有一定的参考价值。
参考技术A #include <iostream>using namespace std;
typedef int DataType;
class SeqStack /*顺序栈类型定义*/
public:
int MAXNUM; /*栈中最大元素个数*/
int t; /*t < MAXNUM,指示栈顶位置,而不是元素个数*/
DataType *s; /*存放栈元素*/
;
typedef SeqStack *PSeqStack; /*顺序栈类型的指针类型*/
/*创建一个空栈*/
PSeqStack createEmptyStack(int m)
PSeqStack pastack = (PSeqStack) new SeqStack; /*分配一个空栈(空结构体)*/
if(pastack != NULL)
pastack->s = (DataType *)malloc(sizeof(DataType) * m); /*分配一个长度为m的栈*/
if(pastack->s)
pastack->MAXNUM = m; /*确定最大长度为m*/
pastack->t = -1; /*初始化栈顶为-1*/
return (pastack); /*返回该栈*/
else
delete(pastack);
cout << "Out of space!! \n"; /*分配失败*/
return NULL;
/*判断pastack是否为空*/
int isEmptyStack(PSeqStack pastack)
if(pastack->t == -1) /*栈为空*/
return 1;
else
return 0; /*栈不为空*/
/*进栈运算*/
void push(PSeqStack pastack , DataType x)
if(pastack->t >= pastack->MAXNUM - 1) /*判断栈顶是否上溢*/
cout << "Overflow! \n";
else
pastack->t = pastack->t + 1; /*栈顶加1*/
pastack->s[pastack->t] = x; /*入栈*/
/*出栈运算*/
void pop(PSeqStack pastack)
if(pastack->t == -1) /*判断栈顶是否下溢*/
cout << "Underflow! \n";
else
pastack->t = pastack->t - 1; /*出栈,即栈顶减1*/
/*取栈顶元素*/
DataType top(PSeqStack pastack)
if(pastack->t == -1)
cout << "It is empty! \n";
else
return (pastack->s[pastack->t]); /*返回栈顶元素*/
return -1; /*空栈*/
int main()
int max , value;
PSeqStack s;
cout << "请输入要分配栈的最大长度: ";
cin >> max;
s = createEmptyStack(max);
/*判断是否为空栈*/
cout << "创建了一个栈:";
if(isEmptyStack(s))
cout << "为空 \n";
else
cout << "不为空 \n";
/*输入栈元素*/
cout << "请输入要入栈的元素(输入-1结束):\n";
cin >> value;
for( ; value != -1;)
push(s , value);
cin >> value;
/*出栈*/
cout << "当前栈顶元素: ";
cout << top(s) << endl;
cout << "请输入出栈次数:\n";
cin >> value;
for( ; value; --value)
pop(s);
cout << "当前栈顶元素: ";
cout << top(s) << endl;
return 0;
这是我以前学的时候用C做的,我帮你把它改成了C++
push、pop、top等就是函数,理解栈的原理的就行 ,当然也可以把这些函数也封装在里面,这是C++常用的做法,不过原理都差不多……本回答被提问者采纳
STL中栈stack的用法
头文件: #include <stack>
建立一个栈stack < 类型 > s
//例如 stack<int> s
加入一个新的元素s.push( a )
询问栈顶元素s.top()
弹出栈顶元素s.pop()
栈里面有多少个元素s.size()
以上是关于c++中栈stack如何使用? push,poop,top等的具体使用方法。 给出一段简单的代码就行。的主要内容,如果未能解决你的问题,请参考以下文章