C语言动态栈编写

来源:百度知道 编辑:UC知道 时间:2024/05/02 06:59:16
请用TC2.0编写一个动态分配空间的栈
含有基本操作,比如入栈,出栈,输出等..
谢谢!

堆栈当然是动态分配的。

#define MAXNUM 888
/* 定义栈结构 -顺序栈 */
typedef struct
{
int stack[MAXNUM]; /* 循序栈 */
int top; /* 栈指针 */
}STACK, * PSTACK;

/* 栈的初始化 */
int init_stack(PSTACK head)
{
head->top = -1;
return 0;
}

/* 入栈 */
int push_stack(PSTACK head, int x)
{
if(head->top >= MAXNUM-1)/* 栈满, 无法入 */
return 0;
head->stack[++head->top] = x;
return 1;
}

/* 出栈 */
int pop_stack(PSTACK head)
{
if(head->top < 0)/* 空栈 */
return 0;
return head->stack[head->top--];