
数据结构
数据结构相关知识初步学习与总结
田怼怼
这个作者很懒,什么都没留下…
展开
-
【数据结构】二叉平衡树(AVL树)
二叉平衡树引入1、AVL树的概念2、AVL树的操作2.1 AVL树结点的定义2.2 AVL树的插入2.3 AVL树的旋转2.4 AVL树的删除3、AVL树的性能分析引入二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明...原创 2020-03-17 21:13:09 · 763 阅读 · 0 评论 -
【数据结构】二叉搜索树
二叉搜索树1、二叉搜索树的概念2、搜索二叉树的操作2.1 二叉搜索树的查找2.2 二叉搜索树的插入2.3 二叉搜索树的删除3、二叉搜索树的性能分析3.1 时间复杂度3.2 空间复杂度3.3 平均查找长度1、二叉搜索树的概念二叉搜索树(二叉排序树)若不为空,则具有以下特性:每个结点有唯一的值,且每个结点的值均不相同;若它的左子树不为空,则它的左子树的所有结点均小于根节点的值;若它的右子树...原创 2020-03-17 14:10:40 · 859 阅读 · 0 评论 -
【数据结构】哈希
哈希的概念元素的存储位置与它的关键码有一一映射的关系,在查找元素的时候不需要进行任何比较,可以直接从表中直接检索出元素的值。哈希表的优点(1)查找的效率高(2)存在预缓存机制,提高查找的速度哈希方法中使用的转换函数称为哈希(散列)函数,构造出来的结构称为哈希表(Hash Table)(或者称散列表)哈希函数设置:hash(key) = key % capacity; 其中 capac...原创 2020-01-05 20:03:40 · 1285 阅读 · 0 评论 -
【数据结构】红黑树
1、红黑树的概念红黑树是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点有着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。2、红黑树的性质(1)每个结点不是红色就是黑色(2)根结点为黑色(3) 如果一个节点是红色的,则它的两个孩子结点是黑色的(4)对于每个结点,从该结点到其所有...原创 2019-12-04 17:37:26 · 152 阅读 · 0 评论 -
C++经典面试题汇总(更新中...)
C++相关经典面试题总结原创 2020-02-17 22:41:00 · 178 阅读 · 0 评论 -
顺序表与链表时间复杂度比较
顺序表与链表时间复杂度比较名称访问查找插入删除数组O(1)O(n)O(n)O(n)有序数组O(1)O(logN)O(n)O(n)链表O(n)O(n)O(1)O(1)有序链表O(n)O(n)O(n)O(n)1、向一个有序数组中插入一个数的时间复杂度是多少?第一步:确定插入的位置。采用遍历查找的时间复杂度是O(n),...原创 2020-02-15 20:03:25 · 11680 阅读 · 1 评论 -
【数据结构】链表之带头双向循环链表
在上一篇中已经详细的介绍了无头单向非循环链表,包括带头上双向循环链表的一些基本结构原创 2020-02-15 19:42:46 · 194 阅读 · 0 评论 -
【数据结构】链表之无头单向非循环链表
链表的特点是:物理地址不连续数据元素的逻辑顺序是通过链表中的指针链接次序实现的链表链表的结构:链表由数据域和指针域两部分组成,数据域是存储数据元素的部分,指针域一般指向下一个节点的指针。链表的优点在进行插入和删除操作时比较方便链表的缺点存储密度小,空间利用率低要访问某特定元素,只能从链表开头进行遍历头结点的作用为了保持和后面结点的设计算法一致,保持算法的高效性链表共...原创 2020-02-15 17:10:54 · 265 阅读 · 0 评论 -
【数据结构】顺序表
线性表是n个具有相同特性的数据元素的有限序列,包括顺序表、链表、栈、队列等。线性表在逻辑结构上是连续的,但是在物理结构上不一定连续。顺序表顺序表的特点是:物理地址连续通常采用数组存储,可分为:静态顺序表:使用定长数组存储动态顺序表:使用动态数组存储既然顺序表的物理地址是连续的,那么就可以计算出某个元素的物理地址.下图给出的即为计算物理地址的公式顺序表的优点存储密度大...原创 2020-02-14 17:56:26 · 193 阅读 · 0 评论 -
非递归实现二叉树的遍历
前言二叉树的遍历是按一定规律对二叉树的每个结点访问且仅访问一次。二叉树的遍历顺序有以下三种,分别为:前序遍历:根左右中序遍历:左根右后序遍历:左右根二叉树的递归遍历比较简单,但是非递归遍历的难度就要上一个台阶了,尤其是后序遍历。接下来我们就看他们的具体实现方法。前序遍历编程思想:借助栈实现,利用栈先入后出的特性1.访问且打印当前节点2.如果有右孩子,则右孩子进栈3.如果有...原创 2019-08-21 21:13:22 · 131 阅读 · 0 评论 -
数据结构的排序算法
排序所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。常见的排序算法有以下七种,接下来我会一一介绍,并给出相应的算法实现(本文均以升序为例)一、插入排序概念:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。(1)直接插入排序基本思想当插入第i(i>=1)个元素时,前面...原创 2019-08-26 20:32:09 · 311 阅读 · 0 评论