- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE1
程序设计经典教案
程序设计经典教案
树
程序5.1二叉树结点类
templateclassT
structBTNode
{
BTNode(){lChild=rChild=NULL;}
BTNode(constTx)
{
element=x;lChild=rChild=NULL;
}
BTNode(constTx,BTNodeT*l,BTNodeT*r)
{
element=x;lChild=l;rChild=r;
}
Telement;
BTNodeT*lChild,*rChild;
};
程序5.2二叉树类
templateclassT
classBinaryTree
{
public:
BinaryTree(){root=NULL;}
~BinaryTree(){Clear();}
boolIsEmpty()const;
voidClear();
boolRoot(Tx)const;
voidMakeTree(constTe,BinaryTreeTleft,BinaryTreeTright);
voidBreakTree(Te,BinaryTreeTleft,BinaryTreeTright);
voidPreOrder(void(*Visit)(Tx));
voidInOrder(void(*Visit)(Tx));
voidPostOrder(void(*Visit)(Tx));
protected:
BTNodeT*root;
private:
voidClear(BTNodeT*t);
voidPreOrder(void(*Visit)(Tx),BTNodeT*t);
voidInOrder(void(*Visit)(Tx),BTNodeT*t);
voidPostOrder(void(*Visit)(Tx),BTNodeT*t);
};
程序5.3部分二叉树运算
templateclassT
boolBinaryTreeT::Root(Tx)const
{
if(root){
x=root-element;returntrue;
}
elsereturnfalse;
}
templateclassT
voidBinaryTreeT::MakeTree(constTx,BinaryTreeTleft,BinaryTreeTright)
{
if(root||left==right)return;
root=newBTNodeT(x,left.root,right.root);
left.root=right.root=NULL;
}
templateclassT
voidBinaryTreeT::BreakTree(Tx,BinaryTreeTleft,BinaryTreeTright)
{
if(!root||left==right||left.root||right.root)return;
x=root-element;
left.root=root-lChild;right.root=root-rChild;
deleteroot;root=NULL;
}
程序5.4main函数
voidmain(void)
{
BinaryTreechara,b,x,y,z;图5.9(a)
y.MakeTree(E,a,b);
z.MakeTree(F,a,b);图5.9(b)
x.MakeTree(C,y,z);图5.9(c)
y.MakeTree(D,a,b);图5.9(d)
z.MakeTree(B,y,x);图5.9(e)
z.PreOrder(Visit);
z.BreakTree(e,y,x);
x.PreOrder(Visit);y.PreOrder(Visit);
您可能关注的文档
- 程序:第08章:跳表与散列表.docx
- 程序:第10章:内排序.docx
- 程序:第01章:基础知识.docx
- 程序:第02章:线性表.docx
- 程序:第03章:栈和队列.docx
- 程序:第04章:数组和字符串.docx
- 程序:第09章:图 程序设计经典教案.docx
- 5篇2023年襄阳引资聚才高质量发展大会嘉宾发言材料汇编.docx
- 4篇在枣庄市新旧动能转换项目推进会议上的发言材料汇编.docx
- 5篇“三八”国际妇女节纪念暨表彰大会先进典型代表发言材料汇编.docx
- 广东省广州市增城区2023-2024学年九年级上学期期末道德与法治试题(答案).doc
- 广东省广州市2021-2022学年九年级上学期期末模拟历史试题(含答案).docx
- 广东省广州市天河区暨南大学附属实验学校2022-2023学年九年级上学期期末历史试题.doc
- 广州市南沙区2023—2024学年第一学期九年级历史期末教学质量监测模拟试卷.doc
- 广东省广州市天河区暨南大学附属实验学校2022-2023学年九年级上学期期末历史试题(答案).doc
- 在全市县区委书记第五次工作座谈会上的讲话.docx
- 3篇中央政法工作会议发言材料汇编.docx
- 5篇贵州省庆祝第二十个中国记者节座谈会经验交流发言材料汇编.docx
- 在全市人大工作座谈会上的讲话.docx
- 在全市人大系统改革创新工作交流会上的讲话.docx
文档评论(0)