数据结构实验 栈与队列

来源:百度知道 编辑:UC知道 时间:2024/06/03 00:29:11
2、实验内容
(1)实现顺序栈的基本操作(初始化、判断栈空、判断栈满、入栈、出栈),并利用栈实现十进制转换为其它进制(二、八、十六)。
(2)实现循环队列的基本操作(初始化、判断队空、判断队满、入队、出队),并利用循环队列输出杨辉三角。

哪位高手帮帮忙啊 急用!

我实现第一题吧.栈空栈满很简单,就不用写了.(栈空判断条件是s.top!=s.base
栈满条件是s.top-s.base<s.stacksize)
#include<iostream>
#include<malloc.h>
#define N 2 //可以控制进制转换
using namespace std;
typedef struct{
int *top;
int *base;
int stacksize;
}stack;
int initstack(stack &s)
{
s.base =(int *)malloc(100*sizeof(int));
s.top =s.base ;
s.stacksize =100;
return 1;
}
int push(stack &s,int e)
{
*s.top =e;
s.top ++;
return 1;
}
int pop(stack &s,int &e)
{
s.top --;
e=*s.top ;
return 1;
}
int getelem(stack s)
{
int e=0;
while(s.base !=s.top )
{
pop(s,e);
cout<<e<<" ";
}
return 1;
}
int creatstack(stack &s)
{
float e=0,m=1;
cout<<"输入0表示结束栈的初始化"<<endl;
while(m!=0)//输入0表示结束栈的初始化
{
cin>>e;
if(e!=0