网站大量收购独家精品文档,联系QQ:2885784924

測绘软件设计与实现.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
測绘软件设计与实现

实验一:二叉树的基本操作实现及其应用 一、实验目的 1.熟悉二叉树结点的结构和对二叉树的基本操作。 2.掌握对二叉树每一种操作的具体实现。 3.学会利用递归方法编写对二叉树这种递归数据结构进行处理的算法。 4.会用二叉树解决简单的实际问题。 二、实验内容 设计程序实现二叉树结点的类型定义和对二叉树的基本操作。该程序包括二叉树结构类型以及每一种操作的具体的函数定义和主函数。 1. 初始化二叉树. 2. 按先序序列建立二叉树. 3. 判断二叉树是否为空. 4. 先序、中序、后续序列遍历二叉树. 5. 求二叉树的深度. 6. 求二叉树节点的个数. 三、代码清单 #includeiostream using namespace std; #includestdlib.h typedef struct BitNode // 用结构体定义二叉树节点 { char data; struct BitNode *lchild,*rchild; }*BitTree; class C_JDC_BinTree { public: C_JDC_BinTree(){}; //构造函数 ~C_JDC_BinTree(){};//析构函数 void BinTreeInit(BitTree BT);//初始化二叉树,即把树根指针置空 int BinTreeCreat(BitTree BT);//按先序次序建立一个二叉树 void BinTreeEmpty(BitTree BT);//检查二叉树是否为空 void BinTraverse(BitTree BT);//先序序列遍历二叉树 void BinTraversezh(BitTree BT);//先序序列遍历二叉树 void BinTraverseho(BitTree BT);//先序序列遍历二叉树 int BinTreeDepth(BitTree BT);//求二叉树的深度 int BinTreeCount(BitTree BT);//求二叉树中所有结点数 }; //···············公共函数实现部分···················· void C_JDC_BinTree::BinTreeInit(BitTree BT)//初始化二叉树,即把树根指针置空 { BT=(BitTree)malloc(sizeof(BitNode)); BT-data=NULL; cout二叉树初始化成功!endl; } int C_JDC_BinTree::BinTreeCreat(BitTree BT)//按先序次序建立一个二叉树 { char ch; cinch; if(ch==#) BT=NULL; else { if(!(BT=(BitTree)malloc(sizeof(BitNode)))) exit(0); BT-data=ch; BinTreeCreat(BT-lchild); BinTreeCreat(BT-rchild); } return 0; } void C_JDC_BinTree::BinTreeEmpty(BitTree BT)//检查二叉树是否为空 { if(BT-data==NULL) cout是空二叉树!endl; else cout不是空二叉树!endl; } void C_JDC_BinTree::BinTraverse(BitTree BT)//先序序列遍历二叉树 { if(BT!=NULL) { coutBT-data; BinTraverse(BT-lchild); BinTraverse(BT-rchild); } } void C_JDC_BinTree::BinTraversezh(BitTree BT)//中序序列遍历二叉树 { if(BT!=NULL) { BinTraversezh(BT-lchild); coutBT-data; BinTraversezh(BT-rchild); } } void C_JDC_BinTree::BinTraverseho(BitTree BT)//后续序列遍历二叉树 { if(BT!=NULL) { BinTraverseho(BT-lchild); BinTraverseho(BT-rchild); coutBT-data; } } int C_JDC_BinTree::BinTreeDepth(BitTree BT)//求二叉树的深度 { i

文档评论(0)

sa1fs5g1xc1I + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档