⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 10.cpp

📁 用递归求出二叉树的深度
💻 CPP
字号:
/*求二叉树的深度(后序遍历)*/ 
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define null 0
typedef struct node
{ char data;
  struct node *lchild;
  struct node *rchild;
}* bitree;


int CreateBiTree(bitree &t)  //按先序次序构造二叉树
{char ch=' ';
 scanf("%c",&ch);
 if(ch==' ')t=null;
 else{
	 if(!(t=(node *)malloc(sizeof(node))))return 0;
	 t->data=ch;          //建立根节点
	 CreateBiTree(t->lchild);//建立左子树
	 CreateBiTree(t->rchild);//建立右子树
 }
 return 1;
}


int depth(bitree t)
{
	int dep,dep1,dep2;		//分别为:根,左,右子树的深度

	if(!t)					//如果树空
	{
		dep=0;				//b的深度就是0
	}
	else
	{
		dep1=depth(t->lchild);
		dep2=depth(t->rchild);
		dep=1+(dep1>dep2?dep1:dep2);
	}
	return dep;
}


void main()
{bitree t=null;
 int deep;
 printf("输入二叉树中结点的值:");
 CreateBiTree(t);
 deep=depth(t);
 printf("二叉树深度为:");
 printf("%d",deep);
 printf("\n");
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -