多叉树的递归遍历

zxx178239 2015-08-13 09:13:01
有一颗树的结点结构为
struct TreeNode
{
int itemName;
TreeNode *firstChild; //表明当前结点的第一个孩子结点
TreeNode *nextsibling; //表明当前结点的孩子结点之后的兄弟结点
};


如图所示,1号结点表示firstChild,2和3则为nextsibling结点,链接方式如虚线所示

现在我想通过深度优先的方式遍历该结点,该怎么写?

求大神指点,谢谢
...全文
464 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-08-14
  • 打赏
  • 举报
回复
《算法精解(C语言描述)》
fly_dragon_fly 2015-08-14
  • 打赏
  • 举报
回复
dfs(tree *root){
    if(!root) return;
   vis(root);
   for(root=root->child;root;root=root->next) dfs(root);
}
zxx178239 2015-08-14
  • 打赏
  • 举报
回复
已经知道怎么做了,主体代码结构为 for (pHead = pHead->sFirstChild; pHead != NULL; pHead = pHead->sNextSibling) { function(pHead); } 来人散分了
zxx178239 2015-08-14
  • 打赏
  • 举报
回复
引用 1 楼 FightForProgrammer 的回复:
http://blog.csdn.net/magic_feng/article/details/6618206 参考
这种方法我知道,他在树的结构中定义了一个vector来存储孩子结点,我现在基于某种考虑,树的结构不一样

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧