美文网首页
<<漫画算法>>--数据结构之栈和队列

<<漫画算法>>--数据结构之栈和队列

作者: erki_stwee | 来源:发表于2019-12-09 23:25 被阅读0次

大部分记录均来自小灰漫画算法

· 区分物理结构和逻辑结构

以人为例,血肉和骨骼可以看做物理结构;精神层面的东西可以看做逻辑结构。 物理结构和逻辑结构.png

· 什么是栈
栈是一种线性数据结构;栈中的元素只能先入后出。实现:Stack和LinkedStack


栈.png

· 什么是队列
队列是一种线性数据结构,队列中的元素只能先入先出。队列的出口端叫对头,队列的入口端叫队尾。
为了避免队列的空间维持恒定:
在数组不扩容的前提下,利用已出队元素留下的空间,让队尾指针重新指挥数组的首位。一直到队尾下标+1 % 数组长度 = 对头下标。需要注意的是,这种做法需要队尾指针指向的位置永远空出1位,所以队列最大容量比数组长度小1。
public class MyQueue {

//恒定数组
private int [] array;
//队头
private int front;
//队尾
private int end;

public MyQueue(int capacity) {
    this.array = new int[capacity];
}

public int deQueue() throws Exception {
    if(end == front) {
        throw new Exception("队列以空");
    }
    int deQueueElement = array[front];
    front = (front + 1) % array.length;
    return deQueueElement;
}

public void enQueue(int element) throws Exception{
    if((end + 1) % array.length == front) {
        throw new Exception("队列已满");
    }
    array[end] = element;
    end = (end + 1) % array.length;
}

}

· 各自的应用
栈通常用于对“历史”的回溯。
队列通常用于对“历史”的回放。重现之前的操作步骤。

双端队列同时实现了栈和队列的优点。

相关文章

  • <<漫画算法>>--数据结构之栈和队列

    大部分记录均来自小灰漫画算法 · 区分物理结构和逻辑结构 · 什么是栈栈是一种线性数据结构;栈中的元素只能先入后出...

  • 浅谈算法和数据结构

    注:采转归档,自己学习查询使用 浅谈算法和数据结构: 一 栈和队列浅谈算法和数据结构: 二 基本排序算法浅谈算法和...

  • LeetCode 栈、队列、优先队列专题 1:栈和队列的使用

    这一部分,我们开始介绍“栈、队列、优先队列”。栈和队列虽然是简单的数据结构,但是使用这些简单的数据结构所解决的算法...

  • 排序算法

    什么是算法 书籍推荐 《数据结构与算法分析》 表、栈和队列 树 散列(hash) 优先队列(堆) 排序 定义 问题...

  • Java数据结构算法(五)排序

    算法这点粗略整理一下,后面完善 Java数据结构算法(一)链表 Java数据结构算法(二)栈和队列 Java数据结...

  • Java数据结构算法(三)树

    本文旨作于收集整理使用!! 导航 Java数据结构算法(一)链表 Java数据结构算法(二)栈和队列 Java数据...

  • Java数据结构算法(四)图

    本文旨作于收集整理使用!! 导航 Java数据结构算法(一)链表 Java数据结构算法(二)栈和队列 Java数据...

  • Java数据结构和算法概览

    Java数据结构和算法概览 数据结构 线性数据结构:常见的有一维数组,线性表,栈,队列,双队列,串。 非线性数据结...

  • JavaScript_数组

    一、 数据结构 数据结构分为: 逻辑结构、存储结构和算法。 (一)存储结构 a. 线性 栈 队列 堆 数组 …… ...

  • 实战PHP数据结构基础之栈

    栈和队列 栈和队列和之前讲到的实战PHP数据结构基础之双链表 一样都是线性结构。 栈有什么特点 栈遵循后进先出的原...

网友评论

      本文标题:<<漫画算法>>--数据结构之栈和队列

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