栈溢出

DNA图谱 / 问答 / 标签

C语言超大数运算中栈溢出的问题……

char ta[4500],tb[4500],op,temp[9]; //ta临时储存a,tb临时储存b这句temp[9]改为temp[10] ,9个保存读出的值,还有一个要放""这里下标越界好多,那个提示不是栈溢出的,是你访问下标越界了, for(i=0;i<=1001;i++){c[i]=pre;} 这里还有个也是越界了,应该到1000

利用两个栈S1和S2来模拟一个队列.若不存在栈溢出问题,则请写出用栈的操作来实现队列的插入和删除的算法.

使用两个栈,分别依元素加入的顺序和其反序保存元素,在适当的时机将元素在两个栈中进行转移,从而模拟队列的操作。令S1中元素的顺序为自底向上与元素添加顺序一致,S2与其相反,则:加入队列时,若S2不空,则将S2中的元素依次出栈,每出栈一个向S1中入栈一个;将入队元素入S1栈;从队列中取出时,若S1不空,则将S1中元素依次出栈,每出栈一个向S2中入栈一个;从S2栈顶出栈一个即队列中取出的元素。用伪代码描述如下:Enqueue(elem) while(!S2.empty()) temp = S2.pop(); S1.push(temp); S1.push(elem);Dequeue() while(!S1.empty()) temp = S1.pop(); S2.push(temp); return S2.pop();