首页 > 其他分享 >[数据结构学习笔记5] 队列(Queue)

[数据结构学习笔记5] 队列(Queue)

时间:2025-01-05 21:46:17浏览次数:7  
标签:removedItem return 队列 items Queue item new 数据结构

队列和堆栈类似,但是它是一种先进先出的结构。FIFO (first in first out)。

代码实现,javascript

class Queue {
  constructor() {
        this.items = new LinkedList();      
    }  

  clear() {
         this.items = new LinkedList();  
    }  

  contains(item) {
         return this.items.contains(item);
    }  

  peek() {
         return this.items.head.data;  
    }  

  dequeue() {
         let removedItem = this.items.head.data;
         this.items.removeFirst();
         return removedItem;
    }  

  enqueue(item) {
         this.items.addLast(item);
    }  

  getLength() {
          return this.items.length;
    }  
}

使用Queue

// create new Queue object
let myQ = new Queue();

// add two items
myQ.enqueue("Item 1");
myQ.enqueue("Item 2");

// remove item
let removedItem = my.dequeue(); // returns Item 1

时间复杂度

行为 最佳 平均 最差
Enqueue (Insert) O(1) O(1) O(1)
Dequeue (Remove) O(1) O(1) O(1)
Peek O(1) O(1) O(1)
Search / Contains O(1) O(n) O(n)
Memory O(n) O(n) O(n)

标签:removedItem,return,队列,items,Queue,item,new,数据结构
From: https://www.cnblogs.com/Eagle6970/p/18653945

相关文章

  • 8.Redis底层数据结构——ziplist和listpack
    一、ziplist1.1ziplist结构Redis采用紧凑的字节数组表示一个压缩列表,压缩列表结构示意图如下:<zlbytes><zltail><zllen><entry><entry>...<entry><zlend>zlbytes:压缩列表的字节长度,占4个字节,因此压缩列表最多有2*32-1个字节。zltail:压缩列表尾元素相对于压缩......
  • Udemy——Python数据结构与算法(11)
     课程:【Udemy高分付费课程】Python数据结构与算法-终极Python编码面试和计算机科学训练营(中英文字幕)_哔哩哔哩_bilibili算法归并排序基本思想归并排序是一种基于分治思想的排序算法。它的核心思想是将待排序序列不断分成两半,直到每一部分只有一个元素(此时认为是有序......
  • Udemy——Python数据结构与算法(10)
     课程:【Udemy高分付费课程】Python数据结构与算法-终极Python编码面试和计算机科学训练营(中英文字幕)_哔哩哔哩_bilibiliGraph基本代码classGraph:def__init__(self):self.adj_list={}defprint_graph(self):forvertexinself.adj_list......
  • Udemy——Python数据结构与算法(9)
      课程:【Udemy高分付费课程】Python数据结构与算法-终极Python编码面试和计算机科学训练营(中英文字幕)_哔哩哔哩_bilibili哈希表HashTable通过将键(Key)映射到表中一个位置来访问记录,以加快查找速度。简单来说,它就像一个“字典”,你可以通过一个“索引”(键)快速找到对应的内......
  • Python数据结构与算法分析 第3版PDF、EPUB免费下载
    适读人群:1.希望学习数据结构和算法的Python用户;2.计算机专业的学生和老师。只有洞彻数据结构与算法,才能真正精通Python!热门计算机科学教材,华盛顿大学、北京大学等多家高校采用,让你在代码编写的战场上所向披靡!电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版......
  • [数据结构学习笔记4] 堆栈(Stack)
    堆栈,我们总是把新的数据加在堆栈的最顶端,移除的时候也是从最顶端开始移除。也叫LIFO(lastinfirstout)。代码实现(javascript)classStack{constructor(...items){this.items=items;}clear(){this.items.length=0;}clon......
  • python【数据结构】
     1.列表Python中列表是可变的,这是它区别于字符串和元组的最重要的特点;即,列表可以修改,而字符串和元组不能。以下是Python中列表的方法:方法描述list.append(x)把一个元素添加到列表的结尾,相当于a[len(a):]=[x]。list.extend(L)通过添加指定列表的所有元素来扩充列表,......
  • 重生之我在异世界学编程之数据结构与算法:深入数和二叉树篇
    大家好,这里是小编的博客频道小编的博客:就爱学编程很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!!目录一、树的基本概念二、二叉树的基本概念三、在C语言中实现二叉树快乐的时光总是短暂,咱们下篇博文再见啦!!!不要忘了,给小编点点赞......
  • 「Java 数据结构全面解读」:从基础到进阶的实战指南
    「Java数据结构全面解读」:从基础到进阶的实战指南数据结构是程序设计中的核心部分,用于组织和管理数据。Java提供了丰富的集合框架和工具类,涵盖了常见的数据结构如数组、链表、栈、队列和树等。本文将系统性地介绍这些数据结构的概念、特点以及在Java中的实现,并通过代码......
  • C/C++调试---堆数据结构
    堆数据结构因为C/C++语言赋予程序员通过引用和指针来操纵内存对象的最大自由,所以毫不奇怪的是这些程序中的大多数bug都与错误的内存访问有关。根据错误发生的位置是栈还是堆,内存错误可分为两种:栈错误和堆错误。栈栈是分配给给一个独立的控制流(线程)的来纳许内存区域,用......