一、实验目的
1、熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、学会使用栈和队列解决实际问题。
二、实验内容
1、设计算法并写出代码,实现一个十将二进制转换成2进制数。
三、源代码
#include<iostream>
using namespace std;
const int StackSize=10;
class SeqStack
{
private:
int top;
int data[StackSize];//存放栈元素(余数)的数组
public:
SeqStack(){top=-1;}//构造函数
~SeqStack(){}//析构函数
void Push(int x);//入栈
int Pop();//出栈
};
void SeqStack::Push(int x)
{
data[++top]=x;//top指向的位置即为余数x入栈的位置
}
int SeqStack::Pop()
{
int x=data[top--];
return x;
}
void main()
{
SeqStack b;
int a,c;
int count=0;
cout<<"输入一个十进制的整数:";
cin>>a;
while(a!=0)
{
c=a%2;//取得余数
a=a/2;//取得商
count++;
b.Push(c);//余数进栈
}
cout<<"转换为二进制后:";
while(count!=0)
{
cout<<b.Pop();
count--;
}
}
四、运行结果