为了账号安全,请及时绑定邮箱和手机立即绑定

你好,假设树的存储结构采用孩子兄弟表示法,该怎么写出树的先序遍历算法?

你好,假设树的存储结构采用孩子兄弟表示法,该怎么写出树的先序遍历算法?

慕尼黑5688855 2022-03-20 04:00:46
假设树的存储结构采用孩子兄弟表示法,写出树的先序遍历算法。该算法的函数头为:voidPreOrderTree(TNode*root,void (*Visit)()),树的孩子兄弟表示法数据类型定义为:typedefstructtnode{DataTypedata;structtnode*firstchild,*nextsibling;}TNode,*Tree;
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

以下两种描述形式之一均可:

void PreOrderTree(TNode *root, void (*Visit)())

{ p= root; if(p){Visit(p-> data);

PreOrderTree(p- > firstchild);

PreOrderTree(p-> nextsibling) ;}}

或者:

void PreOrderTree(TNode *root, void ( * Visit)())

{ p= root;

while(p | | ! StackEmpty(s)){

while(p) {Visit(p- > data) ;Push(s,p) ;p=p- > firstchild;}

p= Pop(s);p= p-> nextsibling;}}

//img1.sycdn.imooc.com//623ac4b80001a99003660235.jpg

扩展资料

孩子兄弟表示法,采用的是链式存储结构,其存储树的实现思想是:从树的根节点开始,依次用链表存储各个节点的孩子节点和兄弟节点。

因此,该链表中的节点应包含以下 3 部分内容:

1、节点的值;

2、指向孩子节点的指针;

3、指向兄弟节点的指针;


查看完整回答
反对 回复 2022-03-23
  • 1 回答
  • 0 关注
  • 232 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信