文章

9

粉丝

0

获赞

39

访问

1.2k

头像
二叉排序树 - 华科 题解:C
P1396 华中科技大学
发布于2026年3月15日 17:27
阅读数 179

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct node {
	int data;
	struct node *left;
	struct node *right;
} Node;

Node *insert_node (Node *root, int val, int parent_val) {
	if (root == NULL) {
		printf("%d\n", parent_val);
		root = (Node *)malloc(sizeof(Node));
		root->data = val;
		root->left = NULL;
		root->right = NULL;
		return root;
	}
	if (val < root->data) root->left = insert_node(root->left, val, root->data);
	else if (val > root->data) root->right = insert_node(root->right, val, root->data);
	
	return root;
}

Node *build_tree (int *arr, int len) {
	Node *root = NULL;
	for (int i = 0; i < len; i++) {
		root = insert_node(root, arr[i], -1);
	}
	return root;
}

void free_tree (Node *root) {
	if (root == NULL) return;
	free_tree(root->left);
	free_tree(root->right);
	free(root);
}

int main () {
	int N;
	while (scanf("%d", &N) == 1) {
...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发