题目:请用一个数组实现两个堆栈,要求最大地利用数组空间,使 数组只要有空间入栈操作就可以成功
【分析】 一种比较聪明的方法是使这两个栈分别从数组的两头开始
向中间生长;当两个栈的栈顶指针相遇时,表示两个栈都满了。
#include<stdio.h>
#define MAXSIZE 100;
typedef struct DStack{
ElementType Data(MAXSIZE);
int Top1; //下标元素
int Top2;//下标元素
} DStack;
DStack s;
s.Top1 = -1;
s.Top2 = MAXSIZE;
//tag作为判断数据的存储位置
void Push(DStack *PtrS,ElementType item,int tag){
if