摘要:
微信搜索:码农StayUp 主页地址:https://gozhuyinglong.github.io 源码分享:https://github.com/gozhuyinglong/blog-demos 1. 单例模式 单例模式(Singleton Pattern)是一种简单的对象创建型模式。该模式保证 阅读全文
posted @ 2021-02-15 14:12
码农StayUp
阅读(3800)
评论(0)
推荐(2)
摘要:
迄今为止,已经介绍了《 [二叉查找树](https://mp.weixin.qq.com/s/6S8M6r-EY4IMF3UUvZ7_AA) 》和《 [AVL树](https://mp.weixin.qq.com/s/eeXi_11illdVqMnkse_mhQ) 》,我们始终假设可以把整个数据结构存储在内存中。可是,如果数据多到内存装不下,这就意味着必须把数据放在磁盘上,显然这些数据结构不再适用。
问题在于磁盘的I/O速度是远远不如内存访问速度的,然而从一棵树中查找到某个元素,必须从根节点一层层往下找,这每一次查找便是一次I/O操作。为了提高性能,就必须要减少查找的次数。
如能减少树的高度、增加每个节点中的元素数,便是种有效的解决方案。实现这种想法的一种方法是使用B树。 阅读全文
posted @ 2021-02-15 13:16
码农StayUp
阅读(700)
评论(0)
推荐(0)
摘要:
AVL(Adelson-Velskii 和 Landis)树是带有平衡条件的[二叉查找树](https://mp.weixin.qq.com/s/6S8M6r-EY4IMF3UUvZ7_AA),又叫做平衡二叉树。在AVL树中任何节点的两个子树高度差最多为1,所以它又被称为高度平衡树。 阅读全文
posted @ 2021-02-15 13:14
码农StayUp
阅读(445)
评论(0)
推荐(0)
摘要:
二叉查找树又叫二叉排序树(Binary Sort Tree),或叫二叉搜索树,简称BST。BST是一种节点值之间有次序的二叉树。其特性是:
* 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;
* 若任意节点的右子树不空,则右子树上所有节点的值均大于或等于它的根节点的值;
* 任意节点的左、右子树也分别为二叉查找树; 阅读全文
posted @ 2021-02-15 13:13
码农StayUp
阅读(609)
评论(0)
推荐(0)
摘要:
二叉树是一棵特殊的[树](https://blog.csdn.net/gozhuyinglong/article/details/110394480),其结构简单但很重要。二叉树的特点是每个节点最多有两棵子树,并且有左右之分。 阅读全文
posted @ 2021-02-15 13:11
码农StayUp
阅读(112)
评论(0)
推荐(0)
摘要:
树是一种非线性的数据结构,它包含n(n>=1)个节点,(n-1)条边的有穷集合。把它叫做“树”是因为它看起来像一个倒挂的树,也就是说它是根朝上,叶子朝下的。 阅读全文
posted @ 2021-02-15 13:09
码农StayUp
阅读(104)
评论(0)
推荐(0)
摘要:
队列和[栈](https://blog.csdn.net/gozhuyinglong/article/details/110149473)一样,也是一个操作受限制的线性表。不同的是队列的插入在一端进行,我们称为队尾(rear);而删除(取出)在另一端进行,我们称为队头(front)。
队列是一个先进先出(FIFO - First In First Out)的有序列表,其操作只有两种:
* 入队(enqueue):向队尾添加一个元素
* 出队(dequeue):从队头删除(取出)一个元素 阅读全文
posted @ 2021-02-15 12:48
码农StayUp
阅读(106)
评论(0)
推荐(0)
摘要:
栈又叫堆栈,是一种运算受限制的线性表,限定只能在一端进行插入和删除操作,该端称为栈顶(Top),相对的另一端叫栈底(Bottom)。
根据栈的定义可知,最先进入栈的元素在栈底,最后进入栈的元素在栈顶。而删除元素刚好相反,即删除顺序从栈顶到栈底
对栈的操作只有两种:
* 入栈(push):又叫进栈或压栈,即向栈插入一条新的元素,该元素为新的栈顶元素。
* 出栈(pop):又叫退栈,即从栈顶删除(取出)最后入栈的元素,而其相邻元素成为新的栈顶元素。 阅读全文
posted @ 2021-02-15 10:25
码农StayUp
阅读(237)
评论(0)
推荐(0)

浙公网安备 33010602011771号