题目
description:
试编写程序,将两棵二叉排序树合并为一棵二叉排序树。
input:
按照先序序列,分两行输入两棵二叉排序树各结点(结点值大于 0),其中-1 表示取消建立子树结点。
output:
按照中序序列输出合并后的二叉排序树。
sample_input:
12 8 4 -1 -1 10 -1 -1 16 13 -1 -1 18 -1 -1
17 6 2 -1 -1 9 -1 -1 24 19 -1 -1 26 -1 -1
sample_output:
2 4 6 8 9 10 12 13 16 17 18 19 24 26
思路
主要就是merge()递归插入,大部分代码和前面的两道题一致
代码
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define MAX 100
using namespace std;
/*存储结构*/
typedef struct BTNode {
int key;
struct BTNode *lc;
struct BTNode *rc;
} BTNode;
BTNode *createBTree();
void insert(BTNode *&T, int p);