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

假设树的存储结构采用孩子兄弟表示法,写出树的先序遍历算法。该算法的函数头为:

假设树的存储结构采用孩子兄弟表示法,写出树的先序遍历算法。该算法的函数头为:

守候你守候我 2022-08-04 19:15:04
voidPreOrderTree(TNode*root,void (*Visit)()),树的孩子兄弟表示法数据类型定义为:typedefstructtnode{DataTypedata;structtnode*firstchild,*nextsibling;}TNode,*Tree;
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

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

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;}}

扩展资料

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

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

1、节点的值;

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

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

用 C 语言代码表示节点结构为:

#define ElemType char

typedef struct CSNode{

    ElemType data;

    struct CSNode * firstchild,*nextsibling;

}CSNode,*CSTree;


查看完整回答
反对 回复 2022-08-08
  • 1 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号