Tree实现Word文件下载.docx

上传人:b****7 文档编号:21928494 上传时间:2023-02-01 格式:DOCX 页数:11 大小:16.51KB
下载 相关 举报
Tree实现Word文件下载.docx_第1页
第1页 / 共11页
Tree实现Word文件下载.docx_第2页
第2页 / 共11页
Tree实现Word文件下载.docx_第3页
第3页 / 共11页
Tree实现Word文件下载.docx_第4页
第4页 / 共11页
Tree实现Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Tree实现Word文件下载.docx

《Tree实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《Tree实现Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

Tree实现Word文件下载.docx

//voidTreeNote<

show(FILE*out)

//{

//Note->

//}

 

TreeNote<

~TreeNote()

deleteNote;

TreeNote(T&

con)

this->

Note=newT(con);

Left=NULL;

Right=NULL;

#endif

//Binarytree.h

#ifndef_BRINARYTREE_H_

#define_BRINARYTREE_H_

#include"

treenote.h"

stack>

vector>

classT>

classBrinaryTree{

TreeNote<

*Root;

vector<

*>

NoteCan;

//用®

?

STL的Ì

时º

¡

À

候¨

°

要°

a注Á

é

意°

a加¨

®

上¦

usingnamespacestd

BrinaryTree();

~BrinaryTree();

voidpull(T&

temp);

boolsearch(T&

ser);

*MyRoot(){returnRoot;

//递Ì

Y归¨

¦

实º

Ì

现?

voidshow_pre(TreeNote<

*Root,ofstream&

voidshow_in(TreeNote<

voidshow_post(TreeNote<

//栈?

voidshow_pre_Base(ofstream&

voidshow_in_base(ofstream&

voidshow_post_base(ofstream&

boolBrinaryTree<

search(T&

ser)

intp=0;

for(inti=1;

i<

NoteCan.size();

i++)

{

if(*NoteCan[i]->

Note==ser)

{

NoteCan[i]->

Note->

visit();

p=1;

break;

}

}

returnp;

}/*

后¨

序¨

遍À

¨

历¤

²

的Ì

非¤

递Ì

1

这a个?

由®

于®

不?

能¨

¹

准Á

确¨

¤

判D断?

是º

否¤

已°

经-遍À

过y父?

节¨

点Ì

所¨

´

以°

在¨

压1栈?

就¨

ª

a压1入¨

指?

针?

,ê

a直¡

接¨

压1入¨

当Ì

访¤

问¨

º

过y节¨

将?

置?

空?

若¨

两¢

都?

则¨

该?

可¨

出?

栈?

实º

压1根¨

滑?

向¨

左Á

有®

D左Á

孩¡

子Á

压1左Á

若¨

无T,ê

指?

滑?

顶£

右®

边À

同ª

为a空?

元a素?

弹Ì

¥

再¨

次ä

循-环¡

至¨

¢

且¨

*/

//

//遍À

算?

法¤

§

2

//while(ê

)ê

//一°

直¡

最Á

用®

for函¡

数º

y

//while(ê

前¡

ã

便À

利¤

无T有®

D孩¡

或¨

者?

刚?

过y)ê

//

//则¨

并¡

找¨

一°

根¨

另¢

外ª

a的Ì

记?

录?

个?

过y的Ì

//如¨

果?

return

//弹Ì

//}

//否¤

入¨

//}

voidBrinaryTree<

show_post_base(ofstream&

out)

*iterator=this->

Root;

*pre=this->

stack<

tempNoteCan;

while(iterator){

while(iterator->

Left!

=NULL)

{tempNoteCan.push(iterator);

iterator=iterator->

Left;

while(iterator!

=NULL&

&

(iterator->

Right==NULL)||(iterator->

Right==pre)){

iterator->

show(out);

pre=iterator;

if(tempNoteCan.empty())return;

iterator=tempNoteCan.top();

tempNoteCan.pop();

tempNoteCan.push(iterator);

iterator=iterator->

Right;

show_in_base(ofstream&

while(iterator!

=NULL||!

tempNoteCan.empty())

if(iterator!

if(iterator->

{

tempNoteCan.push(iterator);

iterator=iterator->

}

else

iterator->

if(!

{

iterator=tempNoteCan.top();

tempNoteCan.pop();

iterator->

iterator=iterator->

}

elseiterator=NULL;

else{

iterator=iterator->

show_pre_Base(ofstream&

Right!

tempNoteCan.push(iterator->

Right);

else

BrinaryTree<

~BrinaryTree()

while(NoteCan.size()>

1)

TreeNote<

*temp;

temp=NoteCan.back();

NoteCan.erase(NoteCan.begin()+NoteCan.size()-1);

deletetemp;

show_post(TreeNote<

if(Root!

show_in(Root->

Left,out);

Right,out);

Root->

show_in(TreeNote<

show_pre(TreeNote<

show_pre(Root->

pull(T&

temp)

if(!

search(temp))

{

*newNote=newTreeNote<

(temp);

NoteCan.push_back(newNote);

if(NoteCan.size()>

2)

if((NoteCan.size()-1)%2==1)

NoteCan[(NoteCan.size()-1)/2]->

Right=newNote;

}

else

Left=newNote;

this->

Root=newNote;

BrinaryTree()

//第Ì

位?

*pp=NULL;

NoteCan.push_back(pp);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1