二叉树遍历动画 - 前/中/后/层序可视化
构建或随机生成二叉树,逐步动画展示前序、中序、后序和层序遍历的路径。
UD5工具箱
前序遍历(Preorder):先访问根节点,再递归访问左子树,最后递归访问右子树。顺序为根→左→右。常用于复制树结构、生成前缀表达式。
中序遍历(Inorder):先递归访问左子树,再访问根节点,最后递归访问右子树。顺序为左→根→右。对于二叉搜索树(BST),中序遍历可得到有序序列。
后序遍历(Postorder):先递归访问左子树,再递归访问右子树,最后访问根节点。顺序为左→右→根。常用于删除树(先删子节点再删父节点)、生成后缀表达式。
三种遍历方式(前序、中序、后序)的时间复杂度均为 O(n),其中 n 是二叉树的节点总数。因为每个节点恰好被访问一次。
空间复杂度:递归实现为 O(h),其中 h 是树的高度(递归调用栈深度)。最坏情况(树退化为链表)为 O(n),最好情况(平衡二叉树)为 O(log n)。迭代实现使用显式栈,空间复杂度相同。
仅凭单一遍历序列无法唯一确定二叉树结构,需要两种遍历序列的组合:
深度优先遍历(DFS)包括前序、中序、后序遍历,使用栈(递归或显式栈)实现,沿着树的深度方向探索。
层序遍历(BFS)按层级从上到下、每层从左到右访问节点,使用队列实现,沿着树的宽度方向探索。
DFS更适合查找特定路径、树的序列化/反序列化;BFS更适合查找最短路径、按层级处理节点(如打印树形结构)。本工具专注于三种DFS遍历的可视化。
表达式树是一种特殊的二叉树,叶子节点存储操作数(数字/变量),内部节点存储运算符。
+ * 3 5 - 8 2,运算符在操作数前面。3 * 5 + 8 - 2(可能需要加括号保证优先级)。3 5 * 8 2 - +,运算符在操作数后面,计算机更容易计算。试试本工具的"表达式树"预设来直观理解!
构建或随机生成二叉树,逐步动画展示前序、中序、后序和层序遍历的路径。
选择算法并随机生成数组,以彩色条动画展示排序过程,帮助理解算法。
在单页内模拟MPA过渡效果,自定义进场/出场动画,体验View Transitions API丝滑切换。
输入ax^2+bx+c=0的系数,显示求解过程、判别式和根的性质。
设置皇后数量,逐步或自动展示回溯算法如何找到所有解,并高亮冲突位置。
定义字段名称和类型(姓名、邮箱、数字范围等),批量生成符合规则的 JSON 模拟数据。
待办项拖入四象限,并设置每个的提醒时间,自动排序今日。
控制迭代次数,生成越来越复杂的折线龙曲线分形图案。
输入方阵,使用拉普拉斯展开或行变换计算行列式的值,展示中间步骤。
在散点图上拖拽数据点,实时更新最小二乘回归线,显示斜率和截距。
在图像上点击,利用前端模型将点击范围内的主要物体自动从背景分离。
输入行与列的线索数字,自动求解逻辑绘图谜题并显示像素图。
输入一道和差或倍数应用题,用长度可调的条形图可视化题目关系,辅助求解。
输入代码并自动去除无意义空格,统计有效字符数,用于Code Golf比赛。
添加知识点,按艾宾浩斯曲线自动生成未来几周的复习日期提醒。
输入dy/dx表达式和初始条件,用欧拉法逐步求解并绘制近似积分曲线。
上传 GIF 动画,提取每一帧并拼接为单张精灵表图片,可设置排列方式,用于游戏开发。
生成非矩形、由内向外发散的圆形迷宫,支持打印用于幼儿专注力训练。
输入文字描述或符号(如K, P),生成编织花样预览图,方便织女试读图解。
将同类待办归入电话、外出、电脑等情境,一目了然优化执行顺序。
以JSON或可视化方式编写分支剧情,生成可在浏览器游玩的文字冒险游戏。
计算不同物体的排列数P(n,r),即从n个中取r个有序排列的方式数,辅助概率统计学习。
选择对称组类型(p6m, p4m 等),绘制基础形状并自动生成无限重复的几何图案。
粘贴代码自动进行语法高亮显示,支持主流编程语言,生成带行号的HTML代码块,方便嵌入博客。
编写海龟绘图规则和初始公理,迭代生成龙曲线、植物等分形图形。
模拟万花尺(Spirograph)绘制数学曲线,可调节内外圆半径和画笔位置,产出美丽图案。
交互式探索Julia集,实时调整复数参数c,支持平滑着色和鼠标缩放,感受分形之美。
展示一些常用内置HTML元素和自定义元素例子,提供代码复制。
输入多个地点线索,生成一系列二维码,每个扫码后显示下一条线索。
对简单混淆的JS进行格式化,并尝试将短变量名替换为更具描述性的名称,提高可读性。