数据结构与算法
JaxonChan
脚踏实地写好每一句"Hello World!"
展开
-
Java中PriorityQueue构建大顶堆方法
1.PriorityQueue概述Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。有一种特殊的队列叫做PriorityQueue,即优先队列。优先队列的作用是能保证每次取出的元素都是队列中权值最小的(Java的优先队列每次取最小元素,及默认是小顶堆)。元素大小的评判可以通过元素本身的自然顺序,也可以通过构造时传入的比较器(如:Comparator)。Java中PriorityQueue实现了Queue接口,不允许放入null元素;其通过堆实现,具体说是通过完全二原创 2021-11-07 17:01:39 · 1314 阅读 · 0 评论 -
顺序存储二叉树
顺序存储二叉树的概念从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组。顺序存储二叉树的特点:1.顺序二叉树通常只考虑完全二叉树2.第n个元素的左子节点为 2 * n + 13.第n个元素的右子节点为 2 * n + 24.第n个元素的父节点为 (n-1) / 25.n : 表示二叉树中的第几个元素(按0开始编号 如图所示)...原创 2021-09-16 17:12:15 · 193 阅读 · 0 评论 -
数组模拟队列与环形队列
队列队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出。front: 指向队列头的前一个元素,初始值front=-1。rear:指向队列尾,即 queue[rear] 就是队列的最后一个数据,初始值rear=-1。1.将尾指针往后移:rear+1 ,队列为空的条件:front == rear 。2.若尾指针 rear 小于队列的最大下标 maxsize-1,则将数据存入 rear所指的数组元素中,否则无法存入数据。 队列为原创 2021-08-23 16:09:31 · 117 阅读 · 0 评论