一、栈的链式存储(链栈)
利用练市存储结构实现的栈称为链栈
typedef struct Lnode{
ElemType data;
stuct LNode *next;
}*SLink;
//链栈结构的定义
typedef stuct {
SLink top;//栈顶指针
int length;//栈中元素个数
}Stack;
二、链栈的初始化
void InitStack (Stack &S)
{
//构造一个空栈S
S.top = NULL;//设栈顶指针的初值为“空”
S.length = 0;//空栈中的元素葛素为0
}
三、链栈的入栈
void Push(Stack &S,ElemType e)
{
//在栈顶只上插入元素e为新的栈顶元素
p = new LNode;//建立新的节点
if (!p) exit 1;//存储分配失败
p -> data = e;
p -> next = S.top//链接到原来的栈顶
S.top = p;//移动站定指针;
++S.length;//栈的长度增1;
}