第十週 項目 1 - 驗證算法 (2)

/*  
煙臺大學計算機學院  
  
文件名稱:xiangmu.cpp  
  
作者:陳軍正 
  
完成日期:2017年12月7日  
  
問題描述:二叉樹構造算法的驗證 
  
輸入描述:無 
  
輸出描述:知先序中序構造二叉樹結果 
 
用到btree2.h算法庫 
  
*/   
  
  
  
  
#include <stdio.h>  
#include <malloc.h>  
#include "../btree2.h"  
  
BTNode *CreateBT1(char *pre,char *in,int n)  
{  
    BTNode *s;  
    char *p;  
    int k;  
    if (n<=0) return NULL;  
    s=(BTNode *)malloc(sizeof(BTNode));     //創建二叉樹結點*s  
    s->data=*pre;  
    for (p=in; p<in+n; p++)                 //在中序序列中找等於*ppos的位置k  
        if (*p==*pre)                       //pre指向根結點  
            break;                          //在in中找到後退出循環  
    k=p-in;                                 //確定根結點在in中的位置  
    s->lchild=CreateBT1(pre+1,in,k);        //遞歸構造左子樹  
    s->rchild=CreateBT1(pre+k+1,p+1,n-k-1); //遞歸構造右子樹  
    return s;  
}  
  
  
int main()  
{  
    ElemType pre[]="ABDGCEF",in[]="DGBAECF";  
    BTNode *p;  
  
    p=CreateBT1(pre,in,7);  
  
    DispBTNode(p);  
}  
運行結果:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章