1.对二叉树实现遍历的算法
请见我的另一篇博客http://t.csdnimg.cn/UlNpb中的三种遍历算法
2.对二叉树求深度的算法
这个笔者在考试的时候反而想了很久,因为和完全二叉树的性质之一混淆了
其概念具体是:已知一颗完全二叉树的结点为n,那么它的深度为
练习材料+图片 来源:http://t.csdnimg.cn/X0e4i
AB#CD###E#FGH##K### 答案为5
代码附上:
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
//定义孩子二叉树结构
typedef struct CTNode{
char ch;
CTNode* lchild;
CTNode* rchild;
}CTNode;
//从文件中读取创建孩子二叉树
CTNode* createCT();
//寻找最大深度
int getDepth(CTNode* T);
//释放二叉树存储空间
void FreeTree(CTNode* T);
int findMax(int a, int b);
int main() {
CTNode* root = createCT();
int maxdepth = getDepth(root);
printf("最大深度:%d\n", maxdepth);
FreeTree(root);
return 0;
}
CTNode* createCT() {
CTNode* root;
char ch;
scanf("%c", &ch);
if (ch == '#') {
return NULL;
}
else {
root = (CTNode*)malloc(sizeof(CTNode));
if (root =