Tree sort adalah teknik mengurutkan data dengan menggunakan struktur data tree.
Kelebihan: Data langsung urut begitu dimasukkan, efektif untuk jumlah data yang kecil.
Kekurangan: Tidak efektif untuk jumlah data yang besar.
Berikut code dan implementasinya dalam bahasa pemrograman C.
// Tree Sort
#include <stdio.h>
#include <stdlib.h>
typedef struct _tree
{ int v;
struct _tree *p, *l, *r;
} Tree;
void Ins(Tree **t, int val)
{ if(!(*t))
{ *t = (Tree*)malloc(sizeof(Tree));
(*t)->p = (*t)->l = (*t)->r = NULL;
(*t)->v = val;
}
else if((*t)->v > val)
{ Ins(&(*t)->l, val);
(*t)->l->p = *t;
}
else
{ Ins(&(*t)->r, val);
(*t)->r->p = *t;
}
}
void Print(Tree *t)
{ if(t)
{ Print(t->l);
printf("%d ", t->v);
Print(t->r);
}
}
int main()
{ Tree *t = NULL;
int n;
while(scanf("%d", &n) && n != 0)
Ins(&t, n);
Print(t);
}
Contoh Input:
123 72 16 26 38 18 61 35 1 5 2 6 0
Contoh Output:
1 2 5 6 16 18 26 35 38 61 72 123
No comments:
Post a Comment