改写顺序栈的进栈成员函数Push(x),要求当栈满时执行一个stackFull0)操作进行栈满处理。其功能是
:动态创建一个比原来的栈数组大二倍的新数组,代替原来的栈数组,原来栈数组中的元素占据新数组的前maxSize位置,
:动态创建一个比原来的栈数组大二倍的新数组,代替原来的栈数组,原来栈数组中的元素占据新数组的前maxSize位置,
第1题
以下运算实现在链栈上的进栈,请在______处用适当的语句予以填充。
void Push(LStackTp*ls,DataType x)
{ LStackTp*p;p=malloc(sizeof(LStackTp));
______;
p—>next=ls;
______;
}
第2题
写出下列程序段的输出结果。(假设此栈中元素的类型是char)
voide main()
{stack s;
char x,y;
InitStack(s)
x=‘1’,y=‘0’
push(s,x);
push(s,x);
push(s,y);
push(s,x);
push(s,‘e’);
push(s,x);
pop(s,x);
push(s,‘h’);
while(!stackEmpty(s))
{pop(s,y);
printf(y);
}
prinft(x)
}
第3题
有一字符序列abcde依次按照某一线性结构存储,请回答以下问题:
(1)、如果该线性结构是队列,那么,写出出队序列。
(2)、如果该线性结构是栈,那么,输出序列可能是d,c,e,a,b吗,为什么?
(3)、如果该线性结构是栈,且输出序列是abcde。请写出操作过程。(push(x):表示把x压入栈内;pop(x):表示把x弹出栈)
第6题
以下运算实现在顺序栈上的退栈,请在______处用适当的语句予以填充。
int Pop(SqStackTp*sq,DataType*x)
{ if(sq—>top==0){error("下溢");return(0);)
else{*x=______;
______;
return(1);
}
}
第7题
第9题
若进栈次序为a,b,e,且进栈和出栈可以穿插进行,则可能出现的含3个元素的出栈序列个数是 ()
A.3
B.5
C.6
D.7