数据结构
XDWX
逆水行舟,不进则退。
展开
-
快慢指针【转载】
文章目录1 快慢指针2 如何快速找出未知长度单链表的中间节点?3 如何快速检测单链表是否存在循环?1 快慢指针概念:所谓快慢指针中的快慢指的是指针向前移动的步长,每次移动的步长较大即为快,步长较小即为慢,常用的快慢指针一般是在单链表中让快指针每次向前移动2,慢指针则每次向前移动1。应用:提高查找性能性能2 如何快速找出未知长度单链表的中间节点?普通方法:先遍历一遍单链表确定其长度L后,再从头节点出发循环L/2次即可查找到单链表的中间节点。该问题如果采用普通的方法虽然简单,但是查找效率太低。快慢指转载 2020-05-31 20:15:34 · 318 阅读 · 0 评论 -
N皇后问题位运算符解法【转载】
1 问题在 n×n 格的棋盘上放置彼此不受攻击的n 个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n×n格的棋盘上放置n个皇后,任何 2 个皇后不放在同一行或同一列或同一斜线上。 设计一个解n 后问题的队列式分支限界法,计算在n× n个方格上放置彼此不受攻击的n个皇后的一个放置方案。输入:共有若干行,每行一个正整数 N≤20,表示棋盘和皇后...转载 2020-04-19 23:06:53 · 369 阅读 · 0 评论 -
二分查找原理非递归与递归实现【转载】
二分查找实现查找指定数值在元素有序的数组中存储的位置(索引),返回该位置(索引)。解题步骤:定义3个用来记录索引值的变量,变量min记录当前范围最小索引值,初始值为0;变量max记录当前范围最大索引值,初始值为数组长度-1;变量mid记录当前当前范围最中间元素的索引值,初始值为(min+max) / 2。使用循环,判断当前范围下,最中间元素值与指定查找的数值是否相等: &n...转载 2020-04-18 17:51:26 · 189 阅读 · 0 评论 -
重建二叉树【转载】
二叉树遍历方式:前序遍历【根左右】;中序遍历【左根右】;后续遍历【左右根】;重建二叉树:前序+中序;2. 中序+后续;3.前序+后续;注意: 第3种情况无法重建惟一二叉树的,因为无法知道结点是属于左子树还是右子树;此文以中序与后续遍历结果为例——重建二叉树。如图,例子来说明。知道中序和后序遍历,画二叉树和写出前序遍历。从后序遍历知道,最后一个必然是根节点,因此A是根。再...转载 2020-04-15 15:40:00 · 345 阅读 · 0 评论 -
数据结构分类概述【转载】
文章目录数据结构类别1 数组2 栈3 队列4 链表5 树6 散列表7 堆8 图数据结构类别数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示:每一种数据结构都有着独特的数据存储方式,下面将对其进行介绍。1 数组数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续...转载 2020-04-14 22:05:36 · 134 阅读 · 0 评论 -
B树与B+树【转载】
如果前面的2-3树与2-3-4树理解了,B树也就理解了,因为2-3树就是3阶的B树,2-3-4树就是4阶的B树。所以,对于B树的性质,根据2-3-4树都可以推导出来了,即,一颗m阶的B树(B-tree) 定义如下:(1)每个节点最多有 m-1 个key;(2)根节点至少有1个key;(3)非根节点至少有 Math.ceil(m/2)-1 个key;(4)每个节点中的key都按照从小到大的...转载 2020-04-14 11:00:07 · 338 阅读 · 0 评论 -
红黑树【转载】
红黑树红黑树可以算是树状结构中的“明星”了,应该计算机专业都听过红黑树这个专业名词,而且红黑树的应用也很广泛,比方说, java 集合中的 TreeSet 和 TreeMap ,以及 jdk8 的 HashMap 链表长度超过7之后会转成红黑树等等。但实际上红黑树却很复杂,他并不是像前面讲过的树一样是棵平衡树,即红黑树并没有定义从根节点到叶子节点的长度一致或高度差为1,然而他却能保证树大致上是平...转载 2020-04-14 10:28:15 · 160 阅读 · 0 评论 -
2-3树与2-3-4树【转载】
2-3树2-3树是一棵自平衡的多路查找树,它并不是一棵二叉树,具有如下性质:(1)每个节点有1个或2个key,对应的子节点为2个子节点或3个子节点;(2)所有叶子节点到根节点的长度一致;(3)每个节点的key从左到右保持了从小到大的顺序,两个key之间的子树中所有的key一定大于它的父节点的左key,小于父节点的右key,如22<45<50。为什么会有2-3树这种数据结构呢...转载 2020-04-13 22:46:04 · 464 阅读 · 0 评论 -
二叉查找树与平衡二叉树【转载】
二叉查找树二叉查找树,也称二叉搜索树,或二叉排序树。其定义也比较简单,要么是一颗空树,要么就是具有如下性质的二叉树:(1) 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2) 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3) 任意节点的左、右子树也分别为二叉查找树;(4) 没有键值相等的节点。如上图所示,是不同形态的二叉查找树。二叉查...转载 2020-04-13 21:28:26 · 202 阅读 · 0 评论