6-7 在一个数组中实现两个堆栈 (20 分)
Posted mile-star
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6-7 在一个数组中实现两个堆栈 (20 分)相关的知识,希望对你有一定的参考价值。
题目地址:https://pintia.cn/problem-sets/15/problems/730
Pop函数成功弹出后应该返回弹出的值,否则就是错的,应该是和PrintStack函数有关
Stack CreateStack(int Maxsize) Stack S = (Stack)malloc(sizeof(struct SNode)); S->Data = (int *)malloc(sizeof(ElementType)* Maxsize); S->MaxSize = Maxsize; S->Top1 = -1; S->Top2 = Maxsize; return S; bool Push(Stack S, ElementType X, int Tag) if(Tag == 1) if(S->Top1+1 == S->Top2) printf("Stack Full\n"); return false; S->Data[++S->Top1] = X; return true; else if(S->Top2 == S->Top1+1) printf("Stack Full\n"); return false; S->Data[--S->Top2] = X; return true; ElementType Pop(Stack S, int Tag) if(Tag == 1) if(S->Top1 == -1) printf("Stack %d Empty\n", Tag); return ERROR; return S->Data[S->Top1--]; else if(S->Top2 == S->MaxSize) printf("Stack %d Empty\n", Tag); return ERROR; return S->Data[S->Top2++];
以上是关于6-7 在一个数组中实现两个堆栈 (20 分)的主要内容,如果未能解决你的问题,请参考以下文章
包含MIN函数的栈+一个数组实现两个堆栈+两个数组实现MIN栈