【问题标题】:Tree data structure implementation [duplicate]树数据结构实现[重复]
【发布时间】:2021-04-14 19:36:09
【问题描述】:

我最近刚开始上大学,之前没有任何编码经验。我开始研究树形数据结构及其Java实现。这个问题很基础,但我还没有找到答案。

在列表中,您首先键入 import java.util.List 需要做什么才能从树实现开始?

【问题讨论】:

    标签: java data-structures tree


    【解决方案1】:

    不需要导入 Java 包来实现 Trees。树结构是引用子节点地址的类的节点/实例的集合。虽然有不同类型的树,例如二叉搜索树或 AVL 树,但每棵树都有不同的属性。

    Java中二叉搜索树的示例实现如下:

    /* Node Class containing left and right child of current
    node and key value*/
    class Node
    {
        int key;
        Node left, right;
    
        public Node(int item)
        {
            key = item;
            left = right = null;
        }
    }
    
    class Tree
    {
        Node root;
    
        Tree()
        {
            root = null;
        }
    
        public static void main(String[] args)
        {
            Tree tree = new Tree();
            tree.root = new Node(1);
            tree.root.left = new Node(2);
            tree.root.right = new Node(3);
            tree.root.left.left = new Node(4);
        }
    }
    
    

    【讨论】:

      【解决方案2】:

      最简单的答案是 DefaultTreeModel 类。基本上,您创建 TreeNode 对象并根据需要将它们添加到模型或父节点。 DefaultMutableTreeNode 应该足以满足您作为初学者的需求。

      您可以使用递归轻松导航模型。

      【讨论】:

      • 这是一个摇摆班。如果你只需要实现一个简单的数据结构,我不建议使用 swing。
      • 这是一个swing类,但是模型很健全,可以很容易地在swing之外使用。
      【解决方案3】:

      对于常规二叉树,您可以实现自己的:

      class Node {
          int value;
          Node left;
          Node right;
      
          public Node(int value) {
              this.value = value;
          }
      }
      

      然后创建一个包含根节点实例的 BinaryTree 类。

      【讨论】:

        【解决方案4】:

        树结构与列表实现有点不同...

        如果你只想要代码,我建议你看这个topic,如果你的焦点问题不是如何做而是它们如何工作,我推荐this。

        如果你使用这个数据结构发现了问题,你需要学习this

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多