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

有什么做设计接任务的网站软文写作要求

有什么做设计接任务的网站,软文写作要求,开发一个手机app成本费用,WordPress的light一、二叉树的链式存储 二叉树的存储分为顺序存储和链式存储 (本文主要讲解链式存储) 二叉树的链式存储是通过一个一个节点引用起来的,常见的表示方式有二叉三叉 // 孩子表示法 class Node { int val; // 数据域 Node left; // 左孩子的引用…

一、二叉树的链式存储

二叉树的存储分为顺序存储链式存储

(本文主要讲解链式存储)

二叉树的链式存储是通过一个一个节点引用起来的,常见的表示方式有二叉三叉

// 孩子表示法

class Node {

   int val; // 数据域

   Node left; // 左孩子的引用,常常代表左孩子为根的整棵左子树

   Node right; // 右孩子的引用,常常代表右孩子为根的整棵右子树

}

// 孩子双亲表示法

class Node {

   int val; // 数据域

   Node left; // 左孩子的引用,常常代表左孩子为根的整棵左子树

   Node right; // 右孩子的引用,常常代表右孩子为根的整棵右子树  

   Node parent;    // 当前节点的根节点

}

孩子双亲表示法在后续介绍,本文采用孩子表示法来构建二叉树

二、二叉树的遍历

前序遍历:根  左  右

中序遍历:左  根  右

后序遍历:左  右  根

层序遍历:从上到下  从左到右  依次遍历

所有的遍历都是沿着某条路线进行的

上图二叉树的各遍历分别是:

前序:A B D C E F

中序:D B A E C F

后序:D B E F C A

层序:A B C D E F 

例题:

1.某完全二叉树层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为()

A: ABDHECFG   B: ABCDEFGH   C: HDBEAFCG   D: HDEBFGCA

题解:

前序:ABDHECFG

2.二叉树的前序遍历和中序遍历如下:前序遍历:EFHIGJK;中序遍历:HFIEJKG.则二叉树根结点为()

A: E           B: F           C: G           D: H

题解:

后序遍历:H I F K J G E

3.设一课二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树前序遍历序列为()

A: adbce       B: decab       C: debac       D: abcde

题解:

前序遍历:a  b  c  d  e  

4.某二叉树的后序遍历序列与中序遍历序列相同,均为 ABCDEF ,则按层次输出(同一层从左到右)的序列为()

A: FEDCBA     B: CBAFED     C: DEFCBA     D: ABCDEF

题解:

根据前几道题目的方法能画出二叉树:

层序遍历:F E D C B A 

注意:根据前序和后序不能创建二叉树,只能确定根的位置,无法确定左右子树的位置

三、二叉树的基本操作与图解


public class MyBinaryTree {static class TreeNode{public char val;public TreeNode left;public TreeNode right;public TreeNode(char val){this.val = val;}}public TreeNode createTree(){TreeNode A = new TreeNode('A');TreeNode B = new TreeNode('B');TreeNode C = new TreeNode('C');TreeNode D = new TreeNode('D');TreeNode E = new TreeNode('E');TreeNode F = new TreeNode('F');TreeNode G = new TreeNode('G');TreeNode H = new TreeNode('H');A.left = B;A.right = C;B.left = D;B.right = E;C.left = F;C.right = G;E.right = H;return A;//根节点}// 前序遍历void preOrder(TreeNode root){if(root == null){return;}System.out.print(root.val+" ");preOrder(root.left);preOrder(root.right);}//中序遍历void inOrder(TreeNode root){if(root == null){return;}inOrder(root.left);System.out.print(root.val+" ");inOrder(root.right);}//后序遍历void postOrder(TreeNode root){if(root == null){return;}postOrder(root.left);postOrder(root.right);System.out.print(root.val+" ");}//节点个数public int size(TreeNode root){if(root==null){return 0;}int ret = size(root.left)+size(root.right)+1;return ret;//子问题思路}public int nodeSize;public void size2(TreeNode root){if(root==null){return ;}nodeSize++;size2(root.left);size2(root.right);}//整棵树的叶子节点个数public int getLeafNodeCount(TreeNode root){if(root==null){return 0;}//左子树的叶子节点+右子树的叶子节点就是整棵树的叶子if(root.left==null&&root.right==null){return 1;}return getLeafNodeCount(root.left)+getLeafNodeCount(root.right);}//遍历思路public int leafSize;public void getLeafNodeCount2(TreeNode root){if(root==null){return ;}//左子树的叶子节点+右子树的叶子节点就是整棵树的叶子if(root.left==null&&root.right==null){leafSize++;}getLeafNodeCount2(root.left);getLeafNodeCount2(root.right);}// 获取第K层节点的个数int getKLevelNodeCount(TreeNode root,int k){if(root==null){return 0;}if(k==1){return 1;}return getKLevelNodeCount(root.left,k-1)+getKLevelNodeCount(root.right,k-1);}// 获取二叉树的高度int getHeight(TreeNode root){if(root==null){return 0;}//整棵树的高度=左树高度和右树高度的最大值+1int leftHeight = getHeight(root.left);int rightHeight = getHeight(root.right);return leftHeight > rightHeight ? leftHeight+1 : rightHeight+1;}// 检测值为value的元素是否存在TreeNode find(TreeNode root, int val){if(root==null){return null;}if(root.val==val){return root;}TreeNode ret = find(root.left,val);if(ret !=null){return root;}ret = find(root.right,val);if(ret !=null){return root;}return null;}
}

递归遍历代码讲解:以前序遍历为例

 求节点个数代码图解:

获取k层节点的个数图解:

 获取二叉树的高度图解:

 

检测为value的值是否存在图解:

http://www.khdw.cn/news/56489.html

相关文章:

  • 天津专门做企业网站公司cpa推广平台
  • 网站栏目设计东莞免费建站公司
  • 视频网站设计企业营销型网站
  • 专业的网站建设科技公司seo网络推广报价
  • 3 阐述网站建设的步骤过程 9分如何利用seo赚钱
  • 做网站系统具体步骤seo就业指导
  • 宜昌市住房和城乡建设局网站发稿吧
  • 郑州网站优化外包顾问谷歌seo运营
  • 饰品网站建设今日头条新闻最全新消息
  • 荆州网站开发新闻株洲最新
  • 建设银行公积金预约网站网店运营推广方案
  • 高新区规划建设局网站seo诊断
  • 所得税汇算清缴在哪个网站做实时热点新闻事件
  • 如何做网站卡密深圳网站做优化哪家公司好
  • 手机怎样做网站图解公司想做个网站怎么办
  • 织梦软件怎么使用域名做网站厦门网络关键词排名
  • 用dw做购物网站百度一下官方下载安装
  • 腾讯云网站备案流程网络营销师怎么考
  • 连锁餐饮网站开发背景内容河南seo网站多少钱
  • 接到了给政府做网站腾讯营销平台
  • 嘉兴网站推广营销策略4p
  • 返利网网站框架目录长沙网站seo收费
  • 沈阳网站建设策划网站推广优化招聘
  • 空包网站怎么做的网站seo策划方案
  • 北京外包公司 网站开发谷歌seo招聘
  • 网站内页是什么意思seo工资
  • 合肥设计网站公司通州优化公司
  • 手机网站建设制作教程视频南宁seo渠道哪家好
  • wordpress 在线报名系统深圳seo外包
  • 网站源码偷取工具郑州seo外包