[C++] 数据结构与算法----2.10 求树的深度 →→→→→进入此内容的聊天室

来自 , 2019-03-30, 写在 C++, 查看 123 次.
URL http://www.code666.cn/view/b5f1e8fb
  1. #include <iostream>
  2. using namespace std;
  3. typedef char TElemType;
  4. typedef struct TNode
  5. {
  6.         TElemType data;
  7.         TNode*parent,*fc,*ns;
  8. }*tree;
  9. void treelists(tree T);//树的广义表形式输出
  10. int degereeTree(tree T);//树的深度
  11. void CreateTree(tree &T,char s[],int &i);
  12. void CreateTree(tree &T,char s[]);
  13.  
  14.  
  15. int main()
  16. {
  17.         tree T;
  18.         char s[]="AB#C###";
  19.         CreateTree(T,s);
  20.         cout<<"该树的广义表形式输出为:"<<endl;
  21.         treelists(T);
  22.         cout<<endl<<"该树的深度为"<<degereeTree(T)<<endl;
  23.         return 0;
  24. }
  25.  
  26. void treelists(tree T)
  27. {
  28.         tree p;
  29.         if(!T){cout<<'#';return;}
  30.         cout<<T->data;
  31.         p=T->fc; if(!p) return;
  32.         cout<<'(';
  33.         while(p)
  34.         {
  35.                 treelists(p);p=p->ns;
  36.                 if(p) cout<<',';
  37.         }
  38.         cout<<')';
  39. }
  40. void CreateTree(tree &T,char s[],int &i)
  41. {
  42.         i++;
  43.         if(s[i]=='#'){T=NULL;return;}
  44.         T=new TNode; T->data=s[i];
  45.         CreateTree(T->fc,s,i);
  46.         CreateTree(T->ns,s,i);
  47. }
  48. void CreateTree(tree &T,char s[])
  49. {
  50.         int i=-1;
  51.         CreateTree(T,s,i);
  52. }
  53. int degereeTree(tree T)
  54. {
  55.         if(!T) return 0;
  56.         int x,y;
  57.         x=degereeTree(T->fc)+1;
  58.         y=degereeTree(T->ns);
  59.         return x>y?x:y;
  60. }

回复 "数据结构与算法----2.10 求树的深度"

这儿你可以回复上面这条便签

captcha