zoukankan      html  css  js  c++  java
  • 计算一棵二叉树单分支结点个数的完整程序

    #include <stdio.h>
    
    typedef struct BTNode
    {
        char data;
        struct BTNode * lchild; //p是指针L是左,child是孩子
        struct BTNode * rchild;
    }BTNode,*BiTree;
    
    struct BTNode * CreateBTree();
    void PreTraverseBTree(struct BTNode *);
    int DsonNodes(struct BTNode *);
    
    int main()
    {
        int t;
        struct BTNode * T = CreateBTree();
        PreTraverseBTree(T);
        printf("
    ");
        t = DsonNodes(T);
        printf("%d",t);
    
    
        return 0;
    }
    void PreTraverseBTree(BiTree T)
    {
        if(T!=NULL)  //if必须要有,虽然pT存在,但当pT->pLchild 或 pT->pRchild为空时没有,空没有指向的data域
        {
            printf("%c
    ", T->data);
            if(T->lchild!=NULL)
                PreTraverseBTree(T->lchild);
            if(T->rchild)
                PreTraverseBTree(T->rchild);
        }
    }
    int DsonNodes(BiTree T)
    {
        if(T!=NULL)
        {
            if((T->lchild==NULL&&T->rchild!=NULL)||(T->lchild!=NULL&&T->rchild==NULL))
                return DsonNodes(T->lchild)+DsonNodes(T->rchild)+1;
            else
                return DsonNodes(T->lchild)+DsonNodes(T->rchild);
        }
    }
    
    
    struct BTNode * CreateBTree()
    {
         struct BTNode * pA = (struct BTNode *)malloc(sizeof(struct BTNode));
         struct BTNode * pB = (struct BTNode *)malloc(sizeof(struct BTNode));
         struct BTNode * pC = (struct BTNode *)malloc(sizeof(struct BTNode));
         struct BTNode * pD = (struct BTNode *)malloc(sizeof(struct BTNode));
         struct BTNode * pE = (struct BTNode *)malloc(sizeof(struct BTNode));
    
         pA->data = 'A';
         pB->data = 'B';
         pC->data = 'C';
         pD->data = 'D';
         pE->data = 'E';
    
         pA->lchild = pB;
         pA->rchild = pC;
         pB->lchild = pB->rchild =NULL;
         pC->lchild = pD;
         pC->rchild = NULL;
         pD->rchild = pE;
         pD->lchild = NULL;
         pE->lchild = pE->rchild = NULL;
    
         return pA;
    }
  • 相关阅读:
    数据库之主表、从表、主键、外键
    eclipse编写js代码没有提示
    思维导图xmind的使用方法
    整理一下Apache与Tomcat的关系
    全栈开发者,一个很好的自学编程网站
    svn文件被锁不能提交的解决办法
    在SQL Server数据库中执行存储过程很快,在c#中调用很慢的问题
    php安装redis扩展
    PHP点击按钮拷贝
    PHP文件下载
  • 原文地址:https://www.cnblogs.com/spore/p/11329264.html
Copyright © 2011-2022 走看看