📄 习题4-二叉树左右子树交换.c
字号:
#include "datastru.h"
#include <stdio.h>
#include <malloc.h>
#include "二叉树.c"
BTCHINALR *change(BTCHINALR *bt)
/*二叉树左右子树交换递归算法*/
{ BTCHINALR *p;
if(bt!=NULL)
if(bt->lchild!=NULL || bt->rchild!=NULL)
{p=(BTCHINALR*)malloc(sizeof(BTCHINALR));
p->data=bt->data;
p->rchild=NULL;
p->lchild=bt->lchild;
bt->lchild=bt->rchild;
bt->rchild=p->lchild;
bt->lchild=change(bt->lchild);
bt->rchild=change(bt->rchild);
}
return bt;
}
void inorder(BTCHINALR *bt)
/*中序遍历二叉树(递归算法)*/
{if(bt != NULL)
{ inorder(bt->lchild);
printf("%c ",bt->data);
inorder(bt->rchild); }
}
main()
{
BTCHINALR *bt;
bt=createbt();
printf("\n 二叉树左右子树交换前中序遍历: ");
inorder(bt);
printf("\n");
bt=change(bt);
printf("\n 二叉树左右子树交换后中序遍历: ");
inorder(bt);
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -