/*
**用静态数组实现的堆栈
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#define STACK_TYPE char
#define STACK_SIZE 256
static STACK_TYPE stack[STACK_SIZE];
static int top_element = -1;
/*
**入栈操作
*/
void push(STACK_TYPE value)
{
assert(!isFull());
top_element += 1;
stack[top_element] = value;
}
/*
**出栈操作
*/
STACK_TYPE pop(void)
{
STACK_TYPE temp;
assert(!isEmpty());
temp = stack[top_element];
top_element -= 1;
return temp;
}
/*
**判断栈是否为空
*/
int isEmpty()
{
return top_element == -1;
}
/*
**判断栈是否为满
*/
int isFull()
{
return top_element == STACK_SIZE - 1;
}
/*
**测试堆栈用函数,输入数据,入栈,然后出栈并打印。
*/
int main()
{
char a[STACK_SIZE],len,i,temp;
printf("请输入将入栈字符:\n");
gets(a);
len = strlen(a);
for(i = 0; i < len; i++)
push(a[i]);
for(i =
栈的三种存储实现方式
最新推荐文章于 2023-08-15 22:06:59 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)