关于C语言堆栈的问题!

C怎么堆栈啊?给个例程啊!

C语言中堆栈说的是数据结构,和系统中的堆栈中是不一样的,/*
**用一个静态数组实现的堆栈。数组的长度只能通过修改#define的定义
**并对模块重新进行编译
*/#include"stack.h"
#include<assert.h>#define STACK_SIZE 100 /*堆栈中值数量的最大限制*//*
**存储堆栈中值的数组和一个指向堆栈顶部元素的指针
*/
static STACK_TYPE stack[STACK_SIZE];
static int top_element =-1;/*push*/
void push(STACK_TYPE value)
{
assert(!is_full());
top_element +=1;
stack[top_element]=value;
}/*pop*/
STACK_TYPE pop(void)
{
STACK_TYPE temp;
assert(!is_empty());
temp=stack[top_element];
top_element -= 1;
return temp;
}/*top*/
STACK_TYPE top (void)
{
assert(!is_empty());
return stack[top_element];
}/*
** is _empty
*/
int is_empty(void)
{
return top_element == -1;
}/*
**is_full
*/
int is_full(void)
{
return top_element ==STACK_SIZE -1;
}这是个静态堆栈,你可以动态的申请内存来编写动态堆栈
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜