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

综合性门户网站列举网站注册查询

综合性门户网站列举,网站注册查询,魔兽做宏网站,怎么建立以太网二叉树 又叫二叉排序树。 节点是数量为,,n为层数。 满二叉树:所有的叶子节点都在最后一层。 完全二叉树:如果所有叶子节点都在最后一层和倒数第二层,而且每个叶子节点都有左右子节点。 完全二叉树 前序遍历 1、先输…

二叉树

又叫二叉排序树。

节点是数量为,2^{n}-1,n为层数。

满二叉树:所有的叶子节点都在最后一层。

完全二叉树:如果所有叶子节点都在最后一层和倒数第二层,而且每个叶子节点都有左右子节点。

完全二叉树
完全二叉树

前序遍历

1、先输出当前节点(初始是root节点)。

2、如果左子节点不为空,则递归继续前序遍历。

3、如果右子节点不为空,则递归继续前序遍历。

class HeroNode {private int no;private String name;private HeroNode left, right;
}
    public HeroNode preOrderSearch(int no) {if (this.no == no) {return this;}HeroNode resNode;if (this.left != null) {resNode = this.left.preOrderSearch(no);if (resNode != null) {return resNode;}}if (this.right != null) {resNode = this.right.preOrderSearch(no);if (resNode != null) {return resNode;}}return null;}

中序遍历

1、如果当前节点的左子节点不为空,则递归中序遍历。

2、输出当前节点。

3、如果当前节点的右子节点不为空,则递归中序遍历。

    public HeroNode infixOrderSearch(int no) {HeroNode resNode;if (this.left != null) {resNode = this.left.infixOrderSearch(no);if (resNode != null) {return resNode;}}if (this.no == no) {return this;}if (this.right != null) {resNode = this.right.infixOrderSearch(no);if (resNode != null) {return resNode;}}return null;}

后序遍历

1、如果当前节点的左子节点不为空,则递归后序遍历。

2、如果当前节点的右子节点不为空,则递归后序遍历。

3、输出当前节点。

    public HeroNode postOrderSearch(int no) {HeroNode resNode;if (this.left != null) {resNode = this.left.postOrderSearch(no);if (resNode != null) {return resNode;}}if (this.right != null) {resNode = this.right.postOrderSearch(no);if (resNode != null) {return resNode;}}if (this.no == no) {return this;}return null;}

二叉树节点的删除,如果是中间节点,则整个中间节点都删除。

    public void delNode(int no) {if (this.no == no) {return;}if (this.left != null) {if (this.left.no == no) {this.left = null;} else {this.left.delNode(no);}}if (this.right != null) {if (this.right.no == no) {this.right = null;} else {this.right.delNode(no);}}}

顺序存储二叉树

顺序二叉树通常是完全二叉树。

第n(n是下标)个元素的左子节点为 2 * n + 1

第n个元素的右子节点为 2 * n + 2

第n个元素的父节点为 (n - 1) / 2

堆排序用到顺序存储二叉树的结构。

线索化二叉树

充分的利用到了叶子节点的空指针。

class HeroNode {private int no;private String name;private HeroNode left, right;private int leftType; // 0 指向的是左子树 1指向前驱节点private int rightType; // 0 指向的是右子树 1指向后继节点
}

 对线索二叉树进行中序线索化的方法

    public void threadedNodes(HeroNode node) {if (node == null) {return;}threadedNodes(node.getLeft()); // 先线索化左子树// 再线索化当前节点if (node.getLeft() == null) { // 前驱node.setLeft(pre);node.setLeftType(1);}if (pre != null && pre.getRight() == null) { // 后继pre.setRight(node);pre.setRightType(1);}pre = node;threadedNodes(node.getRight()); // 最后线索化右子树}

线索化二叉树的中序遍历

 class ThreadedBinaryTree {private HeroNode root;private HeroNode pre = null; // 指向前驱节点public void threadedList() {HeroNode node = root;while (node != null) {while (node.getLeftType() == 0) { // 到左下角node = node.getLeft();}System.out.println(node);while (node.getRightType() == 1) {node = node.getRight();System.out.println(node);}node = node.getRight();}}
}

平衡二叉树

又叫AVL树。

B树

B+树

B*树

http://www.yayakq.cn/news/404743/

相关文章:

  • 做国厂家的网站wordpress front-page.php
  • 网页游戏网站模压板网站怎么做页面解析跳转
  • 两学一做网站登录苏州室内设计学校
  • 创办网站公司wordpress萨隆
  • 做创意ppt网站南昌做网站的公司有哪些
  • 网站源码生成wordpress幻灯片教程视频教程
  • 拓之朴 做网站多少钱无锡做网站品牌公司
  • 怎么才可以做网站哈尔滨微网站建设公司哪家好
  • 常州市网站建设设计南通市城乡建设局网站
  • 滕州市建设网站营销网站 app开发
  • 自己做投票的网站绵阳网站建设企业
  • 上海大型网站建设公司有了域名怎么制作网站
  • 旅游网站技术流程图wordpress 数据库ip
  • 海尔网站推广策划方案如何建网站并做推广
  • 苏州网站网页设计中企动力z邮局登录电脑版
  • 域名网站建设dedecms中英文网站
  • 大淘客优惠券网站是怎么做的中小型教育网站的开发与建设
  • 如何写网站建设方案书网站数据统计
  • 可以网上做单的网站有哪些宿迁市区建设局网站
  • 网站开发面试题创建网站忘记了怎么办
  • 网站建设服务清单网页设计基础教程视频教程
  • c 做网站实例石家庄网站制作找谁
  • 免费企业自助建站成都最有名的设计公司
  • 专业的移动网站建设公wordpress 菜单 导出
  • 简单网站建设推荐网站搜索条怎么做
  • 能绑定域名的免费网站做室内装修的网站
  • 专做和田玉的网站网站建设费用5万入账
  • 有固定ip自己做网站营销型外贸网站建设软件
  • 给前端做网站的图片叫什么软件开发工程师简历范文
  • 当建设部门网站做跨境电商的网站