数据结构
热带鱼_
这个作者很懒,什么都没留下…
展开
-
【数据结构】 堆排序
堆是以二叉树为基础存放数据,分为大顶堆和小顶堆。大顶堆:根节点大于左右子节点。升序排列使用大顶堆小顶堆:根节点小于左右子节点。降序排列使用小顶堆排序思路为:(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 · 143 阅读 · 0 评论 -
【数据结构】 用Kotlin和Java实现顺序存储二叉树
顺序存储1. 概述顺序存储只考虑完全二叉树存储为[1, 2, 3, 4, 5, 6, 7]第n个元素的左节点是2n+1第n个元素的右节点是2n+2第n个元素的父节点是(n-1)/22. 遍历java代码public class ArrayBinaryTree { int[] data; public ArrayBinaryTree(int[] data) { this.data = data; } public void frontS原创 2021-07-28 14:35:54 · 109 阅读 · 0 评论 -
【数据结构】 用Kotlin实现二叉树的创建、遍历、查找、删除
树的查找性能和插入性能优于线性结构(数组、链表)。二叉树:任何节点的子节点数量不超过2二叉树的子节点分为左节点和右节点。下图是两棵树满二叉树:所有叶子节点都在最后一层,而且节点总数为2^n-1。完全二叉树:所有叶子节点都在最后一层或倒数第二层,且最后一层的叶子节点都在左边连续,倒数第二层的叶子节点在右边连续。下图不是完全二叉树,第4层的叶子节点不是从左至右下图也不是完全二叉树,第3层右边的叶子结点没有填满。创建二叉树-------1----2----3代码(1)创建树类原创 2021-07-20 16:38:40 · 442 阅读 · 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 · 313 阅读 · 0 评论 -
Kotlin 单链表的创建、删除节点、插入节点
1原创 2021-07-16 13:10:53 · 209 阅读 · 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 · 1096 阅读 · 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 · 614 阅读 · 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 · 3336 阅读 · 0 评论