数据结构与算法-队列
一、概述
队列也是一种表,是一种先进先出、从队头删除、从队尾删除的一种数据结构。队列这种数据结构在实际的项目中用的也是比较多,比如消息中间件 消息队列等。队列的插入我们称为入队操作。从队列中移除我们称为出队操作。队列和栈一样每个操作都是O(1)
队列的基本操作有:
1、初始化队列
2、入队
3、出队
4、判空
5、获取队头元素
6、获取队尾元素
7、获取队列的大小
下面是golang 实现
package queue import ( "fmt" ) // define a node type Node interface{} // 队列 type Queue struct { Data Node Next *Queue } func InitQueue() *Queue { q := &Queue{} q.Next = nil return q } // 判空 func IsEmpty(q *Queue) bool { return q.Next == nil } // 入队 func EnQueue(q *Queue, data Node) { p := &Queue{} p.Data = data p.Next = nil if q.Next == nil { q.Next = p } else { s := q for s.Next != nil { s = s.Next } s.Next = p } } // 出队 func DeQueue(q *Queue) Node { if IsEmpty(q) { return nil } else { s := q.Next if s.Next == nil { q.Next = nil } else { q.Next = s.Next } return s.Data } } // 大小 func Size(q *Queue) int { if IsEmpty(q) { return 0 } s := q var size int for s.Next != nil { size++ s = s.Next } return size } //打印 func Print(q *Queue) { if IsEmpty(q) { return } s := q for s.Next != nil { fmt.Println(s.Data) s = s.Next } } // 头部 func Header(q *Queue) Node { if IsEmpty(q) { return nil } return q.Next.Data } // 尾部 func Tail(q *Queue) Node { if IsEmpty(q) { return nil } s := q for s.Next != nil { s = s.Next } return s.Next.Data }
相关推荐
数据结构与算法-队列 极客笔记 ⼀、什么是队列? 1.先进者先出,这就是典型的"队列"结构。 2.⽀持两个操作:⼊队enqueue(),放⼀个数据到队尾;出队dequeue(),从队头取⼀个元素。 3.所以,和栈⼀样,队列也是⼀种...
非常稳,利用类创建,所有操作都有!
算法-数据结构和算法-5-队列和双端队列.rar
【数据结构与算法 - 环形队列】 C语言实现
数据结构-基本算法-循环队列(学生时代源码,调试可运行)
数据结构与算法--栈&队列 很好的哦 欢迎下载
算法-数据结构和算法-4-栈和队列.rar
数据结构与算法----线性表及Java实现顺序表、链表、栈、队列 定义线性表节点的结构.pdf
全书分16章,1概论,2算法分析 3渐进表示法 4基本数据结构,5数据类型与抽象 6栈与队列 7有序线性表与排序表 8 散列,哈希表与分散表 9树 10查找树, 11堆和优先队列 12集合,多重集和分区 13动态存储分配 14 算法...
主要内容包括:面向对象编程的基本原理,判定算法效率的方法,堆栈、队列及其应用,对于多种递归的详细讨论,二叉树、B树、2-4树等的查找和遍历等,分析排序、散列等数据结构的应用,图、NP完整性,数据压缩算法、...
编写程序,建立容量为n(建议n=8)的循环队列,完成以下程序功能。输入字符#,执行一次出队操作,屏幕上显示出队字符;输入字符@,队列中所有字符依次出队并按出队次序在屏幕上显示各字符;输入其它字符,则输入的字符...
数据结构与算法中队列的实现,游玩不得代码哦!
这是C#版的数据结构与算法的代码实现,包括:顺序表,单链表,双链表;顺序栈,链栈;顺序队列,链队列;顺序串;用数组进行特殊矩阵的存储,稀疏矩阵的存储;顺序存储二叉树,链式存储二叉树,哈夫曼树;多重链表...
1)数据结构的基本概念 2)线性表、栈与队列的定义,存储表示 3)树和二叉树的定义、二叉树的遍历 4)图的定义、存储结构、图的遍历 5)排序与查找
本资源为数据结构与算法第四章(栈和队列)的作业程序代码。包含以下的两个程序: 4.3火车硬软座问题 4.11rear和length表示的循环队列入出队 北工大电控学院《数据结构与算法》课程的其它章节程序实验及作业代码亦已...
VS2008编译通过 C++数据结构 -- 队列知识 算法精简高效
实现基于顺序表的循环队列(数据结构定义+基本运算)。 设计算法将一个循环队列反向排列,原来的队头变成队尾,原来的队尾变成队头。 选做题:使用循环队列,编写一个打印二项式系数表(即杨辉三角)的算法。 1 1...
数据结构与算法设计题包含线性表、栈与队列、数组、广义表、串、树、图、查找算法和排序算法的代表性算法设计题 可以高效的帮助学习数据结构的同学,在学习和复习方面。也可以让读者更好的掌握数据结构与算法的内涵
算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和...
《数据结构》-李春葆 实验报告 -特殊线性表算法实践-队列