Smowtion

Jumat, 28 Oktober 2011

C++ TREE

#include<iostream.h>
#include<malloc.h>
#include<conio.h>
#define Nil NULL

struct nod {
struct nod * left;
char data;
struct nod * right; };

typedef struct nod NOD;
typedef NOD POKOK;

NOD * Nodbaru(char 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} BOLL;
BOLL pokokKosong (POKOK *T) {
return ((BOLL)(T==Nil)); }

void TambahNod(NOD **p,char 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 postOrder(POKOK *T) {
if (!pokokKosong (T)) {
postOrder(T->left);
postOrder(T->right);
cout<<" " << T->data; } }

void inOrder(POKOK *T){
if (!pokokKosong(T)){
inOrder(T->left);
cout<<" " << T->data;
inOrder(T->right); }}

int main (){
POKOK *kelapa;
char buah;

BinaPokok(&kelapa);
TambahNod(&kelapa, buah = 'A');
TambahNod(&kelapa->left, buah = 'B');
TambahNod(&kelapa->left->left, buah = 'D');
TambahNod(&kelapa->left->left->right, buah = 'G');
TambahNod(&kelapa->right, buah = 'C');
TambahNod(&kelapa->right->right, buah = 'F');
TambahNod(&kelapa->right->left, buah = 'E');

cout<<" preOrder:";
preOrder(kelapa);
cout<<endl;

cout<<" inOrder:";
inOrder(kelapa);
cout<<endl;

cout<<" postOrder:";
postOrder(kelapa);

cout<<endl;
cout<<endl;
getch();

return 0;
}

Artikel Terkait:

0 komentar:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites