1.蒋编号为0和[的两个栈存放于一个数组空间 V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶播针 top[0]等F-1 时该戍为空:当第1号栈的栈顶指针 top[I]等于 m 时,该栈为空两个栈均从两端向中间增长 (见图 3.2)。试编写双栈初始化,判渐栈空、栈满、进栈和出栈等算法的两数。双栈数据结构的定义如下:
typedet atruet{
int top[2], bot[21;
SElemType *V;
int m;
}Dblstack;
//栈顶和栈底指针
//栈数组
//栈最大可容纳元素个数
图 3.2 双栈结构的表示
2.回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不回文。试写一个算法判定给定的字符序列是否为回文。( 提示:将一半字符入栈。)
3.设从键盘输人一整数的序列:a,a2,a3,··,an,试编写算法实现:用栈结构存储输人的整数,当a;-1 时,将a;进栈;当a=-1 时,输出栈顶整数并出栈。算法应对异常情况 (人栈满等 )给出相应的信息。
4.从键盘上输人一个后级表达式,试编写算法计算表达式的值。
规定:后缀表达式的长度不超过一行,以“3”作为输人结束&#