Friday, June 22, 2012
Tree (turbo c++)
#include<iostream.h>
#include<malloc.h>
#define Nil NULL
struct nod
{
struct nod *left;
char data;
struct nod *right;
};
typedef struct nod NOD;
typedef NOD POKOK;
NOD *NodBaru(int item)
{
NOD *n;
n = (NOD *)malloc(sizeof(NOD));
if (n !=Nil)
{
n -> data = item;
n -> left = Nil;
n -> right = Nil;
}
return n;
}
void BinaPokok (POKOK **T)
{
*T = Nil;
}
typedef enum {FALSE = 0, TRUE = 1} BOOL;
BOOL PokokKosong (POKOK *T)
{
return ((BOOL) (T == Nil));
}
void TambahNod(NOD **p,int item)
{
NOD *n;
n = NodBaru(item);
*p = n;
}
void preOrder(POKOK *T)
{
if (!PokokKosong(T))
{
cout<<" "<< T -> data;
preOrder(T -> left);
preOrder(T -> right);
}
}
void inOrder(POKOK *T)
{
if (!PokokKosong(T))
{
inOrder(T -> left);
cout<<" "<< T -> data;
inOrder(T -> right);
}
}
void postOrder(POKOK *T)
{
if (!PokokKosong(T))
{
postOrder(T -> left);
postOrder(T -> right);
cout<<" "<< T -> data;
}
}
int main()
{
POKOK *kelapa;
int buah;
BinaPokok(&kelapa);
TambahNod(&kelapa, buah = 'm');
TambahNod(&kelapa -> left, buah = 'e');
TambahNod(&kelapa -> left -> left, buah = 'i');
TambahNod(&kelapa -> left -> right, buah = 'l');
TambahNod(&kelapa -> right, buah ='o');
TambahNod(&kelapa -> right -> left, buah = 'd');
TambahNod(&kelapa -> right -> right, buah = 'd');
cout<<"Tampilan secara PreOrder : ";
preOrder(kelapa);
cout<<endl;
cout<<"Tampilan secara InOrder : ";
inOrder(kelapa);
cout<<endl;
cout<<"Tampilan secara PostOrder : ";
postOrder(kelapa);
cout<<endl;
cout<<endl;
return 0;
}
Paylaş
Önerilen yayınlar
Disqus Yorumlar