数据结构
热带鱼_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构】 堆排序
堆是以二叉树为基础存放数据,分为大顶堆和小顶堆。 大顶堆:根节点大于左右子节点。 升序排列使用大顶堆 小顶堆:根节点小于左右子节点。 降序排列使用小顶堆 排序思路为: (1)将最小子树排成大顶堆。 (1.1)排序可能会影响底下排好的堆,需要递归(1) (2)循环调用(1),全部排成大顶堆。 (2.1)将第0个元素和堆最后一个元素交换,将交换后前面的元素递归(1)。 现在存在数组[9, 6, 8, 7, 0, 1, 10, 4, 2] 大顶堆有很多种,其中一种大顶堆为: 将数组排成大顶堆: Java代码:原创 2021-07-29 11:13:33 · 232 阅读 · 0 评论 -
【数据结构】 用Kotlin和Java实现顺序存储二叉树
顺序存储 1. 概述 顺序存储只考虑完全二叉树 存储为[1, 2, 3, 4, 5, 6, 7] 第n个元素的左节点是2n+1 第n个元素的右节点是2n+2 第n个元素的父节点是(n-1)/2 2. 遍历 java代码 public class ArrayBinaryTree { int[] data; public ArrayBinaryTree(int[] data) { this.data = data; } public void frontS原创 2021-07-28 14:35:54 · 199 阅读 · 0 评论 -
【数据结构】 用Kotlin实现二叉树的创建、遍历、查找、删除
树的查找性能和插入性能优于线性结构(数组、链表)。 二叉树:任何节点的子节点数量不超过2 二叉树的子节点分为左节点和右节点。 下图是两棵树 满二叉树:所有叶子节点都在最后一层,而且节点总 数为2^n-1。 完全二叉树:所有叶子节点都在最后一层或倒数第二层,且最后一层的叶子节点都在左边连续,倒数第二层的叶子节点在右边连续。 下图不是完全二叉树,第4层的叶子节点不是从左至右 下图也不是完全二叉树,第3层右边的叶子结点没有填满。 创建二叉树 -------1 ----2----3 代码 (1)创建树类原创 2021-07-20 16:38:40 · 597 阅读 · 0 评论 -
Kotlin 单向循环链表与双向循环链表
1 单向循环链表 单向循环链表,它的最后一个结点指向头结点,形成一个环。在节点结构上和单链表是一样的。 从单向循环链表中的任何一个结点出发都能找到任何其他结点。 1.1 节点代码 class LoopNode(var value: Int) { // 独立的循环链表,自己循环到自己 var next: LoopNode = this operator fun next(): LoopNode { return next } // 删除子原创 2021-07-16 14:19:26 · 419 阅读 · 0 评论 -
Kotlin 单链表的创建、删除节点、插入节点
1原创 2021-07-16 13:10:53 · 295 阅读 · 0 评论 -
Kotlin 用数组实现队列的入队、出队
用Kotlin语言实现队列的先入先出 fun main() { // 创建一个队列 val mq = MyQueue() // 入队 mq.add(1) mq.add(2) mq.add(3) mq.add(4) // 打印队列 mq.show() // 出队 println(mq.poll()) mq.show() } class MyQueue { var elements: IntArray = int原创 2021-07-15 16:40:42 · 1298 阅读 · 2 评论 -
Kotlin 用数组实现栈的压入、弹出、获取栈顶元素
实现栈的后入先出 fun main() { // 创建一个栈 val ms = MyStack() // 压入数据 ms.push(9) ms.push(8) ms.push(7) ms.push(6) // 获取栈顶 println(ms.peek()) // 弹出栈顶 ms.pop() println(ms.peek()) } class MyStack() { // 栈的底层使用数组来存储数原创 2021-07-15 16:17:29 · 779 阅读 · 0 评论 -
Kotlin 数组 IntArray和intArrayOf的区别
在用Kotlin初始化数组遇到了个问题,没想到IntArray和intArrayOf居然还有区别。 一般可以这样初始化数组 val arr = intArrayOf(1, 2 ,3) 数组内的元素就是[1, 2, 3]。 但我如果要初始化长度为3的数组,但不知道里面填什么内容,用 intArrayOf 实现不了。 得这么做: val arr = IntArray(3) 于是看了一下intArrayOf和IntArray的源码 ...原创 2021-07-15 14:26:30 · 3703 阅读 · 0 评论
分享