Cod sursa(job #1849697)

Utilizator 1475369147896537415369Andrei Udriste 1475369147896537415369 Data 17 ianuarie 2017 19:34:13
Problema Sortare prin comparare Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 1.13 kb
#include<stdio.h>
#include<stdlib.h>
//--------------------------------------------
struct BstNode{
	int data;
	struct BstNode* left;
	struct BstNode* right;
};
struct BstNode* root = NULL;

struct BstNode* GetNode(int data) {
	struct BstNode* newNode = (struct BstNode*)malloc(sizeof(struct BstNode));
	newNode -> data = data;
	newNode -> left = newNode -> right = NULL;
	return newNode;
}
struct BstNode* Insert(struct BstNode* root, int data) {
	if(root == NULL) {
		root = GetNode(data);
	}
	else if(data <= root->data) {
		root -> left = Insert(root -> left, data);
	}else{
		root -> right = Insert(root -> right, data);
	}
	return root;
}
void DFS_inorder(struct BstNode* root) {
	if(root == NULL) return;

	DFS_inorder(root -> left);
	printf("%d ",root -> data);
	DFS_inorder(root -> right);
}
//--------------------------------------------
int main() {

freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);

int N, i, x;

scanf("%d", &N);

for(i=0; i<N; i++){
    scanf("%d", &x);
    root = Insert(root, x);
}
DFS_inorder(root);
}
//--------------------------------------------