(一)栈的定义
栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈的顶。
对栈的基本操作有Push(进栈)和Pop(出栈),前者相当于插入,后者则是删除最后插入的元素。最后插入的元素可以通过使用Top例程在执行Pop之前进行考查。
栈的一般模型是,存在某个元素位于栈顶,而该元素是唯一可见的元素。
(二)栈的实现
1.栈的链表实现
在编写例程之前,我们先给出定义:
#ifndef _Stack_h
struct Node;
typedef struct Node *PtrToNode;
typedef PtrToNode Stack;
int IsEmpty( Stack S);
Stack CreateStack( void );
void DisposeStack( Stack S );
void MakeEmpty( Stack S );
void Push( ElementType X, Stack S );
ElementType Top( Stack S );
void Pop( Stack S );
#endif /*_Stack_h*/
struct Node
{
ElementType Element;
PtrToNode Next;
};
- IsEmpty函数
int