堆栈数据一种后进先出的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。基本的堆栈操作是push和pop,push是把一个新值压入堆栈的顶部,pop是把堆栈的顶部的值移除并返回这个值。堆栈只提供对它的栈顶值的访问。
堆栈很容易实现,可以用静态数组、动态数组、链表实现堆栈。本文介绍的是链表实现的堆栈。
#include <stdio.h>
#include <malloc.h>
#define STACK_TYPE int
void push(STACK_TYPE value);
void pop(void);
STACK_TYPE top(void);
bool isEmpty(void);
int isFull(void);
typedef struct Node
{
int data;