Thursday, 9 February 2012

Contoh Program TREE

Posted by afri zulkarnain Thursday, February 09, 2012 , under | No comments

       Berikut ini saya akan memberikan sebuah contoh program Tree dalam bahasa C++,, dan langsung saja Listing Programnya yaitu:

#include "stdio.h"
#include "conio.h"

typedef struct Node
  {int data;
   Node *kiri;
   Node *kanan;
  };

void tambah(Node **root,int databaru)
  {
   if((*root) == NULL)
   {
     Node *baru;
     baru = new Node;
     baru->data = databaru;
     baru->kiri = NULL;
     baru->kanan = NULL;
     (*root) = baru;
     (*root)->kiri = NULL;
     (*root)->kanan = NULL;
     printf("Data bertambah!");
   }
   else if(databaru < (*root)->data)
     tambah(&(*root)->kiri,databaru);
   else if(databaru > (*root)->data)
     tambah(&(*root)->kanan,databaru);
   else if(databaru == (*root)->data)
     printf("Data sudah ada!");
  }

void preOrder(Node *root)
  {
   if(root != NULL){ printf("%d ",root->data);
   preOrder(root->kiri);
   preOrder(root->kanan);
  }}

void inOrder(Node *root)
  {
   if(root != NULL){ inOrder(root->kiri);
   printf("%d ",root->data);
   inOrder(root->kanan);
  }}

void postOrder(Node *root)
  {
   if(root != NULL){ postOrder(root->kiri);
   postOrder(root->kanan);
   printf("%d ",root->data);
  }}

void main()
{
  int c, data;
  Node *pohon,*t;
  pohon = NULL;
  char pil;
  do {
    clrscr();
    printf("1. Tambah\n");
    printf("2. Lihat Pre-order\n");
    printf("3. Lihat In-order\n");
    printf("4. Lihat Post-order\n");
    printf("5. Keluar\n");
    printf("Silahkan masukkan pilihan anda (1-5)...  ");
    pil=getche();

      if(pil!='1' && pil !='2' && pil !='3' && pil!='4' && pil!='5' )
          printf("\n\nAnda salah mengetikkan inputan...\n");
          else
          {
        if(pil=='1')
        {
          printf("\n");
          printf("\nData baru : ");scanf("%d", &data);
          tambah(&pohon,data);
        }
          else
          {
        if(pil=='2')
        {
          printf("\n");
          if(pohon!=NULL) preOrder(pohon);
          else printf("Masih kosong!");
          getch();
        }
          else
        {
        if(pil=='3')
        {
          printf("\n");
          if(pohon!=NULL) inOrder(pohon);
          else printf("Masih kosong!");
          getch();
        }
          else
        {
        if(pil=='4')
        {
          printf("\n");
          if(pohon!=NULL) postOrder(pohon);
          else printf("Masih kosong!");
          getch();
        }}}
        }}}
          while(pil!='5');

}

Semoga bermanfaat dan selamat mencoba... :)

0 comments :

Post a Comment

Silahkan tinggalkan komentar anda tentang tulisan ini...

Popular Posts

Popular Posts