黑马程序员技术交流社区

标题: java二叉树 [打印本页]

作者: 韩冬    时间: 2013-6-24 00:52
标题: java二叉树
本帖最后由 Super_Class 于 2013-6-24 18:18 编辑

求一个JAVA实现二叉树的具体代码过程。
作者: likairoudou    时间: 2013-6-24 17:13
  1. import java.util.ArrayList;
  2.   
  3. //
  4. 树的一个节点

  5. class TreeNode {
  6.   




  7. Object _value = null; //
  8. 他的值
  9.   




  10. TreeNode _parent = null; //
  11. 他的父节点,根节点没有
  12. PARENT




  13. ArrayList _childList = new ArrayList(); //
  14. 他的孩子节点

  15.   




  16. public TreeNode( Object value, TreeNode parent ){








  17. this._parent = parent;








  18. this._value = value;




  19. }
  20.   




  21. public TreeNode getParent(){








  22. return _parent;




  23. }
  24.   




  25. public String toString() {  








  26. return _value.toString();




  27. }
  28. }
  29.   
  30. public class Tree {
  31.   




  32. //
  33. 给出宽度优先遍历的值数组,构建出一棵多叉树





  34. // null
  35. 值表示一个层次的结束
  36.   




  37. // "|"
  38. 表示一个层次中一个父亲节点的孩子输入结束





  39. //
  40. 如:给定下面的值数组:
  41.   




  42. // { "root", null, "left", "right", null }  




  43. //
  44. 则构建出一个根节点,带有两个孩子
  45. ("left","right")
  46. 的树





  47. public Tree( Object[] values ){








  48. //
  49. 创建根
  50.   








  51. _root = new TreeNode( values[0], null );
  52.   








  53. //
  54. 创建下面的子节点
  55.   








  56. TreeNode currentParent = _root; //
  57. 用于待创建节点的父亲









  58. //TreeNode nextParent = null;  








  59. int currentChildIndex = 0; //
  60. 表示

  61. currentParent
  62. 是他的父亲的第几个
  63. 儿子
  64.   








  65. //TreeNode lastNode = null; //
  66. 最后一个创建出来的
  67. TreeNode
  68. ,用于
  69. 找到他的父亲
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2