实现树的中序遍历,无需递归且不使用栈!
本文概述 C++ Java Python 3 C# 使用Morris遍历,我们无需使用栈和递归就可以遍历树。Morris遍历的思想是基于线程二叉树的。在这个遍历过程中,我们首先创建到Inorder继承者的链接,并使用这些链接打印数据,最后恢...
本文概述 C++ Java Python 3 C# 使用Morris遍历,我们无需使用栈和递归就可以遍历树。Morris遍历的思想是基于线程二叉树的。在这个遍历过程中,我们首先创建到Inorder继承者的链接,并使用这些链接打印数据,最后恢...
存在于java.util打包并扩展采集界面用于按FIFO(先进先出)顺序保存要处理的元素。它是对象的有序列表, 其使用仅限于在列表末尾插入元素, 并从列表的开头删除元素(即, 它遵循FIFO或先进先出原则)。 作为接口, 队列需要一个具体的...
本文概述 CPP C ++ Java C# C ++ 给定数字n, 我们必须找到第n个数字, 使得它的数字仅包含0、1、2、3、4或5。 例子 : 推荐:请在” 实践 首先, 在继续解决方案之前。 我们首先将0、1、2、3、4、...
集合标准化了程序处理对象的方式。换句话说, 它包含一组类以通用方式包含元素。借助集合, 用户可以对对象执行多种操作, 如存储, 更新, 删除, 检索, 搜索, 排序等。 C#将collection划分为几个类, 一些常见的类如下所示: Sy...
下面列出了最常见的链接列表面试问题和答案。 1)简要说明链接列表。 链表可以定义为可以存储项目集合的线性数据结构。以另一种方式, 可以利用链接列表来存储相似类型的各种对象。列表中的每个元素或单元都表示为一个节点。每个节点都包含其数据和下一个...
本文概述 基本术语 树的静态表示 树的动态表示 树的类型 普通树 森林 二叉树 二进制搜索树 表达树 比赛树 树是一种递归数据结构, 包含一个或多个数据节点的集合, 其中一个节点被指定为树的根, 而其余节点被称为根的子级。 除根节点以外的其...
本文概述 技术 复杂 Tim-sort是一种从插入排序和合并排序派生的排序算法。它旨在以最佳方式对不同种类的现实世界数据执行。这是一种自适应排序算法, 需要O(n log n)比较才能对n个元素的数组进行排序。它是由Tim Peters在2...
本文概述 最小生成树 最短路径算法 生成树可以定义为连接的无向图G的子图, 该图是通过从图中删除所需数量的边而生成的树。换句话说, 生成树是将所有顶点连接在一起的连通图和无向图G的非循环子图。图G可以具有多个生成树。 最小生成树 加权图中可...
本文概述 链表的用途 为什么要在数组上使用链表? 单链表或单向链 复杂 单链表上的操作 C中的链接列表:菜单驱动程序 链接列表可以定义为随机存储在内存中的称为节点的对象的集合。 节点包含两个字段, 即存储在该特定地址的数据和包含存储器中下一...
本文概述 复杂 算法 C程序 Java程序 C#程序 壳排序是插入排序的一般化, 它通过比较由多个位置的间隙分隔的元素来克服插入排序的缺点。通常, Shell sort执行以下步骤。 步骤1:以表格形式排列元素, 并使用插入排序对列进行排序...