习题4-二叉树左右子树交换.c

来自「数据结构各章实验源代码; 数据结构实验源代码」· C语言 代码 · 共 45 行

C
45
字号
#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 + =
减小字号Ctrl + -
显示快捷键?