yinlili 发表于 2006-11-29 23:14

[非常的紧急求助]  关于二叉树的编程

<P>题目是 定义一个抽象的数据类型 用C++编程  二叉树的建立 遍历 叶子节点个数 节点总数 高度 清除二叉树.我需要有头文件主函数... 就是直接可以运行起来的!<BR>这是我写的程序 老师说错的 在定义a的时候定义成字符窜 才对  可是我不会啊 还有别的错误 好象是和C混淆了[em08] 帮我改改拉.......<BR>#include&lt;iostream.h&gt; </P>
<P>  #include&lt;math.h&gt;        <BR> typedef  struct  BT{             <BR>     char   date;                <BR>     BT *lchild,*rchild;             <BR> } BT ,*tree ;                  <BR> void   create(tree  &amp;n)   {                <BR>     char   a;                                                <BR>     cin&gt;&gt;a;                  <BR>     if(<a href="mailto:a=='@')n=NULL" target="_blank" >a=='@')n=NULL</A>;           <BR>     else   {                  <BR>         n=new BT;                  <BR>         n-&gt;date=a;                    <BR>         create(n-&gt;lchild);                   <BR>         create(n-&gt;rchild); }                     <BR> }                  <BR> void   read1(tree  &amp;n){//先序              <BR>     if(n)              <BR>     {                  <BR>         <BR>         cout&lt;&lt;n-&gt;date&lt;&lt;"   ";                  <BR>         read1(n-&gt;lchild);                   <BR>         read1(n-&gt;rchild);                   <BR>     }       <BR> }             <BR>    void read2(tree &amp;n){//中序                  <BR>        if(n)     {     <BR>            read2(n-&gt;lchild);         <BR>            cout&lt;&lt;n-&gt;date&lt;&lt;"  ";         <BR>            read2(n-&gt;rchild); <BR>        } <BR>    } <BR>    void read3(tree &amp;n){//后序               <BR>        if(n)         {         <BR>            read3(n-&gt;lchild);         <BR>            read3(n-&gt;rchild);             <BR>            cout&lt;&lt;n-&gt;date&lt;&lt;"  ";     <BR>    } <BR>    }  <BR>    int countleafs(tree &amp;n)  {      <BR>        if(n-&gt;date==0)         <BR>            return 0;         <BR>        else             if(n-&gt;lchild&amp;&amp;n-&gt;rchild==0)             <BR>            return 1;     <BR>        return countleafs(n-&gt;lchild)+countleafs(n-&gt;rchild); <BR>    } <BR>    int count(tree &amp;n)<BR>    {<BR>        if(n-&gt;date==0) return 0;<BR>        else return 1+count(n-&gt;lchild)+count(n-&gt;rchild);<BR>    }<BR>    int Height(tree &amp;n)<BR>    {<BR>        if(n-&gt;date==0) return 0;<BR>        else{<BR>            int a=Height(n-&gt;lchild);<BR>            int b=Height(n-&gt;rchild);<BR>            return(a&gt;b)? a+1:b+1;<BR>        }<BR>    }<BR>    int Destroy(tree &amp;n);<BR>    {<BR>        if(n-&gt;date==0)return TRUE<BR>        else return n=NULL<BR>    }<BR>    main()      {            <BR>        tree  n;            <BR>        create(n);            <BR>        read1(n);         <BR>        cout&lt;&lt;endl;     <BR>        read2(n);         <BR>        cout&lt;&lt;endl;     <BR>        read3(n);         <BR>        cout&lt;&lt;endl;         <BR>        countleafs(n);<BR>        count(n);<BR>        Height(n);<BR>        Destroy(n);<BR>        cout&lt;&lt;endl;                   <BR>        return   0;               <BR>    }<BR></P>


页: [1]

编程论坛