7-4 是否同一棵二叉搜索树 (25分)
开始是卡在怎么读数据上(果然还是读数据可怕,好几次都是卡在这里??),中间有1、2天没有再碰这道题。然后今天想着不能再拖了,就硬着头皮解出来了。
想法:
一开始是想着不用构建树,用数组处理的,但是左思右想没有思路。
然后我就构建了树的结构,用前序遍历的方法来比较树是不是相同。
所以整体上来看思路比较简单。
AC代码:
/**
* 这道题的主要思路是:
* 就是让比结点大的数的插入顺序相同,比结点小的数的插入顺序相同。
* 但是感觉上面的比较麻烦,我好像写不出来??
* 所以我把树建立了起来,然后用遍历的方法比较是不是相同
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Leaves *Tree;
struct Leaves{
int Data;
Tree left,right;
};
//函数
int **ReadData(int n,int l); //读取数据
Tree CreateNode(int item); //创造节点
Tree Insert(Tree q,int item); //插入
void PreTraverse(Tree q); //前序遍历
int m = 0;
int vec1[100] = {
0};
int vec2[100] = {
0};
int main()
{
int n,l;
int **arr;
int flag = 1;
while(1){
Tree front,rear;
scanf("%d"