算法导论习题15.5-1解答

来源:互联网 发布:yii2.0 登陆源码 编辑:程序博客网 时间:2024/06/04 18:42

#include "stdafx.h"#include <iostream>const int DimensionOfRoot=6;void construct_optimal_BST(int root[][DimensionOfRoot],int i,int j){ int sr=0; sr=root[i][j]; if(1==i && DimensionOfRoot-1==j)//this is a root node  std::cout<<"k"<<sr<<" is the root"<<std::endl; if(i>sr-1) //process the left branch of the leaf  std::cout<<"d"<<sr-1<<" is the left child of k"<<sr<<std::endl; else //not a leaf node,to add the left subtree {  std::cout<<"k"<<root[i][sr-1]<<" is the left child of k"<<sr<<std::endl;  construct_optimal_BST(root,i,sr-1); } if(sr+1>j) //process the right branch of the leaf  std::cout<<"d"<<sr<<" is the right child of k"<<sr<<std::endl; else //not a leaf node,to add the right subtree {  std::cout<<"k"<<root[sr+1][j]<<" is the right child of k"<<sr<<std::endl;  construct_optimal_BST(root,sr+1,j); }}int _tmain(int argc, _TCHAR* argv[]){ int root[DimensionOfRoot][DimensionOfRoot]={{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}}; construct_optimal_BST(root,1,DimensionOfRoot-1); return 1;}


原创粉丝点击