二叉树插入和删除操作的递归实现(c语言)

链表和数组是最常见的数据结构,对于数据结构来说,查找(Find),最大最小值(FindMinFindMax),插入(Insert)和删除(Delete)操作是最基本的操作。对于链表和数组来说,这些操作的时间界为ON),其中N为元素的个数。数组的插入和删除需要对其他一些元素进行额外的移动操作,链表的查询操作是按顺序进行的,元素比较多的时候遍历操作需要花很多的时间。

直观上来讲,数组和链表都是线性结构,而二叉树每个节点的基本元素有三个,即关键字(Element),左孩子(Left)和右孩子(Right),整体上呈现分支结构,这样每个结构的长度就缩短了。因为二叉树有一个基本性质,即对每个节点来说,其左子树的所有节点关键字不大于该节点的关键字大小,其右子树的所有节点的关键字不小于该节点的关键字大小,所以使得对二叉树数据结构的基本操作都是沿分支路径进行的(它的结构使得这一操作是正确的),操作时间大大减少。可以证明,如果一棵二叉树的树高为h,则上述操作的时间界是

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值