韩冰 发表于 2004-10-4 06:16

一颗很值得玩味的二叉树

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>


<P>typedef struct bitnode
{
    char data;
    struct bitnode *lchild, *rchild;
}bitnode, *bitree;</P>
<P>void createbitree(t,n)
bitnode ** t;
int *n;
{
    char x;
    bitnode *q;
    *n=*n+1;
    printf("\n Input  %d  DATA:",*n);
    x=getchar();
    if(x!='\n')
       getchar();
    if (x=='\n')
       return;
    q=(bitnode*)malloc(sizeof(bitnode));
    q-&gt;data=x;
    q-&gt;lchild=NULL;
    q-&gt;rchild=NULL;
    *t=q;
    printf("This Address is:%o,Data is:%c,\n Left Pointer is:%o,Right Pointer is:  %o",q,q-&gt;data,q-&gt;lchild,q-&gt;rchild);
    createbitree(&amp;q-&gt;lchild,n);
    createbitree(&amp;q-&gt;rchild,n);
    return;
}</P>
<P>void visit(e)
bitnode *e;
{
    printf("  Address:  %o,  Data:  %c,  Left Pointer:  %o,  Right Pointer:  %o\n",e,e-&gt;data,e-&gt;lchild,e-&gt;rchild);
}</P>
<P>void preordertraverse(t)
bitnode *t;
{
    if(t)
    {
        visit(t);
        preordertraverse(t-&gt;lchild);
        preordertraverse(t-&gt;rchild);
        return ;
    }
    else
       return ;
}</P>
<P>void countleaf(t,c)
bitnode *t;
int *c;
{
    if(t!=NULL)
    {
        if (t-&gt;lchild==NULL &amp;&amp; t-&gt;rchild==NULL)
        {
            *c=*c+1;
        }
        countleaf(t-&gt;lchild,c);
        countleaf(t-&gt;rchild,c);
    }
    return;
}</P>
<P>int treehigh(t)
bitnode *t;
{
    int lh,rh,h;
    if(t==NULL)
       h=0;
    else
    {
        lh=treehigh(t-&gt;lchild);
        rh=treehigh(t-&gt;rchild);
        h=(lh&gt;rh ? lh:rh)+1;
    }
    return h;
}</P>
<P>main()
{
    bitnode *t; int count=0;
    int n=0;
    printf("\n Please input TREE Data:\n");
    createbitree(&amp;t,&amp;n);
    printf("\n This is TREE Struct: \n");
    preordertraverse(t);
    countleaf(t,&amp;count);
    printf("\n This TREE has %d leaves    ",count);
    printf(",High of The TREE is: %d\n",treehigh(t));
}</P>

xShandow 发表于 2004-11-3 13:51

<P>不错啊。
</P>

zoologist 发表于 2004-10-25 10:07

连注释都没有,怎么看!

realyoyy 发表于 2004-11-7 20:20

就是阿  什么说明都没有 变量名也不标准
页: [1]
查看完整版本: 一颗很值得玩味的二叉树