- 博客(7)
- 收藏
- 关注
原创 红黑树RBT的插入删除和寻找
1.申请一个sibling兄弟节点,如果兄弟节点是红色,父兄变色,父节点朝着待删节点的方向旋转,旋转后的子树连接祖父节点。2.如果是单分支 ,父节点为空则返回,否则,将孩子节点赋值给父节点的左或右孩子,孩子节点的双亲指向父节点,释放Node节点。3.如果当前节点的父节点存在并且是红色,且当前节点的叔叔节点是红色,叔父爷变色,将爷爷节点再次递归。3.零分支的情况,如果Node是根节点直接释放,如果Node是红色直接释放Node节点。4.如果当前节点的父节点存在并且是红色,且当前节点的叔叔是黑色则。
2025-08-11 16:09:00
680
原创 AVL树(平衡二叉树)的建立和功能实现
2.2该节点是双分支,找到右子树的最小值,给tmp,用tmp的值代替val所在节点的值,然后在右子树中删除tmp值(右子树的最小值),之后把子树接到此位置。2.3该节点时单分支,找到孩子所在的分支,释放当前节点,返回孩子节点让上一层接收,即孩子节点就是整个右子树。3.如果根节点下方插入新节点则更新高度,同时将根节点传给平衡旋转处理函数,如果失衡则将其处理为平衡。2.如果待插入的值小于根的val则放左边,大于根的val放右边,如果与根的val相同则直接返回。2.1该节点是叶子节点,直接删除。
2025-08-09 20:54:34
346
原创 BST树(二叉搜索树)
get_next函数则是,找到当前需要寻找下一个节点的节点的位置,如果此节点有右子树,则寻找右子树的最小值,如果没有右子树,则往根节点方向寻找,直到找到比当前节点大的根节点,如果没找到则没有后继节点,返回空。二叉搜索树是按照左小右大的顺序排列。删除操作可分为一下几种情况。6.5消除(非递归)7.打印(中序遍历)
2025-07-24 14:31:44
212
原创 替换进程excel族
其中可知一开始打印了进程号2898,接着替换进程为ps,由图片可知第一个为进程bash,终端的进程id,第二个改为了ps,进程id依然为2829. 达到了替换进程。此方法将execp和execv结合,在环境变量PATH中找包含ps的路径,然后将后序所需参数存入myargv数组,然后通过数组传参。echo PATH 可看环境变量中的path,execlp可以在PATH中找路径包含名字为ps的路径。char getcwd(char buf, size_t size):获取当前工作目录。
2025-07-24 14:30:19
361
原创 io复用linux实现
select poll 内核实现 轮询O(n)epoll 内核实现:注册回调函数O(1)LT/ETLT:多次提醒ET:提醒一次,编程必须是非阻塞模式。
2025-07-24 14:25:28
454
原创 多文件编译和库文件
方法一:main.c add.c max.c 转换为main.o add.o max.ogcc -c main.c -> main.o 变为链接文件下一步。
2025-07-24 11:29:04
799
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅