首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

递归-二叉树

2012-11-21 
递归--二叉树递归--二叉树//////程序名称:利用递归建立二叉树////

递归--二叉树
递归--二叉树

//======================================////程序名称:利用递归建立二叉树          ////Written By HEWEI                      ////2011 05 31                            ////======================================//#include<iostream>using namespace std;#define  MAX 20//链表结构的声明struct tree{struct tree *left;int Data;struct tree *right;};typedef struct tree treenode;typedef treenode *b_tree;int capacity;//---------------------------------------////---------建立二叉树--------------------////---------------------------------------//b_tree Create_Tree(int *nodelist,int position){b_tree New;  //建立新的节点//递归的条件     if(position > capacity -1 )return NULL;else{//申请内存空间New = new treenode[sizeof(treenode)];      //存入节点值New->Data = nodelist[position];New->left = Create_Tree(nodelist,2*position); //左树节点New->right = Create_Tree(nodelist,2*position + 1); //右树节点        return New;}}//-------------------------------------------////--------前序遍历二叉树---------------------////-------------------------------------------//void preorder(b_tree pointer){if(pointer != NULL)  {  cout <<pointer->Data << " ";  preorder(pointer->left);//打印左节点  preorder(pointer->right);//打印右节点  } }//-------------------------------------------//  //-----------存储数值------------------------//  //-------------------------------------------//  void Store_Data(int nMaxIndex,int *pArray)  {  int i ;  int temp;  for(i = 0; i <nMaxIndex; i++)  {  cout << "Please Input the Data => ";  cin >> temp;  pArray[i] = temp;  }  }  //-------------------------------------------////------------主函数-------------------------////-------------------------------------------//int main(void){b_tree root = NULL; //声明根节点  int i,index;  int value;  int nodelist[MAX];  //读取数值到数组中  cout <<"Please Input the capacity : ";  cin >> capacity;  cout << endl;  Store_Data(capacity,nodelist);  //建立二叉树  root = Create_Tree(nodelist,1);  //遍历二叉树  preorder(root);  return 0;}

热点排行