创建二叉树Word下载.docx
《创建二叉树Word下载.docx》由会员分享,可在线阅读,更多相关《创建二叉树Word下载.docx(7页珍藏版)》请在冰豆网上搜索。
{
intdata;
struct_Node*left;
struct_Node*right;
_Node()
{
data=0;
left=NULL;
right=NULL;
}
}Node,*_PNode;
//***************************************层次遍历的举例********************************************begin
//创建二叉树利用先序创建
/*
/\
3
/\/
56
/\\/\
891011
13
*/
voidCreateBitree(_PNode&
pNode,fstream&
fin)
intdat;
fin>
>
dat;
if(dat==0)
pNode=NULL;
else
pNode=newNode();
pNode->
data=dat;
CreateBitree(pNode->
left,fin);
right,fin);
}
//二叉树的自下而上,自右向左的遍历方法
voidReverseLevel(_PNodepRoot)
queue<
_PNode>
q;
stack<
s;
_PNodeq[100]={0};
_PNodepNode=NULL;
intfront=0;
intrear=0;
intlast=0;
intwidth=0;
inttemp=0;
if(NULL==pRoot)
returnwidth;
q[rear]=pRoot;
while(front<
=last)
pNode=q[front++];
temp++;
if(NULL!
=pNode->
left)
q[++rear]=pNode->
left;
right)
right;
if(front>
last)
last=rear;
if(temp>
width)
width=temp;
temp=0;
//***************************************层次遍历的举例********************************************end
//辅助函数,设置控制台的颜色
voidSetConsoleTextColor(WORDdwColor)
HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);
if(INVALID_HANDLE_VALUE==handle)
return;
SetConsoleTextAttribute(handle,dwColor);
int_tmain(intargc,_TCHAR*argv[])
_PNodepRoot1=NULL;
SetConsoleTextColor(FOREGROUND_GREEN|FOREGROUND_INTENSITY);
fstreamfin("
level.txt"
);
CreateBitree(pRoot1,fin);
cout<
<
endl<
"
******************层次遍历举例********************"
endl;
二叉树的自下而上,自右向左的遍历"
ReverseLevel(pRoot1);
二叉树中度为1的节点个数:
CountOneDepth(pRoot1)<
二叉树中最大的宽度为:
FindMaxWidth(pRoot1)<
return0;