#include using namespace std; typedef char TElemType; typedef struct TNode { TElemType data; TNode*parent,*fc,*ns; }*tree; void Treelists(tree T);//树的广义表形式输出 int duTree(tree T);//非空树的度 void CreateTree(tree &T, char s[]); void CreateTree(tree &T, char s[], int &i); int main() { tree T; char s[]="ABDF##E##C#H###"; //char s[]="AB#C###"; //char s[]="A##"; CreateTree(T,s); cout<<"该树的广义表形式输出为:"<data = s[i]; CreateTree(T->fc, s, i); CreateTree(T->ns, s, i); } void CreateTree(tree &T, char s[]) { int i = -1; CreateTree(T, s, i); } void Treelists(tree T) { tree p; if(!T){cout<<'#';return;} cout<data; p=T->fc; if(!p) return; cout<<'('; while(p) { Treelists(p);p=p->ns; if(p) cout<<','; } cout<<')'; } int duTree(tree T) { int m = 0; if (!T) { return 0; } tree p = T->fc; while (p) { m++; p=p->ns; } int n1 = duTree(T->fc); if (n1 > m)m = n1; int n2 = duTree(T->ns); return m > n2 ? m : n2; }