技术开发 频道

C#来完成二叉树的搜索、遍历、及查找


【IT168技术文档】

  二叉树结点类:
public class Node { private Node left; private Node right; private int value; public Node(Node left, Node right, int value) { this.left = left; this.right = right; this.value = value; } public Node(int value) { this.value = value; } public Node getLeftNode() { return left; } public Node getRightNode() { return right; } public int getValue() { return value; } /// <summary> /// 查找某一节点 /// </summary> /// <param name="node">根节点</param> /// <param name="value">要查找的值</param> /// <returns></returns> public Node findNode(Node root, int value) { if (root == null) { return null; } if (root.getValue() == value) { return root; } if (value < root.getValue()) { findNode(root.getLeftNode(), value); } else { findNode(root.getRightNode(), value); } return null; } /// <summary> /// 先根遍历 /// </summary> /// <param name="root"></param> public static void PreOrder(Node root) { if (root != null) { Console.WriteLine(root.getValue()); PreOrder(root.getLeftNode()); PreOrder(root.getRightNode()); } }
1
相关文章