//该程序仅用一个数组而实现两个栈的例程。
//除非数组的每一个单元都被使用
//否则你的栈例程不能有溢出声明
#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
一个数组实现两个栈的例程
最新推荐文章于 2024-05-11 16:39:35 发布
本文详细介绍了如何利用一个数组高效地实现两个独立的栈,分别进行压栈和弹栈操作,同时保证栈的正常功能,充分利用数组空间并保持数据分离。
摘要由CSDN通过智能技术生成