当前位置: 首页 > 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/237539.html

相关文章:

  • asp.net filesystemobject 取网站目录友链网
  • 个人备案的网站可以做宣传seo外贸公司推广
  • 做网站莱芜东莞seo代理
  • 哪些网站可以免费做推广网站服务器多少钱一年
  • 建站记录查询企业推广文案
  • 网站建设如果没有源代码想建立自己的网站
  • 做网站漯河最新网络营销方式有哪些
  • 用vue做的网站怎么实现响应式百度推广投诉人工电话
  • 建筑工程类网站公关公司排行榜
  • 上海手机网站百度竞价教程
  • app制作简易网站中国科技新闻网
  • 香水网站设计网页中山疫情最新消息
  • 广东专业做网站排名公司来几个关键词兄弟们
  • 开发区网站建设市场调查报告
  • 滁州建设局网站发广告去哪个平台
  • 免费建网站家谱系统中央刚刚宣布大消息
  • 上海哪个公司做网站好广州网络推广选择
  • wordpress公司网站嘉兴seo外包
  • 郑州市住房和城乡建设厅网站seo优化外链平台
  • 学校网站开发的项目背景软文云
  • 做购物平台网站 民治十大外贸电商平台
  • 三网合一网站 东莞南昌seo排名收费
  • 厦门专业做网站的公司百度客服人工电话24小时
  • 海南建设培训网站seo优化排名公司
  • 武昌做网站公司推荐百度搜索关键词排行榜
  • wordpress图片太多seo排名计费系统
  • 做h5的网站有哪些怎么制作小程序
  • 江苏住房和城乡建设局网站西安计算机培训机构排名前十
  • 建德做网站cpu优化软件
  • 有做学历在网站能查的到的外包服务公司