1. 概论 前面说到了图这种非线性的数据结构,并且我使用了代码,简单演示了图是如何实现的。今天就来看看基于图的两种搜索算法,分别是广度优先搜索和深度优先搜索算法,这两个算法都十分的常见,在平常的面试当中也可能遇到。 在图上面的搜索算法,其实主要的表现形式就是从图中的一个顶点,找到和另一个顶点之间的路径...
public class BinaryTreeNode { private Object date;//数据域 private BinaryTreeNode Parent;//父节点指针域 private BinaryTreeNode LChild;//左孩子指针域 private BinaryTreeNode RChild;//右孩子指针域 private int height ;//以当前节点为根节点的二叉树的高度 private int size;//以当前节点为根节点为二叉...
7.6 线索二叉树《数据结构与算法(Java版)》学习 5-30 7.6.1 线索二叉树的定义 对于n个结点的二叉树,在二叉链存储结构中有n+1个空链域。 利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继结点的引用,这些引用称为线索,加上线索的二叉树称为线索二叉树。 线索二叉树分为先序、中序和后序线索二叉...
3. 二叉搜索树的插入 插入操作和查找其实比较的类似,都是需要拿插入的数据和树中的数据进行比较,如果插入的数据大于树节点数据,并且节点的右子树为空,则直接插入到右子树,否则继续在右子树中递归查找位置;如果插入的数据小于树节点数据,并且节点的左子树为空,则直接插入到左子树,否则继续在左子树中递归查找位置。 ...
引言欢迎来到《算法与数据结构:Java开发者的探索之旅》一个专为Java程序员设计的综合学习平台。无论您是初涉编程世界的新手,还是经验丰富的行业专家,这里都有您需要的知识和资源。通过本专栏,我们将共同探索算…
前面已经说完了几种非线性排序,它们分别是时间复杂度为 O(n2) 、适合小规模数据的冒泡排序、选择排序、插入排序,和应用较广泛的时间复杂度为 O(nlogn) 的希尔排序、归并排序、快速排序。其实这几种排序都有一个特性,那就是它们都是基于数据的比较和移动,而今天介绍的这几种线性排序,他们的时间复杂度都是 O(...
数据结构与算法——跳表 1. 概述 前面说到了二分查找,并且它是基于顺序表结构的,即数组,如果直接用于链表,时间复杂度会比较的高,是 O(logn),一般我们不会这样做。那么有没有基于链表的二分查找呢?答案就是今天说到的跳跃链表。 2. 跳表长什么样子?
数据结构与算法——跳表 引用和评论 0条评论 得票最新 评论支持部分 Markdown 语法:**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。 注册登录 获取验证码 新手机号将自动注册 登录 微信登录免密码登录密码登录 ...