#include <stdio.h> #include <stdlib.h> typedef struct Tree{ int data; struct Tree *lchild,*rchild; }Tree,*BiTree; BiTree CreateLink(){ int data; int temp; BiTree T; scanf("%d",&data); temp = getchar(); if(data == -1) return NULL; else{ T = (BiTree)malloc(sizeof(Tree)); T->data = data; printf("请输入%d的左子树\n",data); T->lchild = CreateLink(); printf("请输入%d的右子树\n",data); T->rchild = CreateLink(); return T; } } void firstbl(BiTree T){ if(T == NULL){ return; } printf("%d ",T->data); firstbl(T->lchild); firstbl(T->rchild); } void betweenbl(BiTree T){ if(T == NULL){ return; } betweenbl(T->lchild); printf("%d ", T->data); betweenbl(T->rchild); } void lastbl(BiTree T){ if(T == NULL){ return; } lastbl(T->lchild); lastbl(T->rchild); printf("%d ", T->data); } int depth(BiTree T) { if (T == NULL) { return 0; } int ldepth = depth(T->lchild); int rdepth = depth(T->rchild); return (ldepth > rdepth) ? (ldepth + 1) : (rdepth + 1); } int main() { int de; BiTree S; printf("请输入第一个节点的数据:\n"); S = CreateLink(); printf("先序遍历的结果为:\n"); firstbl(S); printf("\n"); printf("中序遍历的结果为:\n"); betweenbl(S); printf("\n"); printf("后序遍历的结果为:\n"); lastbl(S); printf("\n"); de = depth(S); printf("此二叉树的深度为:%d ",de); return 0; }
标签:return,int,BiTree,二叉树,printf,操作,rchild,一点,data From: https://www.cnblogs.com/TruthThoughts/p/17282469.html