二叉树的理解

本文介绍了二叉树的基本概念,包括每个父节点最多有两个子节点的特性,以及二叉树的有序性质。重点阐述了完全二叉树的四种性质,并解释了这些性质如何帮助我们在数据处理中创建有序序列,便于研究和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于二叉树的理解: 

   定义:首先,对于数据结构中的树而言,树是由n(n>=1)个有限节点组成一个具有层次关系的集合,而二叉树是每个父节点最多有两个子节点的树,说白了树是从根节点从下蔓延的一类有层次的集合,而这种集合是以以节 点形式存在的

    价值:或者说二叉树存在的意义,二叉树是一种具有一定的规律,有序,他的左子树和右子树都是按照一定的顺序来安排的,树的分类分为有序树和无序树,我们所去研究的都是一些有序的,即有一点规律和研究的事物,否则一切的都没有意义了,其实所有的关于树的解释,都是从节点包装开始的,也就是所有的树都是基于Node类型的,所以我在这里给的代码是属于节点这一块的

package List;
public class Licklist {
	//创建一个新的链表当做头节点
	private Node  first =new Node();
    private int length=0;
    public void add(String v){
    	//验证下标越界问题,这个没有越界问题
    	Node node=new Node();
    	node.value=v;	
    	Node Nownode=first;
    	while(Nownode.next!=null){
    		Nownode=Nownode.next;
    	}
    		Nownode.next=node; 
    		length++;
    	}
    public void delete(int index){
    	//验证下标越界问题
    	if(index<0||index>length){
        try {
			throw new Exception("下标越界");
		} catch (Exception e) {
			e.printStackTrace();
		}
    	}
    	int code=0;
    	Node Nownode=first;
    	while(code!=index){
    		Nownode = Nownode.next;
    		code++;
    	}
    	Nownode.next=Nownode.next.next;
    			length--;
    }
    public String get(int index){
    	//验证下标越界问题
    	if(index<0||index>length){
        try {
			throw new Exception("下标越界");
		} catch (Exception e) {
			e.printStackTrace();
		}
    	}
    	//重新定义成链表的形式
//    	Node node=new Node();
//    	node.value=v;
    	int code=0;
    	Node Nownode=first.next;
    	while(code!=index){
    		Nownode=Nownode.next;
    		code++;
    	}
    	return Nownode.value;
    }
    public void update(int index,String v){
    	//验证下标越界问题
    	if(index<0||index>length){
            try {
    			throw new Exception("下标越界");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
        	}
    	//定义成node类型
    	Node node=new Node();
    	node.value=v;
    	int code=0;
    	Node Nownode=first;
    	while(code!=index){
    		Nownode=Nownode.next;
    		code++;
    	}
    	node.next=Nownode.next.next;
    	Nownode.next=node;
    }
    public void insert(int index,String v){
    	//验证下标越界问题
    	if(index<0||index>length){
            try {
    			throw new Exception("下标越界");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
        	}
    	//定义成node类型
    	Node node=new Node();
    	node.value=v;
    	int code=0;
    	Node Nownode=first;
    	while(code!=index){
    		Nownode=Nownode.next;
    		code++;
    	}
    	node.next=Nownode.next;
    	Nownode.next=node;
    	length++;
    }
    public int size(){
    	return length;
    }
}

      完全二叉树性质:一:若根结点的层次为1,则二叉树第i层最多有2的(i-1)次方个结点。

                                      二:在高度为k的二叉树中,则最多有2k-1个结点(k≥0)

                                      三: 设一棵二叉树节点个数为n,则父节点个数为n/2。

                                      四:一棵具有n个结点的完全二叉树,对序号为i(0≤i0,则i的父母结点序号为:若2i+1<n,则i的左孩子结点序号为2i+1;否则i无左孩子。

                                                                                                                                                                                  若2i+2<n,则i的右孩子结点序号为2i+2;否则i无右孩子。

用处:利用完全二叉树的性质,可以将一些数据编辑成有规律的或者说我们想编辑的序列,便于研究使用和处理数据。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值