#include#include typedef struct BinaryTreeNode { int data; struct BinaryTreeNode *Left; struct BinaryTreeNode *Right; }Node; //创建二叉树,顺序依次为中间节点->左子树->右子树 Node* createBinaryTree() { Node *p; int ch; printf("输入data"); scanf("%d",&ch); if(ch == 0) //如果到了叶子节点,接下来的左、右子树分别赋值为0 { p = NULL; } else { p = (Node*)malloc(sizeof(Node)); p->data = ch; p->Left = createBinaryTree(); //递归创建左子树 p->Right = createBinaryTree(); //递归创建右子树 } return p; } //先序遍历 void preOrderTraverse(Node* root) { if( root ) { printf("%d",root->data); preOrderTraverse(root->Left); preOrderTraverse(root->Right); } } //中序遍历 void inOrderTraverse(Node* root) { if( root ) { inOrderTraverse(root->Left); printf("%d",root->data); inOrderTraverse(root->Right); } } //后序遍历 void lastOrderTraverse(Node* root) { if( root ) { lastOrderTraverse(root->Left); lastOrderTraverse(root->Right); printf("%d",root->data); } } //二叉树节点总数目 int Nodenum(Node* root) { if(root == NULL) { return 0; } else { return 1+Nodenum(root->Left)+Nodenum(root->Right); } } //二叉树叶子节点数 int Leafnum(Node* root) { if(!root) { return 0; } else if( (root->Left == NULL) && (root->Right == NULL) ) { return 1; } else { return (Leafnum(root->Left) + Leafnum(root->Right)) ; } } int main() { int i; Node *root = NULL; root = createBinaryTree(); printf("二叉树建立成功"); printf("\n"); preOrderTraverse(root); printf("\n"); inOrderTraverse(root); printf("\n"); lastOrderTraverse(root); printf("\n"); i = Leafnum(root); printf("%d",i); printf("\n"); i = Nodenum(root); printf("%d",i); return 0; }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款