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

📄 depth.cpp

📁 后序遍历求二叉树深度。
💻 CPP
字号:
//求二叉树的深度(后序遍历)

#include "stdafx.h"
#include "stdio.h"
#include "malloc.h"

typedef struct BiTNode{      //自定义二叉树的存储结构
	char data;               //数据
	struct BiTNode *lchild , *rchild;    //左右孩子指针
}BiTNode,*BiTree;

//先序建立二叉树函数
void CreatBiTree(BiTree &T){    
	char ch;
	scanf("%c",&ch);
		if(ch==' ')T=NULL; //若输入空格符则表示空树
		else{
			T=(BiTNode *)malloc(sizeof(BiTNode)) ;  //动态分配存储单元
			T->data=ch;
			//printf("%c",T->data);
			CreatBiTree(T->lchild);
			CreatBiTree(T->rchild);
		}
}

//求二叉树深度函数
int Depth (BiTree &T) {    // 返回二叉树的深度
   int dep,ldep,rdep;
   if ( !T )              //空树返回0
	   dep = 0;
   else
   {                               //遍历
	   ldep=Depth( T->lchild );
       rdep=Depth( T->rchild );
       if(ldep>rdep)               //取左子树和右子树中最大值加1即为深度
		 dep=ldep+1;               
	   else
		 dep=rdep+1;
	 }
	  return dep;                 //返回深度
}

void main()
{
	BiTree t;
//	char n;
	int m;
	printf("请先建立二叉树!\n");
	CreatBiTree(t);
	printf("二叉树已经建立!其深度为:\n");
	  m=Depth(t);
	  printf("%d\n",m);                //输出深度
}

⌨️ 快捷键说明

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