二叉树

    技术2024-10-05  53

    二叉树

    #include<stdio.h> #include<stdlib.h> typedef struct bitnode //定义二叉树节点数据类型 { int data; struct bitnode *left, *right; } bitnode, *bitree; //bitree为指向bitnode这种结构的指针 bitnode* PerCreateTree()//前序构造二叉树 { bitnode* T; int item; scanf("%d",&item); if( item == 0)//叶节点数据标志:其后根两个0 T =NULL;//若某一节点为叶子结点,则其左右子树均为NULL,0表示建空树 else { T = (bitnode*)malloc(sizeof(bitnode)); T->data = item; T->left = PerCreateTree();//递归创建其左子树 T->right = PerCreateTree(); //递归创建其右子树 } return T; //返回根节点 } //先序遍历二叉树 void PerOrder(bitnode* T) { if( T ) { printf("%d ",T->data); PerOrder(T->left);//递归先序遍历其左子树 PerOrder(T->right);//递归先序遍历其右子树 } } void hou(bitree T) { if( T )// T != NULL { hou(T->left);//递归先序遍历其左子树 hou(T->right);//递归先序遍历其右子树 printf("%d ",T->data); } } int count = 0; int counts(bitnode *T){ if(T){ count ++; counts(T->left); counts(T->right); } return count; }
    Processed: 0.011, SQL: 12