• 常用的数据结构之栈


      数据结构是一种特殊的组织和存储数据的方式,使我们可以更高效的对存储的数据执行操作。以下介绍常用的数据结构中的栈。

      栈是限定仅在表尾进行插入或删除操作的线性表。表尾成为栈顶,表头成为栈底。不含元素的空表成为空栈。栈的修改是按先进先出的原则。顺序栈、链栈

    • 栈的操作
      • 进栈 push:在栈顶插入一个元素。
      • 出栈 pop:在栈顶删除一个元素。          
    • 栈的附加功能:
      • Peep 窥视:返回堆栈的栈顶元素(不删除)
      • isEmpty:检查堆栈是否为空。
      • isFull:检查堆栈是否已经满了。 
    • 栈的存储表示方法:
      • 顺序栈:利用顺序存储结构实现的栈(①利用一组地址连续的存储单元一次存放从栈底到栈顶的数据元素;②附设指针top指向栈顶元素的位置,base指针指向栈底元素位置;③采用动态分配原则)  
        • 初始化:为顺序栈分配一个数组空间(stacksize,栈的最大容量),base和top同时指向栈底,表示空栈。
        • 入栈:判断栈是否已满,满则报错,否则将元素压入栈顶,top加一。
        • 出栈:判断栈是否为空,空则报错,否则将top减一,栈元素出栈。  
      • 链栈:采用链式存储结构实现的栈,通常用单链表表示(无头节点)。 
        • 初始化:构造一个空栈,无头结点,将栈顶指针置为空。
        • 入栈:为新的栈顶元素分配结点空间,将新结点插入到栈顶,修改栈顶指针。 
        • 出栈:判断栈是否为空,空则报错,否则取栈顶元素,修改栈顶指针,释放原栈顶元素空间。
      • 顺序栈与链栈的优缺点:
        • 顺序栈受到最大空间容量的限制,在满员时扩容工作量较大,在无法估计栈可能达到的最大容量时应使用链栈。   
    • 栈的应用:
      • 表达式评估。
      • 递归编程中实现函数调用。       
  • 相关阅读:
    CentOs7-替换下载源
    CentOs7-常用命令
    Django Nginx+uwsgi 安装配置
    Linux操作系统下文件作用
    U盘创建macOS安装盘
    国内开源镜像站点汇总
    gcd常见用法
    mac rvm 升级 ruby 安装cocoapod 指定版本
    confluence 搭建 wiki 并破解
    homebrew 安装 java 指定版本
  • 原文地址:https://www.cnblogs.com/smallzhen/p/14152557.html
Copyright © 2020-2023  润新知