采取的是顺序存储结构 数组模式

#include<iostream>
using namespace std;
#define MAXTREE 25     //定义树的最大结点数
//#define NULL 0
typedef char element;
typedef int Status;
//孩子双亲数组表示法
typedef struct TreeData
{int parent;     //定义每个结点双亲所在位置的下标element data;     //每个结点存放的数据
}TreeData;typedef struct PTree
{TreeData data[MAXTREE];     //树的结点数组 用TreeData 定义 所以这个数组的结构里有parent  和  dataint r;     //根结点的下标int n;    //当前树中结点的数目
}PTree;//构造空树——初始化未定//构造树
Status GreatTree(PTree &tree)
{cout << "输入双亲表示法中树根的位置" << endl;//先输入树根所在位置  一般为-1  也有为0的cin >> tree.r;cout << "输入双亲表示法中树结点个数" << endl;//cin >> tree.n;cout << "输入双亲表示法中树结点结构" << endl;for (int i = 0; i<tree.n; i++){cin >> tree.data[i].data >> tree.data[i].parent;//按照顺序输入内容data和其双亲位置}cout << "index" << "\t" << "data" << "\t" << "parent" << endl;//输出界面规范化for (int i = 0; i<tree.n; i++){cout << i << "\t" << tree.data[i].data << "\t" << tree.data[i].parent << "\t" << endl;}return 0;
}//清空树
Status ClearTree(PTree &tree)
{int i;if (tree.n >= 0) {for (i = 0; i <= tree.n; i++){tree.data[i].data =' ';}cout << "树清空" << endl;}else{cout << "树原本不存在" << endl;}return 0;
}//若数为空树返回提示,否则按普通双亲输出树
Status OutputTree(PTree &tree)
{int i;if (tree.n > 0){for (i = 0; i <tree.n; i++){cout <<"树存在,其结构为: "<<endl<< tree.data[i].data << '\t'<<tree.data[i].parent << endl;}}else{cout << "这树不存在,无法返回树的内容" << endl;}return 0;
}//求树的深度 本例根节点位置为0  根节点层数为1 所以层数比深度高度多1
Status DepthTree(PTree &tree)
{int i;}
int main()
{PTree tree,bigtree,smalltree;//生成树GreatTree(tree);int c;cout << "是否需要清空树,如是请输入0,不销毁请输入1" << endl;cin >> c;if (c == 0)ClearTree(tree);elsereturn 1;cout << "再次生成一棵树:bigtree" << endl;GreatTree(bigtree);cout << "输出一棵树:tree" << endl;OutputTree(tree);cout << "输出一棵树:bigtree" << endl;OutputTree(bigtree);//返回树的深度    若结点是非根结点并返回其双亲,否则是根结点其结果为空    若结点是非叶子结点,返回左孩子   若结点有右兄弟,返回其右兄第    插入一颗树    删除一棵树return 0;
}/*A -1
B 0
C 1
D 2
E 2
F 1
G 0
H 6
I 0
J 8
K 8
L 8
O 9
P 9
M 9
N 9*/

N叉树之孩子双亲表示法|数据结构——树|C++实现

数据结构——树 | 孩子双亲数组表示法相关推荐

  1. 数据结构——树|N叉树之孩子双亲表示法——顺序存储结构+链表

    N叉树之孩子双亲表示法 左边是表头结构,相当于一个顺序存储,开始只做了一个顺序结构,发现诸多不便之处,随即开始孩子双亲表示法的学习,这个表示法,需要定义三个结构: 孩子结构 表头结构 树的结构 按理说 ...

  2. 数据结构与算法(6-1)树的存储(树的双亲表示、树的孩子表示及树的双亲孩子表示)

    目录 一.树的双亲表示 存储结构 总代码 二.树的孩子表示 存储结构 总代码 三.树的双亲孩子表示 存储结构 一.树的双亲表示 存储结构 采用结构体数组的形式存储数据. (根结点parent=1:它没 ...

  3. 2021秋季《数据结构》_EOJ 1063.树的双亲存储法(parent+child / parent)

    题目 前面介绍了树的链式存储结构,那么如何用顺序存储来存储一棵树呢?在顺序存储时,我们除了存储每个结点值外,还要存储树中结点与结点之间的逻辑关系(即双亲与孩子结点之间的关系).下面介绍树的双亲存储法. ...

  4. (数据结构)树的双亲表示法

    树的双亲表示法 此前写过二叉树的顺序存储和链式存储,此篇文章将介绍普通树是如何存储的... 通常,存储具有普通树结构数据的方法有 3 种: 双亲表示法 孩子表示法 孩子兄弟表示法 而本篇文章将优先介绍 ...

  5. 使用双亲指针表示法存储一棵树,可以方便解决下列哪个应用问题( )

    使用双亲指针表示法存储一棵树,可以方便解决下列哪个应用问题( C ) A. 最短路径 B. 树的遍历 C. 等价类 D. 优先级队列 等价类问题通过并查集算法实现. 等价类采用存储结构为双亲节点表示法 ...

  6. 【数据结构笔记08】哨兵查找、二分查找、树、儿子-兄弟表示法、二叉树的引子

    本次笔记内容: 3.1.1 引子(顺序查找) 3.1.2 引子(二分查找例子) 3.1.3 引子(二分查找实现) 3.1.4 树的定义和术语 3.1.5 树的表示 文章目录 树的引子:查找 查找(Se ...

  7. js 数组 实现 完全树_算法和数据结构 | 树状数组(Binary Indexed Tree)

    本文来源于力扣圈子,作者:胡小旭.点击查看原文 力扣​leetcode-cn.com 树状数组或二叉索引树(英语:Binary Indexed Tree),又以其发明者命名为 Fenwick 树.其初 ...

  8. 数据结构——树状数组

    我们今天来讲一个应用比较广泛的数据结构--树状数组 它可以在O(nlogn)的复杂度下进行单点修改区间查询,下面我会分成三个模块对树状数组进行详细的解说,分别是树状数组基本操作.树状数组区间修改单点查 ...

  9. Kiner算法刷题记(二十一):字典树与双数组字典树(数据结构基础篇)

    字典树与双数组字典树(数据结构基础篇) 系列文章导引 系列文章导引 开源项目 本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star. GitHub传送门:Kiner算法算题 ...

最新文章

  1. 利用Flutter写一个跨平台的果核APP(4)——数据存储
  2. WPF 与Surface 2.0 SDK 亲密接触 - ScatterView 数据绑定篇
  3. Python--简单的端口扫描脚本
  4. POJ 1745 Divisibility DP
  5. 24 种设计模式之 观察者模式
  6. [loss]Triphard loss优雅的写法
  7. [html]window.open 使用示例
  8. CRF++ Source code reading experience
  9. 山东大学网络考试的计算机试题及答案,专科 计算机基础 山东大学网络教育考试模拟题及答案.doc...
  10. win7 专业版 破解教程
  11. 将一个大写英文字母转换为小写输出 (12 分) - PTA
  12. GoldenDict启动进入后台 Ubuntu
  13. ArcGisJS实现地图常用工具条、距离测量和面积测量(非官方实例)
  14. java 获取天气_获取免费天气(Java抓取百度天气)
  15. simplify-js 降低曲线拟合使用的点数
  16. oppo手机在哪看电池寿命
  17. ensp之 广域网的串口封装协议
  18. 学习表——受任于败军之际,奉命于危难之间(2.20--2.26)
  19. 2022-10-11(一、远程命令执行和系统命令执行)
  20. 操作系统多线程例子--吃水果问题

热门文章

  1. NAND FLAASH基础
  2. 编程语言 vs. 二次元美女
  3. 002 - new javascript 基础
  4. 基于JAVA SSM框架的学校家长互动学习平台
  5. 星舰到底要实现什么壮志?火星移民,月球旅行,亦是地球轨道运输
  6. 云服务器系统一键安装,云服务器系统一键安装
  7. spring容器里存取bean
  8. docker之daemon.json文件
  9. riscv-gnu-toolchain工具链的安装
  10. tring转换成Integer numberformatexception 分析