- 8
- 0
- 约1.27万字
- 约 12页
- 2018-04-01 发布于江西
- 举报
二叉数实习报告,数据结构
二叉数实习报告
实习题:
编写一个程序,确定二叉树的特征。如:每个节点的层次,从根到该节点的枝长(路径长度),子孙的个数及祖先的个数。每个节点在前序,中序,堠许中访问的序号。
设计:
要存储每个节点的相关信息,采用结构的数组较为合适。因二叉树的节点数可由函数求得, 故采用顺序数组不必担心会浪费空间或空间不足。
存储结构:
struct TreeMark
{
Type data; const BinaryNodeType* Address;
int Floor; int Children;
int Branch; int Ancestor;
int PreorderNumber;
int InorderNumber;
int PostorderNumber;
};//记录节点的所有信息
templateclass Type
TreeMarkType* GetTreeMark(BinaryTreeType R)
{
int N = R.GetRoot()-Size(R.GetRoot());
TreeMarkType* Tree = new TreeMarkType[N];
PostorderType Post(R);
Post.First();
int i = 0;
while(Post.operator+())
{
Tree[i].Address = Post.GetCurrent(); //节点地址
Tree[i].PostorderNumber = i+1; //节点后序中访问序号
Tree[i].data = Post.operator()(); //节点值
Tree[i].Floor = Post.StackSize()+1; //节点层次
Tree[i].Branch = Post.StackSize(); //节点枝长
Tree[i].Ancestor = Post.StackSize(); //节点祖先数
Tree[i].Children = Post.GetCurrent()-Size(Post.GetCurrent())-1; //节点子孙数
i++;
Post.operator++();
}
PreorderType Pre(R);
Pre.First();
int j = 1;
while(Pre.operator+())//记录结点在前序遍历的位置
{
i = 0;
while(Tree[i].Address != Pre.GetCurrent()) i++;
Tree[i].PreorderNumber = j;
j++;
Pre.operator++();
}
InorderType In(R);
In.First();
j = 1;
while(In.operator+())//记录结点在中序遍历的位置
{
i = 0;
while(Tree[i].Address != In.GetCurrent()) i++;
Tree[i].InorderNumber = j;
j++;
In.operator++();
}
for(i=0; iN; i++)//输出节点各信息
{
coutdata Tree[i].data Address Tree[i].Addressendl;
coutFloors Tree[i].Floor Ancestor Tree[i].Ancestorendl;
coutBranch Tree[i].Branch Children Tree[i].Childrenendl;
coutPreorderNumber Tree[i].PreorderNumberendl;
coutInorderNumberTree[i].InorderNumberPostorderNumber”
Tree[i].PostorderNumberendl;
coutendl;
}
return Tree;
}
算法思想:
申请一个结构的数组,(大小为二叉树的节点数),对二叉数进行后序遍历, 利用非递归后序遍历的特点,(找到指定节点后,此时在栈中的节点是该节点的所有祖先),算出该节点的层次,祖先数,路径长。以当前节点为根节点,调用 Size()函数, 可计算出该节点的子孙数。然后进行中序和前序遍历,将访问序号记录到对应的节点结构中。
调用关系:
实习任务在函数数TreeMarkType* GetTreeMark(BinaryTreeType R)中全部
您可能关注的文档
- 丰维工厂TPM项目实施对策.ppt
- 丰田生产方式的要素.ppt
- 丰田 企业运营-方针管理课件_图文.ppt
- 中餐服务 - 食品伙伴网(原食品伴侣网)关注食品安全,探讨食品技术.ppt
- 丰达手机游戏介绍1.ppt
- 串联式稳压电源设计.doc
- 串行SPI接口应用.ppt
- 串行通讯是CPU与外部通讯的基本方式之一,.ppt
- 临床使用中药监督评价.doc
- 临床医学诊断学疼痛.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 宝城期货-原油2026年度报告-油海浮沉浪几重,掣鲸博弈破苍穹.pdf VIP
- 学堂在线 雨课堂 学堂云 临床中成药应用 综合考试答案.docx VIP
- 2018年1月13日山东济南事业单位考试《公共基础知识》(客观题部分).docx
- 食品生物技术-绪论.pptx VIP
- 2025年青岛职业技术学院单招笔试英语试题库含答案解析.docx VIP
- 中外建筑史7-近现代建筑.pptx VIP
- 2025年云南省中考生物真题(原卷).pdf
- 高中奥林匹克物理竞赛解题方法集.pdf VIP
- 梁小民西方经济学基础教程(第三版)第01章.ppt VIP
- 小学英语语法代词省公开课一等奖全国示范课微课金奖课件.pptx VIP
原创力文档

文档评论(0)