数据结构实验 栈与队列

2、实验内容(1)实现顺序栈的基本操作(初始化、判断栈空、判断栈满、入栈、出栈),并利用栈实现十进制转换为其它进制(二、八、十六)。(2)实现循环队列的基本操作(初始化、... 2、实验内容
(1)实现顺序栈的基本操作(初始化、判断栈空、判断栈满、入栈、出栈),并利用栈实现十进制转换为其它进制(二、八、十六)。
(2)实现循环队列的基本操作(初始化、判断队空、判断队满、入队、出队),并利用循环队列输出杨辉三角。

哪位高手帮帮忙啊 急用!
展开
 我来答
mayegen
2008-12-07 · TA获得超过969个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:431万
展开全部
我实现第一题吧.栈空栈满很简单,就不用写了.(栈空判断条件是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)
push(s,e);
m=e;
}
return 1;
}
int convert() //利用栈转化进制函数
{
int n,m=1,e=0;
stack s;
initstack(s);
cout<<endl<<"输入你要转化的数,0表示结束"<<endl;
while(m)
{
cin>>n;
m=n;
if(n!=0)
{
while(n)
{
push(s,n%N);
n=n/N;
}
while(s.top !=s.base )
{
pop(s,e);
cout<<e;
}
cout<<endl;
}
}
return 1;
}

void main()
{
stack s;
initstack(s);
creatstack(s);
getelem(s);
convert();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式