早教吧作业答案频道 -->其他-->
栈的操作设有两个栈S1和S2,按上图的方法共享一个数组的空间。试为此双向栈设计初始化inistack(intv[])、入栈push(intv[],inti,intx)和出栈pop(intv[],inti)的算法,其中i为1或2,用以指示栈号。
题目详情
栈的操作
设有两个栈S1和S2,按上图的方法共享一个数组的空间。试为此双向栈设计初始化inistack(int v[])、入栈push(int v[], int i, int x)和出栈pop(int v[], int i)的算法,其中i为1或2,用以指示栈号。试写一个算法,完成对任何一个栈(S1或S2)的入栈和出栈操作。
【实验要求】
设两个栈按上述方式存储在数组v[n]中,n>=20,从键盘输入8个正整数,存放在S1或S2的栈空间上,并输出S1和S2的元素值。
从键盘输入一个正整数,存放在Si(i=1或i=2)栈上,观察输出信息。
删除Si(i=1或i=2)栈的元素,输出S1和S2的元素值。
设有两个栈S1和S2,按上图的方法共享一个数组的空间。试为此双向栈设计初始化inistack(int v[])、入栈push(int v[], int i, int x)和出栈pop(int v[], int i)的算法,其中i为1或2,用以指示栈号。试写一个算法,完成对任何一个栈(S1或S2)的入栈和出栈操作。
【实验要求】
设两个栈按上述方式存储在数组v[n]中,n>=20,从键盘输入8个正整数,存放在S1或S2的栈空间上,并输出S1和S2的元素值。
从键盘输入一个正整数,存放在Si(i=1或i=2)栈上,观察输出信息。
删除Si(i=1或i=2)栈的元素,输出S1和S2的元素值。
▼优质解答
答案和解析
struct stack
{
int no;
int top;
int bottom;
int *v;
}S1,S2;
int n;
#define N 20
int v[N];
inistack(int v[]){
s1.no=1;
s1.top =s1.bottom =0;
s1.no=2;
s1.top =s1.bottom =n-1;
s1.v=s2.v=v;
}
void push(int v[], int i, int x){
if(i==1){
v[s1.top++]=x;
}
else{
v[s2.top--]=x;
}
}
///////////////////////////////////////////////////////
// 带返回值弹出
int pop(int v[], int i)
{
int cur= 0;
if(i==1){
cur=v[s1.top--];
}
else{
cur=v[s2.top++];
}
return cur;
}
//不带返回值弹出 void pop(int v[],int i)
{
if(i==1){
s1.top--;
}else if(i==2)
{
s2.top++;
}
}
{
int no;
int top;
int bottom;
int *v;
}S1,S2;
int n;
#define N 20
int v[N];
inistack(int v[]){
s1.no=1;
s1.top =s1.bottom =0;
s1.no=2;
s1.top =s1.bottom =n-1;
s1.v=s2.v=v;
}
void push(int v[], int i, int x){
if(i==1){
v[s1.top++]=x;
}
else{
v[s2.top--]=x;
}
}
///////////////////////////////////////////////////////
// 带返回值弹出
int pop(int v[], int i)
{
int cur= 0;
if(i==1){
cur=v[s1.top--];
}
else{
cur=v[s2.top++];
}
return cur;
}
//不带返回值弹出 void pop(int v[],int i)
{
if(i==1){
s1.top--;
}else if(i==2)
{
s2.top++;
}
}
看了 栈的操作设有两个栈S1和S2...的网友还看了以下:
用铁粉、硫酸、氢氧化钠制备氢氧化铁,装置如图.答案说I中是加入硫酸和铁粉,II中加入氢氧化钠但是为什 2020-03-30 …
经济学难题,求高手解答:某人对X商品的需求函数为X=(PX,PY,I)=2I/5PX.已知他的收入 2020-05-17 …
算法入门插入排序法(算法导论里面的伪代码)看不懂是做什么的么?INSERTION-SORT(A){ 2020-06-11 …
(2014•浙江)已知甲盒中仅有1个球且为红球,乙盒中有m个红球和n个蓝球(m≥3,n≥3),从乙 2020-06-11 …
根据浯境写古诗句.1.如果陷入i困境,似已无望,忽而又绝处逢生,出现了新的契机,就可以用根据浯境写 2020-07-09 …
下列选项中都有I、II、III三种溶液,在Na2CO3溶液中加入I溶液,产生白色沉淀,再加入II溶 2020-07-12 …
计算收入的现值,而It=未来t年的收入,i为年固定利率,用百分比表示.I0=10,I1=110,I 2020-07-17 …
线性代数选择题:设A,B为n阶矩阵,A且B与相似,则().(A)lAl=lBl(B)A与B有相同的 2020-07-20 …
在w5ymL某混合溶液中,HNO多和HwSOw物质的量浓度分别为y.wmol•L-i和y.imol• 2020-10-31 …
在简单凯恩斯模型中,假定Y=C+I,C=100+0.8Y,I=0.5,其中,C表示消费,Y表示收入, 2020-12-14 …