昏昏暗暗 2022-09-26 19:57 采纳率: 81%
浏览 19
已结题

二叉树递归函数的递归遍历问题?

struct Node
{
    char data;//数据域
    struct Node* LChild;//左子树指针
    struct Node* RChild;//右子树指针
};
struct Node* createNode(char data)  //创建节点:
{
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    
    if (newNode == NULL)
    {
        return NULL;
    }
    else
    {
        newNode->data = data;
        newNode->LChild = NULL;
        newNode->RChild = NULL;
        return newNode;
    }

}
//写一个插入节点
void insertNode(struct Node* parent, struct Node* LChild, struct Node* RChild)

{
    parent->LChild = LChild;
    parent->RChild = RChild;
}
void preorder(struct Node* root) //递归函数
{
    //先序变量 根左右
    if (root != NULL)
    {
        printf("%c", root->data);//数据根部  输出这里是   
        preorder(root->LChild);//直接往左子树边走
        preorder(root->RChild);//直接往右子树边走
    }
}
int main(void)
{
    struct Node* A = createNode('A');
    struct Node* B = createNode('B'); 
    struct Node* C = createNode('C');
    struct Node* D = createNode('D');
    struct Node* E = createNode('E');
    struct Node* F = createNode('F');
    struct Node* G = createNode('G');
    //====将上边的data数据连接起来后下边输出  前序写法
    insertNode(A, B, C); 
    insertNode(B, D, E); 
    insertNode(C, NULL, F);
    insertNode(F, G, NULL);    
    //=============================输出遍历结果
    printf("\n前序遍历");
    preorder(A); //A是树根
    return 0;

前序遍历图:

img


反汇编中:

img


请问反汇编中的递归原理
还有能讲解一下C++中左子树和右子树是怎么递归的步骤吗?最好有视频看麻烦了。

  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2022-09-26 20:14
    关注

    树的递归和文件夹类似,一个文件夹下面,有文件夹和文件,没打开一层,都是一个形式。树也是一样,每个树根下面,都是叶子、左子树和右子树。
    所以,我们只需要考虑计算某个跟节点下面的叶子数据,然后递归调用左子树和右子树即可。因为左右子树本身也是跟节点。最后将三个结果相加,就是某个跟节点的计算结果。
    其实递归想明白了,挺容易的。有时候递归容易忘的是递归的返回值接收,以及先递归左右子树,还是先处理叶子。这就形成了先序、中序和后序遍历,大概是这样子。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月6日
  • 已采纳回答 9月28日
  • 创建了问题 9月26日

悬赏问题

  • ¥15 关于九十度混合耦合器信号分析问题
  • ¥15 Cesm如何关闭不用的模块呢
  • ¥15 vue2两层数据导出为excle
  • ¥15 有人能帮我做一下这个项目吗
  • ¥15 网络上传速率比下载速率高
  • ¥15 (标签-游戏|关键词-网页游戏)
  • ¥15 这个咋搞🥹可能需要手把手教
  • ¥15 接口和关键字的问题,多选
  • ¥15 yolov5s模型下载就卡住,没有运行结果
  • ¥20 androidstudio工具问题