m0_62660587 2022-11-25 19:28 采纳率: 77.8%
浏览 16
已结题

C语言二叉树类似DFS的先序遍历

已知图的深度优先搜索类似于二叉树的先序遍历,请根据非递归DFS算法,写出下列二叉树先序遍历非递归算法的函数体。注意:先序遍历的结点次序应与递归形式算法的结点次序完全一样。
void PreOrder_NonRecursive(BiTree root)
{ SeqStack S; BiTree p; //不能再定义新变量
if (root==NULL) return;
InitStack(&S); Push(&S,root);
while()

非递归DFS算法如下:

img

  • 写回答

6条回答 默认 最新

  • 语言-逆行者 2022-11-25 19:54
    关注
    获得2.25元问题酬金

    参考链接:
    http://t.csdn.cn/44fFq

    
    void preorder(bitree *t)//前序遍历的非递归算法
    {
     bitree *temp = t;//定义一个树节点,用它来遍历
     while(temp != NULL || s.top != 0)
     {
      while(temp != NULL)//先遍历左孩子,并输出。
      {
       printf("%4d",temp->data);
       push(temp);
       temp = temp->lchild;
      }
      if(s.top != 0)//当左孩子遍历完后,取栈顶,找右孩子。此时循环还没有结束,再遍历它的左孩子,直至孩子全部遍历结束。
      {
       temp = pop();
       temp = temp->rchild;
      }
     }
     printf("\n");
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 创建了问题 11月25日

悬赏问题

  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败