//该程序仅用一个数组而实现两个栈的例程。
//除非数组的每一个单元都被使用
//否则你的栈例程不能有溢出声明
#include <stdio.h>
#include <stdlib.h>
#define MinStackSize (5)
typedef struct Node *dbstack; //双栈
dbstack CreatStack(int MaxElements); //构建一个大小为MAXElements的数组
void firstPush(int x, dbstack A); //头栈push
void lastPush(int x, dbstack A); //尾栈push
int firstPop(dbstack A); //头栈pop并返回元素
int lastPop(dbstack A); //尾栈pop并返回元素
void isEmpty(dbstack A); //判断元素是否为空
void isFull(dbstack A); //判断元素是否满了
struct Node
{
int first; //从数组头部开始的栈的长度
int last; //从数组尾部开始的栈的长度
int Capacity; //栈的容量,可以作为栈是否为空的依据
int *Array;
};
int main()
{
dbstack A;
return 0;
}
void firstPush(int x, dbstack A) //头栈push
{
int i;
if (A->Capacity != 0)
{
A->first = (A->first) + 1;
i = A
一个数组实现两个栈的例程
最新推荐文章于 2020-03-25 21:22:57 发布