SDUT-二叉树先序 中序建树求树高

来源:互联网 发布:seo实战密码 epub 编辑:程序博客网 时间:2024/04/30 08:46
#include <iostream>#include <algorithm>#include <string.h>#include <stdlib.h>#include <stdio.h>#include <queue>using namespace std;char ls[550];char la[550];int n;int k;struct Binode{    char data;    struct Binode *l, *r;};void creat(Binode *&T,int l, int r){  T = new Binode;  char key = ls[k];  T->data = key;  T->l = NULL;  T->r = NULL;  int ik;  for(int i = 0; i < n; i++)  {      if(la[i] == key)      {        ik = i;        break;      }  }  if(ik > l)  {      k++;      creat(T->l,l,ik-1);  }  if(ik < r)  {      k++;      creat(T->r,ik+1,r);  }}int pos(Binode *T){    if(T)    {        int h1 = pos(T->l);        int h2 = pos(T->r);        return max(h1,h2)+1;    }    else        return 0;}int main(){   while(~scanf("%d",&n))   {       scanf("%s",ls);       scanf("%s",la);       Binode *T;       T = NULL;       k =0;       creat(T,0,n-1);       int hi = 0;       hi = pos(T);       printf("%d\n",hi);   }    return 0;}

0 0
原创粉丝点击