Rabu, 26 Juni 2013

presentasi struktur data - linked lish penghapusan

#include <conio.h>
#include <iostream.h>
#include <stdio.h>

typedef struct simpul tsimpul;
struct simpul
{
    int info;
   tsimpul *next;
};
tsimpul *awal = NULL, *akhir = NULL, *data, *hapus, *b1, *b2;
//===============================================================//hapsari
void muncul()
{
    b1=awal;
   cout<<"\n                           DATA ====>";
   while(b1!=NULL)
   {
    cout<<b1->info;
      b1=b1->next;
      cout<<"  ";
   }
}
//===============================================================//fitri
void tambah_data(int x)
{
   data=new simpul;
   data->info=x;
   data->next=NULL;
   if(awal==NULL)
   {
    awal=akhir=data;
   }
   else
   {
    data->next=awal;
      awal=data;
   }
}
//===============================================================//eka
void hapus_awal()
{
    if(awal==NULL)
   {
        cout<<"Maaf....List Kosong!!!\n";
   }
   else if (awal==akhir)
   {
    hapus=awal;
    awal=NULL;
    akhir=NULL;
   }
   else
   {
      hapus=awal;
      awal=awal->next;
   }
   }
//===============================================================//gina
   void hapus_akhir()
{
    if(awal==NULL)
   {
        cout<<"Maaf....List Kosong!!!\n";
   }
    else if(awal==akhir)
    {
    hapus=awal;
    awal=NULL;
    akhir=NULL;
   }
   else
   {
        b1=awal;
      while(b1->next!=akhir)
      {
        b1=b1->next;
      }
      hapus=akhir;
      b1->next=NULL;
      akhir=b1;
   }
}
//===============================================================//eli
void hapus_tengah(int x)
{
    tsimpul *b;
   int ada=0;
   b=awal;
   if(awal==NULL)
        cout<<"Maaf....List Kosong!!!\n";
   else if(b->info==x)
        hapus_awal();
   else if(akhir->info==x)
    hapus_akhir();
   else
   {
    while(b!=NULL)
    {
        if(b->info==x)
         {
            ada++;
         }
            b=b->next;
    }
      if(ada==0)
            cout<<"\n-->Data Yang Di Masukkan Tidak Falid<--\n\n";
      else
      {
      b=awal;
      while(b->next->info!=x)
      {
        b=b->next;
      }
    b1=b->next;
      b2=b1->next;
      hapus=b1;
      b->next=b2;
      }
   }
}
//===============================================================//wida
void main()
{
   int pilih,n,nn;
   char lagi;
   do
   {
      clrscr();
      cout<<"================================================\n";
      cout<<"||         PROGRAM SINGLE LINKED LIST         ||\n";
      cout<<"================================================\n";
      muncul();
      cout<<"\n\n1. Tambah Data";
      cout<<"\n2. Hapus Awal";
      cout<<"\n3. Hapus Akhir";
      cout<<"\n4. Hapus Tengah\n==========================";
      cout<<"\nPilihan Anda : ";cin>>pilih;
      cout<<"==========================\n";
      switch(pilih)
    {
        case 1:
          cout<<"Masukkan Data    : ";cin>>n;
          tambah_data(n);
          break;
        case 2:
         hapus_awal();
         break;
         case 3:
        hapus_akhir();
         break;
         case 4:
         cout<<"data yg ingin di hapus : ";cin>>nn;
         hapus_tengah(nn);
         break;
    }
    cout<<"Lagi (y/t)? ";cin>>lagi;
   }
   while(lagi=='y'||lagi=='Y');
}
//===============================================================//asri
Comments
0 Comments

Tidak ada komentar:

Posting Komentar