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;
}

results matching ""

    No results matching ""