049050数据结构及算法的Java实现二叉树.pptVIP

  • 2
  • 0
  • 约1.8千字
  • 约 44页
  • 2017-04-27 发布于四川
  • 举报

049050数据结构及算法的Java实现二叉树.ppt

049050数据结构及算法的Java实现二叉树

《Java高级程序设计》 专业教程 理论讲解部分 Ver 3.1;课程概述;二叉树综合了有序数组与链表得优点.;1;二叉树或者是一棵 空树 ,或者是一棵由一个 根结 点和两棵互不相交的分别称根的 左子树 和 右子树 所组成的 非空树 ,左子树和右子树又同样都是一棵二叉树. 右图为一棵二叉树;路径:;根:;1;1;实现二叉树首先就要实现它的结点.;当我们拥有了结点以后,就可以着手创建我们的树了.;二叉树的初始化非常的简单.只需要有个根就可以了,而且树是空的.所以甚至连根的初始化都可以省略.; 二叉树的插入是保证起有序性的重要环节.如果随意的插入则无法保证其有序性.;10;10;10;private void insertNode( Node subtreeRoot,Node newNode){ Node current = subtreeRoot; while(true){ if(newNode.keycurrent.key){ if(current.left == null){ current.left = newNode; return; }else{ current = current.left; } }else{ if(current.right == null){ current.right = newNode; return; }else{ current = current.right; }}}};此时,我们可以通过使用结点Node来建立一棵树.;10;10;10;private Node getNode(int key) throws Exception{ Node result = root; while(result.key != key){ if(key result.key){ result = result.left; }else{ result = result.right; } if(result == null){ throw new Exception(Cant find value by +key); } } return result; };树的结点删除的操作相对繁琐一些.;10;10;10;10;10;10;10;10;10;10;10;10;public void delete(int key) throws Exception{ Node current = root; Node parent = null; while(current.key != key){ parent = current; if(key current.key){current = current.left; }else{current = current.right;} if(current == null){ throw new Exception( delete:Cant find value by +key); } } if(parent.left == current){ parent.left = current.left; insertNode(parent,current.right); current = null; }else{ parent.right = current.right; insertNode(parent,current.left); current = null; } };二叉树的遍历分为:前序遍历 中序遍历 后序遍历.;这里主要介绍一下前序遍历的递归方法.其余遍历类似.;这里主要介绍一下前序遍历的递归方法.其余遍历类似.;本课小结;小测验;小测验答案;小测验答案;课后作业

文档评论(0)

1亿VIP精品文档

相关文档