您现在的位置是:主页 > news > 单页网站如何做排名/友链购买网

单页网站如何做排名/友链购买网

admin2025/5/18 16:34:18news

简介单页网站如何做排名,友链购买网,东莞公司建网站模板,永川做网站二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉…

单页网站如何做排名,友链购买网,东莞公司建网站模板,永川做网站二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉…
二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树。这种树的特点是每一层上的节点数都是最大节点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则此二叉树为完全二叉树。具有n个节点的完全二叉树的深度为floor(log2n)+1。深度为k的完全二叉树,至多有2k-1个叶子节点,至多有2k-1个节点。
#include<iostream>
#include<stdio.h>
#include<stdlib.h>using namespace std;typedef int TelemType;
//定义二叉树节点
typedef struct BinaryTreeNode{TelemType data;struct BinaryTreeNode *Left;struct BinaryTreeNode *Right;
}Node;//创建二叉树,中左右;
Node* CreatBinaryTree()
{Node *p;TelemType data;cin>>data;if(data==0)p=NULL;else{p=(Node*)malloc(sizeof(Node));p->data=data;p->Left=CreatBinaryTree();p->Right=CreatBinaryTree();}return p;    
}
/****递归遍历*****/
void PreOrderTraverse(Node* root)
{//前序if(root){cout<<root->data<<"\t";PreOrderTraverse(root->Left);PreOrderTraverse(root->Right);}
}
void InOrderTraverse(Node* root)
{//中序if(root){PreOrderTraverse(root->Left);cout<<root->data<<"\t";PreOrderTraverse(root->Right);}
}
void LastOrderTraverse(Node* root)
{//后序if(root){LastOrderTraverse(root->Left);LastOrderTraverse(root->Right);cout<<root->data<<"\t";}
}
int NodeNum(Node* root)//二叉树节点数目
{if(root==NULL)return 0;elsereturn 1+NodeNum(root->Left)+NodeNum(root->Right);
}int DepthOfTree(Node *root)//树的深度;
{if(root==NULL)return 0;elsereturn DepthOfTree(root->Left)>DepthOfTree(root->Right)?DepthOfTree(root->Left)+1:DepthOfTree(root->Right)+1;}
int LeafNum(Node* root)//叶子节点数目
{if(root==NULL)return 0;else if((root->Left==NULL)&&(root->Right==NULL)){return 1;}else{return (LeafNum(root->Left)+LeafNum(root->Right));}
}
int main()
{Node *root = NULL;root=CreatBinaryTree();cout<<"创建二叉树成功"<<endl;cout<<"该二叉树节点总数"<<NodeNum(root)<<endl;cout<<"该二叉树深度"<<DepthOfTree(root)<<endl;cout<<"该二叉树叶子节点总数"<<LeafNum(root)<<endl;cout<<"前序遍历结果:"<<endl;PreOrderTraverse(root);cout<<endl;cout<<"中序遍历结果:"<<endl;InOrderTraverse(root);cout<<endl;cout<<"后序遍历结果:"<<endl;LastOrderTraverse(root);cout<<endl;return 0;
}

二叉树的非递归遍历

https://www.cnblogs.com/SHERO-Vae/p/5800363.html

 

转载于:https://www.cnblogs.com/huiyuanai/p/9911690.html