写出执行双旋转的函数,其效率要超过执行两个单旋转
2016-04-23 17:58
471 查看
数据结构与算法分析——c语言描述 练习4.22 答案
就是人工展开两个单旋转的函数。画个图就行了。
就是人工展开两个单旋转的函数。画个图就行了。
static Position doubleRotateWithLeft(Position k3) { Position k1 = k3->left; Position k2 = k1->right; k1->right = k2->left; k3->left = k2->right; k2->left = k1; k2->right = k3; k1->height = Max(height(k1->left), height(k1->right)) + 1; k3->height = Max(height(k3->left), height(k3->right)) + 1; k2->height = Max(height(k2->left), height(k2->right)) + 1; return k2; } static Position doubleRotateWithRight(Position k1) { Position k3 = k1->right; Position k2 = k3->left; k1->right = k2->left; k3->left = k2->right; k2->left = k1; k2->right = k3; k1->height = Max(height(k1->left), height(k1->right)) + 1; k3->height = Max(height(k3->left), height(k3->right)) + 1; k2->height = Max(height(k2->left), height(k2->right)) + 1; return k2; }
相关文章推荐
- easyui-textbox添加validType使maxlength失效
- Quartz定时器
- 我的美国CS面试经验分享(转载)
- 学习大数据第二天:数据挖掘的基础方法——最小二乘法
- CodeForces - 405C
- Problem-1017
- Blob分析
- 个人工作总结05
- oracle学习总结5(游标、触发器、过程、方法)
- PHP中的设计模式及其实际应用浅析
- ios struct property
- 如何查一个字段在数据库的哪些表上
- Linux运维基础之Linux(Centos)系统安装
- shader forge初级篇|数据转换
- Linux系统下安装rz/sz命令及使用说明
- base64加密解密c++的简单实现
- 获取客户端访问的ip地址
- mysql 使用中文
- C#多线程简单例子讲解
- mysql存储过程详解