数据结构笔记--二叉树的删除节点、排序

二叉树的删除节点======
当二叉树的节点没有比较复杂的数据或者子链表时,一般都会使用节点替换的
方式删除。
优先判断被删除节点的左子树,找到左子树中最大值替换,其次判断被删除节点
的右子树,找到右子树中最小值替换。
如果左右子树都不存在,直接删除目标节点。向上级函数返回NULL,要让上级root
节点的指针指向NULL。

替换时,会较少的改变原有数值的顺序和层次。较少的改变先序遍历,后序遍历,按层

遍历的数值位置。

排序===
1.插入排序
把整个数列看成是已排序和未排序两个部分,然后每次从未排序的数列中取出第一个
元素依次与已排序中的数值做比较,然后插入到对应的位置。
第一次插入时,会把整个数列的第1个元素看成已排序数列,即一开始已排序数列中
就会有一个元素。

在插入排序中,待排序数列有 n-1 个元素,会比较插入n-1次

2.冒泡排序
从数列第一个元素开始,相邻两个元素做对比,把较大的数值放在后面,第一个轮结束
时,数列最大值会被移动到数列末尾;然后再次从第一个元素开始,相邻两个元素作对比,把
较大的数值放在后面,但此时不会再把末尾值做比较。
第1次,比较n-1次
第2次,比较n-2次

第n-2次,比较1次

3.选择排序
使用一个下标或者指针指向首元素,然后遍历数列,找到最大或者最小值所在的位置,
修改下标或指针。然后用这个数值与数列末尾的数值进行交换。

4.快速排序
把一个数列最左端与最右端传入递归函数。设置最左端的数值为 关键值,然后把
比键值小的数值放在它的左边,把比键值大的数值放在它的右边。然后在分别对两端数列
进行排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值