二叉树
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 }
时间: 2024-10-10 07:04:31