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 删除指定元素

  • 相关阅读:
    快读
    状态压缩-动态规划
    数论入门_扩展欧几里得算法
    luogu P3383线性筛素数(埃氏筛)
    luogu P1843奶牛晒衣服
    git 常用方法
    javascript 数组排序
    深入理解javascript函数参数
    深入理解call apply bind方法
    移动H5前端性能优化
  • 原文地址:https://www.cnblogs.com/liukuidashen/p/14158004.html
Copyright © 2011-2022 走看看