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

网站建设需要资质么做百度推广一个月多少钱

网站建设需要资质么,做百度推广一个月多少钱,网站名称需要注册吗,毕业设计 做网站文章目录一、二叉树定义、分类二、二叉树的存储结构三、创建二叉树四、遍历方式一、二叉树定义、分类 二叉树:是N个结点的有序集合,该集合或者为空集,或者由一个根节点跟两棵互不相交的、分别称为根节点的左子树或者右子树的二叉树组成。每个…

文章目录

  • 一、二叉树定义、分类
  • 二、二叉树的存储结构
  • 三、创建二叉树
  • 四、遍历方式

一、二叉树定义、分类

  1. 二叉树:是N个结点的有序集合,该集合或者为空集,或者由一个根节点跟两棵互不相交的、分别称为根节点的左子树或者右子树的二叉树组成。每个结点最多有两个子树。左子树跟右子树是有序的。
  2. 满二叉树:二叉树深度为k (k≥1)时,第k层有2^(k-1)个节点,二叉树总共有 。
  3. 完全二叉树:只有最下面两层有度数小于2的节点,且最下面一层的叶节点集中在最左边的若干位置上。具有n个节点的完全二叉树的深度为: (log2n)+1 或 log2(n+1)

二叉树的特点:

  • 在k层中的最大节点个数为 2^(k-1);
  • 层数为k的树的最大节点个数为 2^k - 1;
  • 叶节点的个数比度数为2的节点的个数要多1个: n0 = n2+1
  • 总节点数为各类节点之和:n=no+n1+n2
  • 总节点数为所有子节点数加一: n= n + 2*n2+ 1 故得: no=n2+1

二、二叉树的存储结构

以二叉链表存储为例
在这里插入图片描述

结构:

public class BinaryNode {//左节点public BinaryNode left;//数据域public int data;//右节点public BinaryNode right;public BinaryNode() {}public BinaryNode(int data) {this.data = data;}
}

三、创建二叉树

思路:相当于插入一系列值到空二叉树中,插入规则为

  1. 当前值如果小于当下节点值:left非空则直接把值放入left,否则把left当成当下节点 继续递归。
  2. 当前值如果大于当下节点值:right非空则直接把值放入right,否则把right当成当下节点 继续递归。
public class BinaryTree<V> {//根节点,默认为nullprivate BinaryNode root = null;/*** 描述: 构建二叉树* Node:节点,* data:待插入的数据*/private void buildBinaryTree(BinaryNode node, int data) {if (root == null) {root = new BinaryNode(data);return;}//根节点不为空,那么判断数据是否小于当前节点的数据if (data < node.data) {//如果小于,判断当前节点是否有左叶子节点if (node.left == null) {//左叶子节点为空,设置左叶子节点,并且设置数据node.left = new BinaryNode(data);} else {//左叶子节点不为空,递归调用构建二叉树的函数this.buildBinaryTree(node.left, data);}} else {//如果大于或等于,判断当前节点是否存在右叶子节点if (node.right == null) {//右叶子节点为空,设置右叶子节点,并且设置数据域node.right = new BinaryNode(data);} else {//右叶子节点点不为空,递归调用构建二叉树的函数this.buildBinaryTree(node.right, data);}}}/*** 前序遍历*/public void preOrder(BinaryNode node) {System.out.println(node.data);if (node.left != null) {this.midOrder(node.left);}if (node.right != null) {this.midOrder(node.right);}}/*** 中序遍历* */public void midOrder(BinaryNode node) {if (node.left != null) {this.midOrder(node.left);}System.out.println(node.data);if (node.right != null) {this.midOrder(node.right);}}/*** 后序遍历*/public void afterOrder(BinaryNode node) {if (node.left != null) {this.midOrder(node.left);}if (node.right != null) {this.midOrder(node.right);}System.out.println(node.data);}public static BinaryTree createBinaryTree(int[] datas) {BinaryTree binaryTree = new BinaryTree();for (int data : datas) {binaryTree.buildBinaryTree(binaryTree.root, data);}return binaryTree;}/*** 描述: 创建二叉树函数* int[] 是个int类型的数组* 通过循环调用,往二叉树插入数据*/public static void main(String[] arg) {int[] datas = new int[]{1, 9, 8, 2, 10};//构建二叉树BinaryTree binaryTree = createBinaryTree(datas);//前序遍历System.out.println("前序遍历");binaryTree.preOrder(binaryTree.root);//中序遍历System.out.println("中序遍历");binaryTree.midOrder(binaryTree.root);//后续遍历System.out.println("后序遍历");binaryTree.afterOrder(binaryTree.root);}
}

四、遍历方式

总结:通过看父节点的输出先后顺序,就可以判断是什么遍历方式。

分为三种遍历:

  1. 前序遍历:先输出父节点, 再遍历左子树和右子树。
  2. 中序遍历:先遍历左子树, 再输出父节点, 再遍历右子树。
  3. 后序遍历:先遍历左子树, 再遍历右子树, 最后输出父节点。
    在这里插入图片描述
http://www.tj-hxxt.cn/news/93682.html

相关文章:

  • 深圳网站制作公司嘉兴百度seo规则最新
  • 做外贸网站需要注意些什么手续深圳关键词推广
  • 做阿里巴巴网站没有专业客服吧优化设计方案
  • 福州公交集团网站建设每日新闻简报
  • 自己做网站排名好吗汕头网站优化
  • 网站做扫一扫百度下载安装到桌面上
  • 网站开发的简易步骤成品短视频网站源码搭建
  • 购物网站的建设意义seo免费软件
  • 高档网站建设东莞寮步最新通知
  • 物流网站建设策划书的总结网页制作软件dreamweaver
  • 有没有专业做网站架构图的软件广东seo
  • 网站开发人员职位描述2021百度模拟点击工具
  • 做图客网站深圳seo优化外包
  • html做的小网站山东seo费用多少
  • 艺术类网站模板江苏搜索引擎优化
  • 广州小型网站建设公司搜狗推广登陆
  • 基于工作过程的商务网站建设 网页制作网站关键词优化代理
  • 石家庄网站做网站全国疫情防控最新数据
  • 北海做网站网站建设业务多平台怎么样
  • 佛山新网站制作咨询新东方线下培训机构官网
  • 东莞销售网站设计网页设计与制作考试试题及答案
  • 淮安制作网站在那里百度网页排名怎么提升
  • 制作音乐的软件app东莞百度快速排名优化
  • 网站开发公司需要那些硬件设备网站首页制作网站
  • 日租酒店公寓网站怎么做重庆seo教程搜索引擎优化
  • 做网站 哪些公司网站排名查询站长之家
  • 微信网站可以免费做么旺道seo
  • php网页开发佛山seo教程
  • 哪里建设网站最好用足球直播在线直播观看免费cctv5
  • 做展示网站步骤微信营销平台哪个好