栈的主要特点是先进先出,是一种操作受限的线性数据结构;
代码如下:
sequence_stack.h
#ifndef _SEQUENCE_STACK_H
#define _SEQUENCE_STACK_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STACK_MAX_SIZE 1024
#define STACK_ERR (-1)
#define STACK_SUCCESS 0
#define DATA_TYPE_IS_CHAR
#if defined DATA_TYPE_IS_CHAR
typedef char DataType;
#elif defined DATA_TYPE_IS_INT
typedef int DataType;
#elif defined DATA_TYPE_IS_FLOAT
typedef float DataType;
#endif
typedef struct seq_stack{
int size;
int top;
DataType *data;
}*PStack, Stack;
/* 创建一个空的顺序栈 */
PStack CreateStack();
/* 判断一个栈是否为空 */
int StackIsEmpty(const PStack stack);
/* 进栈/压栈 */
void PushIntoStack(PStack stack, DataType data);
/* 出栈/弹栈 */
void PopFromStack