算法导论15.5-1的答案及C++实现
来源:互联网 发布:对数据设置条件格式 编辑:程序博客网 时间:2024/06/01 08:08
①设计的伪代码CONSTRUCT-OPTIMAL-BST(root)如下
CONSTRUCT-OPTIMAL-BST(root,i,j,flag) if i<=j if flag == 1 print k root[i,j]为根 elseif flag == 0 print k root[i,j]为k j+1 的左孩子 else print k root[i,j]为k i-1 的右孩子 CONSTRUCT-OPTIMAL-BST(root,i,root[i,j]-1,0) CONSTRUCT-OPTIMAL-BST(root,root[i,j]+1,j,2) elseif j=i-1 if flag == 0 print d j 为k i+1的左孩子 elseif flag == 2 print d j 为k i-1的右孩子②C++实现:
#include<iostream>using namespace std;int root[6][6] = { 0, 0, 0, 0, 0, 0,0, 1, 1, 2, 2, 2,0, 0, 2, 2, 2, 4,0, 0, 0, 3, 4, 5,0, 0, 0, 0, 4, 5,0, 0, 0, 0, 0, 5,};void CONSTRUCT_OPTIMAL_BST(int i, int j, int flag){if (i <= j){if (flag == 1){cout << "k" << root[i][j] << "为根" << endl;}else if (flag == 0){cout << "k" << root[i][j] << "为k" << j + 1 << "的左孩子" << endl;}else{cout << "k" << root[i][j] << "为k" << i - 1 << "的右孩子" << endl;}CONSTRUCT_OPTIMAL_BST(i, root[i][j] - 1, 0);CONSTRUCT_OPTIMAL_BST(root[i][j] + 1, j, 2);}else if (j == (i - 1)){if (flag == 0){cout << "d" << j << "为k" << j + 1 << "的左孩子" << endl;}else if (flag == 2){cout << "d" << j << "为k" << i - 1 << "的右孩子" << endl;}}}void main(){CONSTRUCT_OPTIMAL_BST(1, 5, 1);}输出结果为
阅读全文
0 0
- 算法导论15.5-1的答案及C++实现
- 《算法导论》中红黑树的C语言实现
- 算法导论部分答案
- 算法导论答案汇总
- 算法导论(CLRS)答案
- 算法导论答案序
- 算法导论-----排序的9种实现(C/C++)
- 算法导论 - 归并排序的 C 语言实现
- 算法导论 - 快速排序的 C 语言实现
- 归并排序的C语言实现【严蔚敏+算法导论】
- 算法导论C语言实现: 算法基础
- kmp算法实现-算法导论C语言版
- 算法导论 16.1-1活动选择问题的动态规划算法 答案
- 算法导论答案 16.2-2 0-1背包问题的动态规划算法
- 《算法导论》1、插入排序实现(C++)
- 算法导论答案from豆丁
- 算法导论10.1-2答案
- 算法导论10.2-6答案
- 基于JQuery实现相同内容合并单元格的代码
- AI程序员双11省钱攻略——老铁们走一波~
- 超越ImageNet?李飞飞力赞高徒的视频描述研究入选计算机视觉最前沿的十大论文
- python os模块 以及 os.path模块 常用命令
- junit:no runnable methods
- 算法导论15.5-1的答案及C++实现
- 备忘:双网卡同时工作并分别连接内外网
- Android7.0之安装apk文件
- mysql(3)-备份恢复
- numpy学习
- Puppet SaltStack Chef Ansible
- 前端之API大全
- 转:玩转 Ceph 的正确姿势
- GN 编译配置