
数据结构
泛泛之素
君子不器
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树相关算法汇总(详细)
二叉树基本知识二叉树(Binary Tree)是n(n≥0)个有限元素的集合,该集合或者为空,或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。当集合为空时,称该二叉树为空二叉树。二叉树常见概念:结点的度。结点所拥有的子树的个数称为该结点的度。叶子结点。度为0的结点称为叶子结点,或者称为终端结点。分支结点。度不为0的结点称为分支结点,或者称为非终端结点。一棵树的结点除叶子结点外,其余的都是分支结点。左孩子、右孩子、双亲。树中一个结点的子树的根结点称为这个结原创 2020-06-05 17:39:44 · 13232 阅读 · 0 评论 -
链表相关算法汇总(详细)
链表基础知识链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(log原创 2020-06-06 11:48:36 · 8203 阅读 · 0 评论 -
二分搜索相关算法题汇总
二分搜索简介在计算机科学中,二分搜索(binary search)也称折半搜索(half-interval search)、对数搜索(logarithmic search),是在有序数组中查找某一特定元素的搜索算法。二分搜索是一种在每次比较之后将查找空间一分为二的算法。每次需要查找集合中的索引或元素时,都应该考虑二分搜索。如果集合是无序的,我们可以总是在应用二分搜索之前先对其进行排序。二分搜索的时间复杂度是 O(log n),空间复杂度为 O(1)。如何判断是否需要使用二分搜索,当你看到时间复杂度是原创 2020-06-07 18:20:11 · 6219 阅读 · 0 评论 -
数据结构与算法: 队列,栈
队列顾名思义,理解也很简单,这个队列就跟我们排队上车一样,先到的排在前面,后到的排在后面,一个一个检票上车,先到的先上车后到的后上车,其实队列在生活中还是挺常见,排号相关的都是这个规则,很好理解。kafka,rabbitMQ这些消息队列,不就是用的队列的原理栈辩证的看问题,如果有先到先出队的需求,那么就会有需要后到先出,如地铁后上车的在门口,到站了就要先出;米缸里的米,如果快用没了就补充的话,那么缸底的米总是用不到的;其实栈在计算机中使用很多的,比如我们经常用得递归,其实就是用得栈来存储函数,递归到原创 2020-06-10 11:22:45 · 5559 阅读 · 0 评论