# Posted By

sam085 on 01/06/11

# Statistics

Viewed 463 times
Favorited by 0 user(s)

# binarno stablo - polje

/ Published in: C++

Copy this code and paste it in your HTML
`#include <stdlib.h>#define ARRAYSIZE 1000000 struct element {    int label;    int used;}; typedef struct bt {    struct element elements[ARRAYSIZE];} *btree; typedef int node; btree init(int x){    btree myBTree;    int i;     myBTree = (btree)malloc(sizeof(struct bt));    for(i = 1; i < ARRAYSIZE; i++){        if(i == 1)        {                myBTree->elements[i].label = x;                myBTree->elements[i].used = 1;        }        else        {            myBTree->elements[i].used = 0;        }    }     return myBTree;} node root(btree T){    return 1;} node parrent(node n, btree T){    if(n == 1)    {        printf("Roditelj korjenskog cvora ne postoji\n");        return -1;    }     if(T->elements[n].used == 0)    {        printf("Ne postoji\n");        exit(1);    }     return (n/2);} node leftChild(node n, btree T){    node child;    child = n * 2;    if (child > ARRAYSIZE-1)    {        printf("\noverflow\n");        return -1;        //exit(1);    }     if(T->elements[child].used == 0)    {        return -1;    }    else    {        return child;    }} node rightChild(node n, btree T){    node child;    child = (n * 2) + 1;    if (child > ARRAYSIZE - 1)    {        printf("\noverflow\n");        return -1;        //exit(1);    }     if(T->elements[child].used == 0)    {        return -1;    }    else    {        return child;    }} int label(node n, btree T){    if(T->elements[n].used == 0)    {        printf("ne postoji\n");        return -1;    }    else    {        return T->elements[n].label;    }} void changeLabel(int x, node n, btree T){    if(T->elements[n].used == 0)    {        printf("ne postoji\n");        return;    }    else    {        T->elements[n].label = x;    }} void createLeft(int x, node n, btree T){    node child;    child = n * 2;    if (child > ARRAYSIZE - 1)    {        printf("\noverflow\n");        return;     }     if(T->elements[child].used == 1){        printf("lijevi vec postoji\n");        return;    }    else    {        T->elements[child].used = 1;        T->elements[child].label = x;    }} void createRight(int x, node n, btree T){    node child;    child = (n * 2) + 1;    if (child > ARRAYSIZE - 1)    {        printf("\noverflow\n");        return;    }    if(T->elements[child].used == 1)    {        printf("desno vec postoji\n");        return;    }    else    {        T->elements[child].used = 1;        T->elements[child].label = x;    }} void deleteN(node n, btree T){    if(n == -1)        return;     deleteN(leftChild(n, T), T);     T->elements[n].used=0;     deleteN(rightChild(n, T), T);} void deleteNode(node n, btree T ){    if(parrent(n, T) == -1){        printf("Korjen se nemoze obrisat\n");        return;    }     deleteN(n,T);}`