将从键盘输入的字符序列逆置输出。比如,从键盘上输入:tset a si sihT. 将输出:This is a test 数据以圆点为结束符,请将代码补全~
#include<stdexcept>
#include<iostream>
using namespace std;
template <class T>
class SeqStack{
public:
SeqStack( int m=10 ); //构造函数
~SeqStack( ){delete[ ]stack;} //析构函数
bool IsEmpty( ){return top==-1;} //判栈是否为空
bool IsFull( ){return top==Maxsize-1;} //判栈是否为满 void Push(const T&x); //入栈
void Pop( ); //出栈
T Top( ); //取栈顶元素
void ClearStack( ){top=-1;} //清空栈
private:
int top; //栈顶指针
int Maxsize;
T *stack;
};
template <class T>
SeqStack<T>::SeqStack( int m ){
stack=new T[m] ;
Maxsize=m;
top=-1;
}
template <class T>
void SeqStack<T>::Push(const T&x){
Node<T>*p=new Node<T>;
p->data=x;
p->next=top;
top=p;
}
template <class T>
void SeqStack<T>::Pop( ){
if(IsEmpty())throw underflow_error("栈空\n");
Node<T>*p=top;
top=->next;
delete p;
}
template <class T>
T SeqStack<T>::Top( ){
if(IsEmpty())throw underflow_error("栈空\n");
return top->data;
}
用C++实现栈
答案:1 悬赏:60 手机版
解决时间 2021-04-23 02:16
- 提问者网友:姑娘长的好罪过
- 2021-04-22 19:19
最佳答案
- 五星知识达人网友:孤老序
- 2021-04-22 19:44
#include <iostream.h>
const int MaxSize = 100;
class Stack
{
public:
Stack();
void Push(const int a);
int Pop();
void Clear();
int Peek() const;
bool IsEmpty() const;
bool IsFull() const;
private:
int List[MaxSize];
int Top;
};
Stack::Stack()
{
//Top 表示栈顶,初始化时栈为空
Top = -1;
}
void Stack::Push(const int a)
{
if (Top == MaxSize – 1)
return;
Top++;
List[Top] = a;
}
int Stack::Pop()
{
int element;
//如果栈为空,则返回0
if (Top == -1)
return 0;
element = List[Top];
Top--;
return element;
}
void Stack::Clear()
{
Top = -1;
}
int Stack::Peek() const
{
//如果栈为空,则返回0
if (Top == -1)
return 0;
return List[Top];
}
bool Stack::IsEmpty() const
{
if (Top == -1)
return true;
else
return false;
}
bool Stack::IsFull() const
{
if (Top == MaxSize – 1)
return true;
else
return false;
}
void main()
{
Stack S[2];
S[0].Push(123);
S[0].Push(456);
S[1].Push(789);
S[1].Push(100);
cout << S[0].Peek() << endl;
cout << S[1].Peek() << endl;
S[0].Pop();
S[1].Pop();
cout << S[0].Peek() << endl;
cout << S[1].Peek() << endl;
S[0].Clear();
S[1].Clear();
const int MaxSize = 100;
class Stack
{
public:
Stack();
void Push(const int a);
int Pop();
void Clear();
int Peek() const;
bool IsEmpty() const;
bool IsFull() const;
private:
int List[MaxSize];
int Top;
};
Stack::Stack()
{
//Top 表示栈顶,初始化时栈为空
Top = -1;
}
void Stack::Push(const int a)
{
if (Top == MaxSize – 1)
return;
Top++;
List[Top] = a;
}
int Stack::Pop()
{
int element;
//如果栈为空,则返回0
if (Top == -1)
return 0;
element = List[Top];
Top--;
return element;
}
void Stack::Clear()
{
Top = -1;
}
int Stack::Peek() const
{
//如果栈为空,则返回0
if (Top == -1)
return 0;
return List[Top];
}
bool Stack::IsEmpty() const
{
if (Top == -1)
return true;
else
return false;
}
bool Stack::IsFull() const
{
if (Top == MaxSize – 1)
return true;
else
return false;
}
void main()
{
Stack S[2];
S[0].Push(123);
S[0].Push(456);
S[1].Push(789);
S[1].Push(100);
cout << S[0].Peek() << endl;
cout << S[1].Peek() << endl;
S[0].Pop();
S[1].Pop();
cout << S[0].Peek() << endl;
cout << S[1].Peek() << endl;
S[0].Clear();
S[1].Clear();
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯