下面的程序就是下面这张表的实现:

程序实现
参考了《大话数据结构》中的定义:

typedef struct CTNode{//孩子结点int child;struct CTNode *next;
} *ChildPtr;typedef struct{//表头结构char data;ChildPtr firstchild;
}CTBox;typedef struct{//树结构CTBox nodes[10]; //结点数组int r, n;//根的位置和结点数
}CTree;

完整代码:

#include <iostream>
using namespace std;typedef struct CTNode{//孩子结点int child;struct CTNode *next;
} *ChildPtr;typedef struct{//表头结构char data;ChildPtr firstchild;
}CTBox;typedef struct{//树结构CTBox nodes[10]; //结点数组int r, n;//根的位置和结点数
}CTree;int main(){CTree tree;tree.r = 0;//根的位置是0tree.n = 10;//10个结点tree.nodes[0].data = 'A';//初始化表头结点tree.nodes[1].data = 'B';tree.nodes[2].data = 'C';tree.nodes[3].data = 'D';tree.nodes[4].data = 'E';tree.nodes[5].data = 'F';tree.nodes[6].data = 'G';tree.nodes[7].data = 'H';tree.nodes[8].data = 'I';tree.nodes[9].data = 'J';ChildPtr child1 = new CTNode;//new孩子结点 ChildPtr child2 = new CTNode;ChildPtr child3 = new CTNode;ChildPtr child4 = new CTNode;ChildPtr child5 = new CTNode;ChildPtr child6 = new CTNode;ChildPtr child7 = new CTNode;ChildPtr child8 = new CTNode;ChildPtr child9 = new CTNode;tree.nodes[0].firstchild = child1;//表头结点和孩子结点连接成表child1->child = 1;child1->next = child2;child2->child = 2;child2->next = nullptr;tree.nodes[1].firstchild = child3;child3->child = 3;child3->next = nullptr;tree.nodes[2].firstchild = child4;child4->child = 4;child4->next = child5;child5->child = 5;child5->next = nullptr;tree.nodes[3].firstchild = child6;child6->child = 6;child6->next = child7;child7->child = 7;child7->next = child8;child8->child = 8;child8->next = nullptr;tree.nodes[4].firstchild = child9;child9->child = 9;child9->next = nullptr;tree.nodes[5].firstchild = nullptr;tree.nodes[6].firstchild = nullptr;tree.nodes[7].firstchild = nullptr;tree.nodes[8].firstchild = nullptr;tree.nodes[9].firstchild = nullptr;cout << tree.nodes[0].firstchild->next->child<< endl;//输出0的第二个孩子的值cout << tree.nodes[3].data << endl;//输出第四个表头的datadelete child1;//删除在堆上的分配空间delete child2;delete child3;delete child4;delete child5;delete child6;delete child7;delete child8;delete child9;return 0;
}

数据结构——树的存储结构孩子表示法相关推荐

  1. 树的存储结构-孩子兄弟表示法

    实现:用二叉链表作树的存储结构,链表中每个结点的两个指针域分别指向其第一个孩子结点和下一个兄弟结点 代码如下: #include <iostream> using namespace st ...

  2. 树的存储结构-孩子链表

    特点:找孩子容易,找双亲难 代码如下: #include <iostream> using namespace std; typedef char ElemType; #define MA ...

  3. 树的存储结构-双亲表示法

    特点:找双亲容易,找孩子难 代码如下: #include <iostream> using namespace std; typedef char ElemType; #define MA ...

  4. 数据结构-—树的存储结构

    建议将思维导图保存下来观看,或点击这里在线观看

  5. 数据结构之树的存储结构

    数据结构之树的存储结构 思维导图 双亲表示法: 增 删 孩子表示法: 孩子兄弟表示法:(重要) 森林和二叉树的转化 思维导图 双亲表示法: 增 增加M.L节点 删 删除G节点(叶节点) 删除(非叶节点 ...

  6. 【数据结构】树的存储结构(C语言)

    文章目录 双亲表示法 孩子表示法 孩子兄弟表示法 利用顺序存储结构和链式存储结构的特点,完全可以实现对树的存储结构的表示.介绍三种不同的表示方法:双亲表示法,孩子表示法,孩子兄弟表示法. 双亲表示法 ...

  7. 树的存储结构 - 数据结构和算法41

    树的存储结构 让编程改变世界 Change the world by program 树的存储结构 不好意思哈,这节课又需要大家搞脑子了.对于知识,你理解的越多,需要记住的就越少! 上节课我们简单的介 ...

  8. 树的存储结构以及实现代码

    树的存储结构以及实现代码   1.首先假设有一个树如下: 2.双亲表示法 我们假设以一组连续空间存储树的结点,在每个结点中,附设一个指示器指示其双亲结点到链表中的位置.这样,每个结点除了知道自己是谁以 ...

  9. 数据结构 二叉树的存储结构_线程二叉树| 数据结构

    数据结构 二叉树的存储结构 线程二叉树 (Threaded Binary Tree ) A binary tree can be represented by using array represen ...

最新文章

  1. 【ACM】杭电OJ 2020(排序)
  2. android 创建3个按钮,【记录】继续尝试给Android程序的右上角的ActionBar中添加三个点的选项按钮...
  3. DL框架:主流深度学习框架(TensorFlow/Pytorch/Caffe/Keras/CNTK/MXNet/Theano/PaddlePaddle)简介、多个方向比较、案例应用之详细攻略
  4. Java这些高端技术只有你还不知道,薪资翻倍
  5. java三年,Java开发三年,你不得不了解的JVM(一)
  6. TurboMail独家提供邮件服务器与Outlook间的地址簿同步插件
  7. Golang之Channel的理解与应用
  8. RP2836 板卡信息标识
  9. 安卓3d游戏引擎_3D球闯关游戏-3D球闯关游戏安卓官方版预约 v1.2.5
  10. R语言︱文本挖掘套餐包之——XML+SnowballC+tm包
  11. React Elements vs React Components
  12. spyder设置显示编码_CNC机床参数的设置及报警解除,赶紧收藏吧!
  13. 批量修改mac系统文件的可读写权限
  14. 服务器安装配置lldp协议
  15. IT6302 电源后面板的 DB9 接口输出为 TTL 电平,您需要通过附件电平转换后才可连接到 PC 机的串口上
  16. 网页版即时通讯聊天工具,支持主流浏览器,无需安装即可使用
  17. 王者荣耀英雄战力 最低战区查询
  18. Microsoft SQL Server 2000的版本区别及选择
  19. 如何让CDC类USB设备批量接收64字节以上数据
  20. mysql函数ceil和ceiling

热门文章

  1. rbac权限管理5张表_Laravel5实现RBAC权限管理
  2. Windows10远程桌面连接提示:出现身份验证错误,要求的函数不受支持
  3. Arm学习总结之 32位和64位寄存器
  4. DataSet and DataStream
  5. 随机抽样一致算法(RANSAC)理论介绍和程序实现
  6. vhdl语言入门_从当初汇编、C语言入手,到如今FPGA开发已然十年,总结出“三多”!...
  7. js 判断一个字符在字符串中出现的次数 - 代码篇
  8. syntaxhighlighter 代码高亮 - 插件化
  9. discuz仿手游控游戏论坛商业版网站模板
  10. 最近很火的人生重开模拟器HTML网页源码