数据结构之链栈
(一)链栈
链栈是运算受限的单链表,只能在链表头部进行操作
// 链栈的结点
typeof struck StackNode{
SElemType data // 链栈的数据域
struck StackNode *next // 链栈的指针域
}StackNode, *LinkStack
链栈的头指针指向栈顶的元素,和链表不一样
(二)链栈的操作
1.链栈的初始化
void InitStack(LinkStack &S) {
if(S = NULL) return OK
else return FALSE
}
2.链栈的入栈
Status Push(LinkStact &S,SElemType e){
p = new StackNode // 生成新结点
p->data = e // 将新结点数据域置为e
p->next = next // 将新结点插入栈顶
S = p // 修改栈顶指针
return OK
}
3.栈顶的出栈
Staus Pop(LinkStack &S,SElemType & e) {
if(S == NULL) return ERROR
e = S -> data // 出栈的数据赋值给 出栈元素e
p = S // 赋值一个地址,方便后面销毁此结点
S = S -> next // 将S指针移动到下一个结点
delete p // 销毁结点
return OK
}
4.取栈顶元素
SElemType GetTop(LinkStack S){
if(S != NULL) return S ->data
}

浙公网安备 33010602011771号