Pagini recente » Cod sursa (job #1712073) | Cod sursa (job #712887) | Cod sursa (job #2363975) | Cod sursa (job #1050362) | Cod sursa (job #1986808)
#include<cstdio>
using namespace std;
#define left 0
#define right 1
struct bstNode
{
int data;
bstNode *son[2];
bstNode(int _data = 0)
{
data = _data;
son[left] = son[right] = NULL;
}
};
class BST
{
private:
bstNode *root;
void dfs(bstNode *parent)
{
if(parent == NULL) return;
dfs(parent -> son[left]);
printf("%d ", parent -> data);
dfs(parent -> son[right]);
}
public:
BST()
{
root = NULL;
}
void insert(int data)
{
bstNode *newNode = new bstNode(data);
if(root == NULL)
{
root = newNode;
return;
}
for(bstNode *current = root;;)
{
bool i = data > current -> data;
if(current -> son[i] != NULL) current = current -> son[i];
else
{
current -> son[i] = newNode;
return;
}
}
}
void inorder()
{
dfs(root);
printf("\n");
}
};
#undef left
#undef right
int main() {
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
int N, number;
BST input;
scanf("%d", &N);
for(int i = 1; i <= N; i++)
{
scanf("%d", &number);
input.insert(number);
}
input.inorder();
return 0;
}