首页 > 代码库 > (一)二叉树

(一)二叉树

二叉树

1.二叉树定义

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”,左子树和右子树同时也是二叉树。二叉树的子树有左右之分,并且次序不能任意颠倒。二叉树是递归定义的,所以一般二叉树的相关题目也都可以使用递归的思想来解决,当然也有一些可以使用非递归的思想解决。

2.什么是二叉排序树

二叉排序树又叫二叉查找树或者二叉搜索树,它首先是一个二叉树,而且必须满足下面的条件:

1)若左子树不空,则左子树上所有结点的值均小于它的根节点的值;

2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值

3)左、右子树也分别为二叉排序树

4)没有键值相等的节点

3.二叉树节点定义

采用单项链表的形式,只从根节点指向孩子节点,不保存父节点。

//节点类,用于存储二叉树的节点信息
Class Node{
    public int data;
    public Node leftChild;
    public Node rightChild;  
}

4.二叉树的操作

二叉树(我们这里以二叉排序树为例)的查找、插入操作:

 1  Class Tree{
 2      //根节点
 3      private Node root;
 4      //当前节点  
 5      Node current = root;  
 6      
 7     //查找元素
 8     public Node findNode(int key){
 9              if(key < current.data){
10                     current = current.leftChild;              
11             } else if(key > current.data) {
12                     current = current.rightChild;             
13             }
14             else if(current == null) {
15                     return null
16             }
17              return current;
18    }    
19  }

 

(一)二叉树