uva 12347
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
typedef struct NODE{
struct NODE * parent;
struct NODE * left;
struct NODE * right;
int data;
}node;
typedef struct NODE* pnode;
void post(pnode a){
if(a!=NULL){
post(a->left);
post(a->right);
printf("%d\n",a->data);
}
}
int main(){
pnode root = NULL;
int temp;
while(scanf("%d",&temp)!=EOF){
pnode newnode = (node *)malloc(sizeof(node));
newnode->data=temp;
newnode->parent=NULL;
newnode->left=NULL;
newnode->right=NULL;
if(root==NULL){
root=newnode;
}else{
pnode tre;
tre=root;
while(1){
//printf("hi\n");
if(temp>tre->data){
if(tre->right == NULL){
newnode->parent = tre;
tre->right = newnode;
break;
}else{
tre=tre->right;
}
}else{
if(tre->left ==NULL){
newnode->parent=tre;
tre->left = newnode;
break;
}else{
tre=tre->left;
}
}
}
}
}
post(root);
return 0;
}