1 创建二叉树结构体
#include<stdio.h>
#include<stdlib.h>
#include<string>
//树结构
typedef struct _Tree {
char data[64]="";
struct _Tree* left;
struct _Tree* right;
}Tree;
2创建树
//构建树
Tree* cteatTree() {
char name[16] = "";
printf("名称:");
gets_s(name);
if (strlen(name) == 0) {
return NULL;
}
Tree *tree = (Tree*)malloc(sizeof(Tree));
strcpy_s(tree->data,name);
printf("左%s",name);
tree->left = cteatTree();
printf("右%s",name);
tree->right = cteatTree();
return tree;
}
3前序(根->左->右)遍历
//遍历
void pr(Tree* tree) {
if (!tree){
return;
}
printf("%s\n", tree->data);
pr(tree->left);
pr(tree->right);
}
4拿到二叉树的深度实现
//取树的深度
int getTree(Tree * tree) {
if (!tree) {
return 0;
}
int letf = getTree(tree->left);
int right = getTree(tree->right);
return 1 + (letf > right ? letf : right);
}
画图更好理解哦。
加:所谓树就是一种结构,有根节点与孩子节点,根节点最多有2个孩子节点。树的最下面为NULL。