简单二叉树的创建,连接树结点,二叉树的深度(转载)

来源:互联网 发布:一个端口的tcp连接数 编辑:程序博客网 时间:2024/05/29 09:48
// 题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶子结点一次经过的结点形成树的一条路径,// 最长路径的长度为树的深度。根节点的深度为1。#include<iostream>#include<stdlib.h>using namespace std;typedef struct BinaryTreeNode{int value;BinaryTreeNode *left;BinaryTreeNode *right;}tree;BinaryTreeNode *createBinaryTreeNode(int value){BinaryTreeNode *pNode=new BinaryTreeNode;pNode->value =value;pNode->left =NULL;pNode->right =NULL;return pNode;}void ConnectTreeNodes(BinaryTreeNode* pParent,BinaryTreeNode* pLeft,BinaryTreeNode* pRight){    if(pParent!=NULL)    {        pParent->left=pLeft;        pParent->right=pRight;    }}int TreeDepth(BinaryTreeNode* pRoot){if(pRoot==NULL) return 0;int left=1;int right=1;left+=TreeDepth(pRoot->left );right+=TreeDepth(pRoot->right );return left>right?left:right;}void main(){//           1//         /   \//        2     3//       /\       \//      4  5       6//         ///        7    //创建树结点BinaryTreeNode *pNode1=createBinaryTreeNode(1);BinaryTreeNode *pNode2=createBinaryTreeNode(2);BinaryTreeNode *pNode3=createBinaryTreeNode(3);BinaryTreeNode *pNode4=createBinaryTreeNode(4);BinaryTreeNode *pNode5=createBinaryTreeNode(5);BinaryTreeNode *pNode6=createBinaryTreeNode(6);BinaryTreeNode *pNode7=createBinaryTreeNode(7);//连接树结点ConnectTreeNodes(pNode1,pNode2,pNode3);ConnectTreeNodes(pNode2,pNode4,pNode5);ConnectTreeNodes(pNode5,pNode7,NULL);ConnectTreeNodes(pNode3,NULL,pNode6);//连接树结点int depth=TreeDepth(pNode1);cout<<depth<<endl;system("pause");}

转载于,自己在VS上面实现了出来,练练手;

出处:http://www.cnblogs.com/xwdreamer


0 0