数据结构之链栈
(一)链栈
链栈是运算受限的单链表,只能在链表头部进行操作
// 链栈的结点
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
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本