首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
月亮睡觉你不睡
掘友等级
社会主义接班人
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
27
文章 27
沸点 0
赞
27
返回
|
搜索文章
最新
热门
数据结构学习-优先级队列(Priority Queue)
之前介绍的 队列 是一种先进先出的线性数据结构。而优先级队列出队的时候是根据优先级判断的。 最小优先级,出队的时候永远是最小的先出队。 和二叉堆一样,优先级队列能够很好的在数据列表里面找到最大值和最小值,还有像一些最小花费计算,最短路径确定,堆排序等问题都可以使用优先级队列来解…
数据结构学习-二叉堆(Binary Heap)
二叉堆是一个完全二叉树,满足完全二叉树的条件是除了最底层可以不填满节点,其它层级都需要填满。 构建一些图形算法。 最小堆,优先级越高值越小。 根节点的值最大。 根节点的值最小。 替换根节点与最后一个节点的位置,在二叉堆的数组变量里面也就是交换第一个元素和最后一个元素的值,然后移…
数据结构学习-Trie
Trie (发音 try)又可以叫成单词树,专门用于存储可以表示为集合的数据,比如英语单词。数据结构如下: 每个字母都是一个节点,其中有一个小点标示的是结束节点,比如图中的 g, r 等字母。 为什么使用它?假如要查询一个搜索词的所有匹配项。如果使用数组存储的话,那么搜索的时间…
数据结构学习-AVL树
在前面的 二叉搜索树 中我们已经知道对于已经排序好的数据它能够很好的提高数据的查找,添加,删除操作的性能,时间复杂度都是O(log n)。 如果下一个的插入节点都是插入到最底部的右节点,比如插入的是 10,那么它的插入时间复杂度其实是 O(n)。所以这就涉及二叉搜索树的一个平衡…
数据结构学习-二叉搜索树(Binary Search Tree)
二叉搜索树是一种特殊的 二叉树 。二叉搜索树有以下特性: 由于二叉搜索树有这些特性,所以对于已经排序好的数据它能够很好的提高数据的查找,添加,删除操作的性能,时间复杂度都是O(log n)。 代码实现是在 二叉树 的基础上添加的。 由于二叉搜索树的左节点的值小于右节点的值,所以…
数据结构学习-二叉树(Binary Tree)
前面介绍的 树 是普通树,父节点可以有多个子节点。二叉树是父节点最多只有两个子节点的树。子节点中左边的节点称为左节点,右边的节点称为右节点。 在前面介绍树的时候我们实现了深度优先遍历和层级优先遍历。下面对二叉树实现不一样的遍历。 如果当前节点有右节点,递归遍历访问完右节点。 访…
数据结构学习-树(Trees)
之前学习的栈,链表,队列都是线性数据结构。而树形数据结构则在代表层级关系(比如目录),管理已排序数据,加快数据查找速度等有着大量的应用。 和链表一样,树也是使用节点(Node)代表里面的元素的。 在树中,每个节点都有一个上面的节点(除了最顶部那个节点),上面的那个节点称为父节点…
数据结构学习-队列(Queue)
队列是一种先进先出(first in first out FIFO)的线性数据结构。主要接口设计是头部移除数据,尾部添加数据。下面是大致需要实现的接口: 可以看到需要实现的接口其实和之前实现的 栈数据结构 是非常类似的。 由于不同存储数据的方式实现相同方法的复杂度有可能是不一样…
数据结构学习-链表(LinkedList)
我们知道数组在内存中是连续分配的,如果当前分配的内存满了,然后又往里面添加元素的时候,系统会在当前的内存大小基础上进行一定倍数的扩容来创建一个新的内存区域,扩容成功后再把原来内存的数组元素拷贝到新开辟的连续内存中。 这样可能会有一个问题就是数组里面的一些内存可能是用不到的,造成…
数据结构学习-栈(Stack)
栈是一种后进先出(Last In First Out, LIFO)的线性数据结构,它只能在一端进行数据操作。在平时使用中,栈的基本操作有: 查看代码,可以看出栈的实现非常的简单,但是它确是很重要的基本线性数据结构。比如在iOS开发中,使用了 UINavigationContro…
下一页
个人成就
文章被点赞
46
文章被阅读
18,218
掘力值
741
关注了
15
关注者
13
收藏集
4
关注标签
5
加入于
2020-12-19