您现在的位置是:主页 > news > 学校网站建设怎么样/苹果自研搜索引擎或为替代谷歌

学校网站建设怎么样/苹果自研搜索引擎或为替代谷歌

admin2025/5/1 11:39:42news

简介学校网站建设怎么样,苹果自研搜索引擎或为替代谷歌,徐州地区网站建设,做网站需要提供什么资料子节点计数 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一棵树的前序和中序序列,求以指定关键字节点为根的子树的节点个数。输入 第一行包含一个整数 T(T < 20),表示有 T 组测试数据; 每组测试数据第一行为整数 N(1 < N < 50),表示树的总结点数;接下来…

学校网站建设怎么样,苹果自研搜索引擎或为替代谷歌,徐州地区网站建设,做网站需要提供什么资料子节点计数 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一棵树的前序和中序序列,求以指定关键字节点为根的子树的节点个数。输入 第一行包含一个整数 T(T < 20),表示有 T 组测试数据; 每组测试数据第一行为整数 N(1 < N < 50),表示树的总结点数;接下来…

 

子节点计数

Time Limit: 1000MS    Memory limit: 65536K

题目描述

给定一棵树的前序和中序序列,求以指定关键字节点为根的子树的节点个数。

输入

第一行包含一个整数 T(T <= 20),表示有 T 组测试数据;
每组测试数据第一行为整数 N(1 <= N <= 50),表示树的总结点数;接下来两行为前序和中序序列;第三行有正整数 M( 1 <= M <= 30),表示有 M 条查询; 最后 M 行有M 个整数,表示查询以该整数为关键字的节点。
输入保证前序和中序序列合法且任意两个节点关键字不同。

输出

每组测试数据有 M 行,每行有一个整数表示每条查询的节点总数。

示例输入

1
5
23 2 67 59 98
2 23 59 67 98
4
23
2
67
59

示例输出

5
1
3
1

这是前几天选拔赛的一个题,当时就是这个思路,但是调试结果不对,不知道哪里手误了。。今天又这样写了一遍,AC果断姗姗来迟了。。

 

#include <stdio.h>
#include <stdlib.h>
struct node
{struct node *left, *right;int data;
};
void build(struct node* &p, int len, int s1[], int s2[])
{if(len <= 0)return;p = (struct node*)malloc(sizeof(struct node));p->data = s1[0];p->left = p->right = NULL;int m = 0;while(s1[0] != s2[m])m++;build(p->left, m, s1+1, s2);build(p->right, len-m-1, s1+m+1, s2+m+1);
}
int sum;
void preorder(struct node* &root)
{if(root == NULL)return;sum++;preorder(root->left);preorder(root->right);
}
void search(int key, struct node* &p)
{if(p == NULL)return;if(p->data == key){preorder(p);return;}else{search(key, p->left);search(key, p->right);}
}
int main()
{int t, n, m, x, a[60], b[60];scanf("%d", &t);while(t--){scanf("%d", &n);for(int i = 0; i < n; i++)scanf("%d", &a[i]);for(int i = 0; i < n; i++)scanf("%d", &b[i]);struct node *root;build(root, n, a, b);scanf("%d", &m);while(m--){scanf("%d", &x);sum = 0;search(x, root);printf("%d\n", sum);}}return 0;
}

 

转载于:https://www.cnblogs.com/wolfred7464/archive/2013/05/02/3055377.html