一、实验目的
1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、 学会使用栈和队列解决实际问题。
二、实验内容
1、自己确定结点的具体数据类型和问题规模:
分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
2、设计算法并写出代码,实现一个将一个十进制转换成二进制数。
一.顺序栈
#include<iostream.h>
const int SeqList=10;
class SeqStack
{
public:
SeqStack();//构造
~SeqStack();
void Push(int x);//入
int Pop();//弹
int Get();//取
private:
int data[SeqList];
int top;
};
SeqStack::SeqStack()
{top=-1;}
SeqStack::~SeqStack(){}
void SeqStack::Push(int x)
{
if(top==SeqList-1)throw "上溢";
top++;
data[top]=x;
}
int SeqStack::Pop()
{
int x;
if(top==-1)throw "下溢";
x=data[top];
top--;
return x;
}
int SeqStack::Get()
{if(top!=-1)return data[top];}
int main()
{
SeqStack S;
cout<<"请对15、18、9进行入栈操作:"<<endl;
S.Push(15);
S.Push(18);
S.Push(9);
cout<<"执行一次出栈操作"<<endl;
S.Pop();
cout<<"栈顶元素"<<S.Get()<<endl;
return 0;
}