zoukankan      html  css  js  c++  java
  • 数据结构 栈 队列 链表

    1,栈只能从表的一端存取数据,另一端是封闭的。

    2,在栈中,无论是存数据还是取数据,都必须遵循"先进后出"的原则,即最先进栈的元素最后出栈。

    进栈和出栈

         基于 栈结构的特点,在实际应用中,通常只会对栈执行以下两种操作:

    1. 向栈中添加元素,此过程被称为"进栈"(入栈或压栈);
    2. 从栈中提取出指定元素,此过程被称为"出栈"(或弹栈);

    栈的具体实现

            栈是一种 "特殊" 的线性存储结构,因此栈的具体实现有以下两种方式:

    1. 顺序栈:采用顺序存储结构可以模拟栈存储数据的特点,从而实现栈存储结构;
    2. 链栈:采用链式存储结构实现栈结构;

    栈的使用

         1.栈存储结构可以帮我们检测代码中的括号匹配问题。

         2.进制转换

         3.浏览器回退功能

    队列

           队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。

    通常,称进数据的一端为 "队尾",出数据的一端为 "队头",数据元素进队列的过程称为 "入队",出队列的过程称为 "出队"。
           不仅如此,队列中数据的进出要遵循 "先进先出" 的原则,即最先进队列的数据元素,同样要最先出队列。

    队列的实现

     队列存储结构的实现有以下两种方式:
    1. 顺序队列:在顺序表的基础上实现的队列结构;
    2. 链队列:在链表的基础上实现的队列结构;
     两者的区别仅是顺序表和链表的区别,即在实际的物理空间中,数据集中存储的队列是顺序队列,分散存储的队列是链队列。
    特点
    1. 数据从队列的一端进,另一端出;
    2. 数据的入队和出队遵循"先进先出"的原则;

    队列的实际应用
    实际生活中,队列的应用随处可见,比如排队买东西、医院的挂号系统等,采用的都是队列的结构。

    链表

     链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

    正式构建一个链表类

    应该具有以下属性和方法

    count 元素数量

    head 头节点指针

    insert 向指定位置插入元素

    get/set 获取和修改节点值

    remove 删除指定元素

  • 相关阅读:
    Scrapy 概览笔记
    Python 依赖版本控制 (requirements.txt 文件生成和使用)
    Python 虚拟空间的使用
    macOS 所有版本 JDK 安装指南 (with Homebrew)
    鉴权那些事
    Java 位运算符和 int 类型的实现
    ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
    如何做好一次知识或技术分享
    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
    ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
  • 原文地址:https://www.cnblogs.com/liukuidashen/p/14158004.html
Copyright © 2011-2022 走看看