Pagini recente » Cod sursa (job #2143747) | Monitorul de evaluare | Cod sursa (job #1896168) | Cod sursa (job #2304428) | Cod sursa (job #1849697)
#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);
}
//--------------------------------------------