数据结构之链栈

(一)链栈

链栈是运算受限的单链表,只能在链表头部进行操作

// 链栈的结点
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
}
posted @   铜须的编程生活  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示