当前位置: 首页 > wzjs >正文

做网站 好苦逼广东省广州市佛山市

做网站 好苦逼,广东省广州市佛山市,手机网站模版,红盾网官网入口目录 1. 节点结构 1.1.值(val) 1.2.左右孩子节点 2.本质 3.类型 4.遍历方式 树是一种递归的数据结构。具有一个根节点和多个子节点,形成邻接关系,每个节点可以有零个或多个子节点。 树的定义是递归的,由根节点的…

目录

1. 节点结构

1.1.值(val)

1.2.左右孩子节点

2.本质

3.类型

4.遍历方式


        树是一种递归的数据结构。具有一个根节点和多个子节点,形成邻接关系,每个节点可以有零个或多个子节点。

        树的定义是递归的,由根节点的其他若干个互不相交的子树组成。每个子树,又是如此的定义,所以是递归的。因此,关于树的算法也常用递归算法。


1. 节点结构

对于二叉树来说。

1.1.值(val)

        每个节点都有一个值(在这里是 int val),它可以存储节点所代表的数据。

        比如在一个二叉搜索树(Binary Search Tree)中,这个值可以用来进行查找、插入和删除操作。

1.2.左右孩子节点

        每个节点都有两个指针(或引用),分别指向左子节点和右子节点(TreeNode left; TreeNode right;)。这就是树的结构:一个节点可以有零个(在叶子节点的情况下)、一个或两个子节点。


2.本质

        树是一种递归的数据结构。即一个树的每个节点都可以看作是一个树的根节点,它的子节点又是另一个树的根。所以,TreeNode 类可以嵌套使用,以形成一棵完整的树。


3.类型

TreeNode 类可以用来表示不同类型的树:

  • 二叉树: 每个节点最多有两个子节点(左、右)。
  • 二叉搜索树: 按照特定的规则组织节点,左子节点值小于根节点,右子节点值大于根节点。
  • N-叉树: 只需扩展 TreeNode 类,允许一个节点有多个子节点(如使用一个列表来存储多个子节点)。
  • 满二叉树


4.遍历方式

1.前序遍历(Pre-order Traversal):

在前序遍历中,根节点是在访问过程中最先被访问的。访问顺序为:

  • 先访问根节点
  • 然后递归遍历左子树
  • 最后递归遍历右子树

顺序: 根 → 左 → 右

2.中序遍历(In-order Traversal): 遍历左子树,访问根节点,然后遍历右子树。

在中序遍历中,根节点是在访问过程中被后期访问的。访问顺序为:

  • 先递归遍历左子树
  • 然后访问根节点
  • 最后递归遍历右子树

顺序: 左 → 根 → 右

3.后序遍历(Post-order Traversal): 遍历左子树,遍历右子树,然后访问根节点。

在后序遍历中,根节点是在访问过程中最后被访问的。访问顺序为:

  • 先递归遍历左子树
  • 然后递归遍历右子树
  • 最后访问根节点

顺序: 左 → 右 → 根

4.层序遍历(Level-order Traversal): 按照树的层次结构从上到下逐层遍历节点。

import java.util.LinkedList;
import java.util.Queue;class TreeNode {private int val;         // 节点的值TreeNode left;          // 左子节点TreeNode right;         // 右子节点public TreeNode(int val) {this.val = val;this.left = null;   // 初始化左子节点this.right = null;  // 初始化右子节点}public int getVal() {return val;}
}public class BinaryTree {public static void main(String[] args) {// 创建树的节点TreeNode root = new TreeNode(1); // 创建根节点root.left = new TreeNode(2);      // 创建左子节点root.right = new TreeNode(3);     // 创建右子节点root.left.left = new TreeNode(4); // 创建左子节点的左子节点root.left.right = new TreeNode(5);// 创建左子节点的右子节点// 遍历整棵树System.out.println("前序遍历:");preOrderTraversal(root); // 先序遍历System.out.println("\n中序遍历:");inOrderTraversal(root); // 中序遍历System.out.println("\n后序遍历:");postOrderTraversal(root); // 后序遍历System.out.println("\n层序遍历:");levelOrderTraversal(root); // 层次遍历}// 前序遍历public static void preOrderTraversal(TreeNode node) {if (node != null) {System.out.print(node.getVal() + " ");preOrderTraversal(node.left);preOrderTraversal(node.right);}}// 中序遍历public static void inOrderTraversal(TreeNode node) {if (node != null) {inOrderTraversal(node.left);System.out.print(node.getVal() + " ");inOrderTraversal(node.right);}}// 后序遍历public static void postOrderTraversal(TreeNode node) {if (node != null) {postOrderTraversal(node.left);postOrderTraversal(node.right);System.out.print(node.getVal() + " ");}}// 层序遍历public static void levelOrderTraversal(TreeNode root) {if (root == null) return;Queue<TreeNode> queue = new LinkedList<>();queue.add(root);while (!queue.isEmpty()) {TreeNode node = queue.poll();System.out.print(node.getVal() + " ");if (node.left != null) queue.add(node.left);if (node.right != null) queue.add(node.right);}}
}

树的示意图

上面的例子中构建的二叉树结构如下所示:

       1/ \2   3/ \ / \4  5 6  7
遍历结果
前序遍历: 1 2 4 5 3 6 7
中序遍历: 4 2 5 1 6 3 7
后序遍历: 4 5 2 6 7 3 1
层序遍历: 1 2 3 4 5 6 7

总结

        树被称为“平衡”的通常是指在进行插入和删除操作后,树的高度保持在一个小的范围内,以确保在最坏情况下仍然能够保持高效的搜索、插入和删除操作。

        一些常见的自平衡树包括红黑树、AVL树等。

通常情况下:

        如果树结构变得不平衡,树会通过重新调整(旋转)来恢复平衡,而不是回滚到链表结构。


参考:

1、树的4种遍历_树的前序遍历-CSDN博客

http://www.dtcms.com/wzjs/8249.html

相关文章:

  • 网站建设交流群黄页88网站推广方案
  • wordpress postline搜索引擎优化结果
  • 深圳做网站建设开发济南网站优化排名推广
  • js做的携程网站关键词指数
  • 阿里云服务器搭网站同时做网盘semester是什么意思
  • 手机网站分页今天合肥刚刚发生的重大新闻
  • 网络广告系统网站优化有哪些类型
  • 哪个网站可以接广告做seo人才网
  • 网站建设项目结构分析报告天津seo排名扣费
  • txt做网站如何加图片怎样优化标题关键词
  • 网站建设的目的和目标杭州seo排名
  • 网站国内服务器租用简述seo和sem的区别
  • 做英文题的网站营销方案怎么写模板
  • 装修公司怎么做免费网站网站优化是做什么的
  • 医院网站建设 价格知乎推广渠道
  • 中山网站建设文化机构建网站设计
  • 企业门户网址百度seo优化技术
  • 青岛上市公司网站建设google seo怎么优化
  • asp.net网站制作教程今日头条(官方版本)
  • 做网站怎么防止被黑有哪些搜索引擎网站
  • 网络推广具体方式有哪些seo优化裤子关键词
  • 做网站的编程语言组合nba今日数据
  • 日本做暖视频在线观看网站店铺引流的30种方法
  • 西安公司网站建设哪家专业百度统计登录
  • 做网站学PHP还是Java网站 推广
  • 丰都集团网站建设可以免费推广的平台
  • 发卡网站搭建买卖网站
  • 想把自己做的网站放到网上免费域名的网站
  • 如何在百度上做公司网站企业建站免费模板
  • 网站关键词google优化怎么做seo运营培训