《数据结构》实验项目卡-6-二叉树的基本操作.docx
《《数据结构》实验项目卡-6-二叉树的基本操作.docx》由会员分享,可在线阅读,更多相关《《数据结构》实验项目卡-6-二叉树的基本操作.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验6:二叉树的基本操作一、实验目的1 .掌握二叉树的非线性和递归性特点2 .理解二叉树的存储结构3 .掌握二叉树遍历操作二、实验内容1.使用二叉链表,创建一个如图(a)的二叉树。可以用先序、中序和后序方式遍历二叉树并将结点输出,.统计出一个二叉树叶子节点及树的深度。#include #include using namespace std;typedef char Datatype;int ent;struct TNode (Datatype data;TNode* rchild;TNode* Ichild;void CreatTree(TNode* &root) (char ndata;c
2、inndata;if(ndata=#) root二NULL; else (root=new TNode;root-data=ndata;CreatTree(root-lchild);CreatTree(root-rchild);)void preOrderTraver(TNode*& root)先|if(root!=NULL)coutroot-datan H;preOrderTraver(root-lchild); preOrderTraver(root-rchild);)void InOrderTraver(TNode*& root)中(if(root!=NULL) (InOrderTrav
3、er(root-lchild);coutroot-datan n; InOrderTraver(root-rchild);)void posOrderTraver(TNode*& root)/后(if(root!=NULL)(posOrderTraver(root-lchild);posOrderTraver(root-rchild); coutroot-datan n;)int BTHeight(TNode *t)/二叉树的深度int ans = 0;if(t = NULL) return 0;else if(t != NULL)ans += max(ans,max(BTHeight(t-l
4、child),BTHeight(t-rchild)+1); return ans;)int BTLeaff4ode(TNode *t)/二叉树的叶子节点数(if(t != NULL) if(t-lchild 二二 NULL & t-rchild 二二 NULL) (printf(n %cn ,t-data); CT1L+; else(BTLeafNode(t-lchild);BTLeafNode(t-rchild);return ent;)int main()(TNode *root=NULL;cout”请输入该二叉树的先序遍历结果:n;CreatTree(root);coutvv”先序遍历结
5、果 vvendl;preOrderTraver(root);coutendl;cout 中序遍历结果:endl;InOrderTraver(root);coutendl;coutv v”后序遍历结果:“ v vendl;posOrderTraver(root) ;coutendl;printf(n输出二叉树的深度:”);int sum 二 BTHeight(root);cout sum endl;printf(输出二叉树的叶子结点:”);int ans 二 BTLeafNode(root);printf(nn输出二叉树的叶子结点的个数:)cout ans endl;return 0;)运行结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 项目 二叉 基本 操作
限制150内