美文网首页
链栈的表示和实现

链栈的表示和实现

作者: 搬砖的猫 | 来源:发表于2019-10-28 10:53 被阅读0次

链栈的存储结构

//------链栈的存储结构------
typedef struct StackNode{
    SElemType data;
    struct StackNode *next;
}StackNode, *LinkStack; 

链栈的初始化

//链栈的初始化
Status InitStack(LinkStack &S){
    //构造一个空栈S,栈顶指针置空 
    S = NULL;
    return OK;
} 

链栈的入栈

(1)为入栈元素e分配空间,用指针p指向。
(2)将新结点数据域置为e。
(3)将新结点插入栈顶。
(4)修改栈顶指针为p。

//链栈的入栈
Status Push(LinkStack &S, SElemType e){
    //在栈顶插入元素e 
    p = new StackNode;  //生成新结点 
    p -> data = e;      //将新结点数据域置为e 
    p -> next = S;      //将新结点插入栈顶 
    S = p;              //修改栈顶指针为p 
    return OK;
} 

链栈的出栈

(1)判断栈是否为空,若空则返回ERROR。
(2)将栈顶元素赋给e。
(3)临时保存栈顶元素的空间,以备释放。
(4)修改栈顶指针,指向新的栈顶元素。
(5)释放原栈顶元素的空间。

//链栈的出栈
Status Pop(LinkStack &S, SElemType &e){
    //删除S的栈顶元素,用e返回其值 
    if(S == NULL){      //栈空 
        return ERROR;
    }
    e = S -> data;      //将栈顶元素赋给e 
    p = S;              //用p临时保存栈顶元素空间,以备释放 
    S = S -> next;      //修改栈顶指针 
    delete p;           //释放原栈顶元素的空间 
    return OK;
} 

取链栈的栈顶元素

与顺序栈一样,当栈非空时,此操作返回当前栈顶元素的值,栈顶指针S保持不变。

//取链栈的栈顶元素
SElemType GetTop(LinkStack S){
    //返回S的栈顶元素,不修改栈顶指针 
    if(S != NULL){         //栈非空 
        return S -> data;  //返回栈顶元素的值,栈顶指针不变 
    }
} 

相关文章

  • 链栈的表示和实现

    链栈的存储结构 链栈的初始化 链栈的入栈 (1)为入栈元素e分配空间,用指针p指向。(2)将新结点数据域置为e。(...

  • 栈(链栈)

    栈:限定只能在表尾进行插入和删除的线性表。 链栈:使用链表表示的栈。 链栈特性: 只能栈顶插入和删除元素。 无需预...

  • 顺序栈的表示和实现

    栈是一种重要的数据结构,从数据结构角度来看,栈也是线性表,其特殊性在于栈的基本操作是线性操作的子集,是操作受限的线...

  • 顺序栈的表示和实现

    顺序栈是指利用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top...

  • 3. 栈的操作

    1. 栈的操作-c语言实现2. 栈操作的实现-顺序栈和链栈 3. 栈的实现与遍历4. c语言的函数调用栈5. 两个...

  • 【C语言实现】链栈

    简书内代码已上传GitHub:点击我 去GitHub查看代码这篇文章主要解释下链栈是什么和链栈的实现以及链栈和顺序...

  • C语言实现链栈以及基本操作

    链栈,即用链表实现栈存储结构。链栈的实现思路同顺序栈类似,顺序栈是将数顺序表(数组)的一端作为栈底,另一端为栈顶;...

  • 栈的两种实现

    实现方式 这里介绍两种实现方式:顺序栈和链栈。 栈的特点 栈作为一种数据结构,是一种只能在一端进行插入和删除操作的...

  • 栈和队列

    栈和队列 本质上是稍加限制的线性表 栈和队列定义 栈顺序栈定义 链栈结点定义 队列顺序队列 链队列链队类型定义 链...

  • 链栈及简单实现

    链栈 用带有头节点的单链表实现的栈。用头节点当栈顶指针。 当top.Next==null时,栈空。 实现 Node...

网友评论

      本文标题:链栈的表示和实现

      本文链接:https://www.haomeiwen.com/subject/cgivvctx.html