my blog

Rabu, 23 Mei 2012

program link listd

hallo mante-mante ketemu lagi,,,,,
akhir2 ini aku jarang masukin postingan ku,,,soalnya tugas ku lagi numpuk ne,,,
heheheheheh!!!!!!!!

oh yah hari ini q dari baru dapat materi baru dosen q,,,yah susah2 gampang ceah......
lanhsung aja ke program yah?????

program kali ini thu tentang link listd,,,,
teman-teman udah tau kan apa itu link listd,,,,????
bagi pemula seperti aq ceahhh,,, rasanya susah bngt ngerjainx,,,tapi akhrinya sukses juga.
kita langsung aja ke coding programnya!!!!!


PROGRAM LINK LISTD...


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

 typedef struct Node *Pnode;
 struct Node
 {
  int info;
  Pnode Next;
 };

  void inisialisasi(Pnode *Head,Pnode *Tail)
  {
  *Head=*Tail=NULL;
  }
  Pnode CreateNode (int Data)
  {
  Pnode Node_baru;
   Node_baru=(Pnode) malloc(sizeof(Node));
   Node_baru->info=Data;
   Node_baru->Next=NULL;
   return(Node_baru);
  }
  void InsertFirst(Pnode *Head,Pnode *Tail,int Data)
  {
  Pnode Node_baru;
   Node_baru = CreateNode(Data);
   if(*Head==NULL)
    {*Head =*Tail =Node_baru;}
   else
    {Node_baru->Next =*Head;
      *Head=Node_baru;}
  }
  void DeleteFirst  (Pnode*Head,Pnode*Tail)
  {
  Pnode bantu;
   if(*Head==NULL)
    {cout<<"list kosong";}
   else if(*Head == *Tail)
    {
      free(*Head);
         *Head=*Tail=NULL;
         cout<<"node berhasil di hapus,saat ini list kosong";
      }
   else
    {
      bantu=*Head;
         *Head=(*Head)->Next;
         free(bantu);
         cout<<"node awal berhasil di hapus";
      }
   }

   void InsertLast(Pnode *Head,Pnode *Tail,int Data)
   {
    Pnode Node_baru;
      Node_baru=CreateNode(Data);
      if(*Head==NULL)
      {*Head=*Tail=Node_baru;}
      else
      {Node_baru->Next = *Head;
      *Head =Node_baru;}
   }
   void DeleteLast (Pnode*Head,Pnode*Tail)
   {
    Pnode bantu;
      if(*Head==NULL)
      {cout<<"list kosong";}
      else if(*Head==*Tail)
      {
          free(*Head);
            *Head=*Tail=NULL;
            cout<<"node berhasil di hapus,saat ini list kosong";
         }
      else
      {
          bantu=*Head;
            while(bantu->Next !=*Tail)
         {
          bantu=bantu->Next;
         }
         free(*Tail);
         bantu->Next=NULL;
         *Tail=bantu;
         cout<<"node akhir berhasil di hapus";
         }
      }
      void InsertAfter(Pnode *Head,Pnode *Tail, int Data, int posisi)
      {
      Pnode Node_baru,bantu;
         int jml_Node, x;

         if(*Head==NULL)
         {InsertFirst(Head,Tail,Data);}
      else
      {
          jml_Node=1;
            bantu=*Head;
            while(bantu->Next !=NULL)
            { bantu=bantu->Next;
            jml_Node++;}

            if(posisi<=1)
            {InsertFirst(Head,Tail,Data);}
            else if(posisi>jml_Node)
            {InsertLast(Head,Tail,Data);}
            else
            {
                Node_baru=CreateNode(Data);
                  bantu = *Head;
                  x=1;
                  while (x< (posisi-1))
                  {bantu=bantu->Next;
                  x++;}
                  Node_baru->Next=bantu->Next;
                  bantu->Next=Node_baru;
                  }
               }
      }
      void DeleteAfter(Pnode *Head,Pnode *Tail, int posisi)
      {
      Pnode bantu,bantu2;
         int jml_Node, x;
         if(*Head==NULL)
          {cout<<"list kosong";}
         else
          {
            jml_Node=1;
               bantu=*Head;
               while(bantu->Next!=NULL)
               {bantu=bantu->Next;
          jml_Node++;}
                  if((posisi<1)||(posisi>jml_Node))
                  {cout<<"posisi di luar jangkauan."<<endl;}
                  else if(posisi==1)
                  {DeleteFirst(Head,Tail);}
                  else if(posisi==jml_Node)
                  {DeleteLast(Head,Tail);}
                  else
                  {
                      bantu=*Head;
                        x=1;
                        while(x<(posisi-1))
                        { bantu=bantu->Next;
                        x++;}
                        bantu2=bantu->Next;
                        bantu->Next=bantu2->Next;
                        free(bantu2);
                        }
                  }
            }
            int searching(Pnode Head,int Data)
            {
            Pnode bantu;
               int posisi=1,ketemu=0;
               bantu=Head;
               while((bantu!=NULL)&&(ketemu==0))
               {
                if(bantu->info==Data)
                  {ketemu=1;}
                  else
                  {
                      bantu=bantu->Next;
                        posisi++;
                        }
                  }
                  if(ketemu==1)
                  return posisi;
                  else
                  return 0;
               }


      void Print(Pnode Head)
      {
      Pnode bantu;
         if (Head!=NULL)
         {
          bantu=Head;
            while(bantu!=NULL)
            {
                cout<<bantu->info<<"->";
                  bantu=bantu->Next;
               }
         }
         else
         {cout<<"list kosong";}
      }
 void main()
 {
  int pilihan,baru;
   Pnode Head,Tail;
   inisialisasi(&Head,&Tail);
   do
   {
    clrscr();
      cout<<"**************************"<<endl;
      cout<<"**************************"<<endl;
      cout<<"       MELANI SUHAENY     "<<endl;
      cout<<"        110030126         "<<endl;
      cout<<"JURUSAN (SISTEM INFORMASI)"<<endl;
      cout<<"--------------------------"<<endl;
      cout<<"##########################"<<endl;

      cout<<"1.insert node di awal list"<<endl;
      cout<<"2.insert node di akhir list"<<endl;
      cout<<"3.menghapus node awal dari list"<<endl;
cout<<"4.menghapus node akhir darilist"<<endl;
cout<<"5.print data dalam list"<<endl;
      cout<<"6.menambahkan data pada posisi tertentu"<<endl;
      cout<<"7.menghapus data pada posisi tertentu"<<endl;
      cout<<"8.mencari data dalam list"<<endl;
cout<<endl;
cout<<"pilihan=";
      cin>>pilihan;
      clrscr();
      switch(pilihan)
      {
      case 1:
          { cout<<"data yang akan ditambahkan=";
            cin>>baru;
            InsertFirst(&Head,&Tail,baru);
            cout<<"data berhasil ditambahkan";
            getch();
            break;}
         case 2:
          { cout<<"data yang akan ditambahkan=";
            cin>>baru;
            InsertLast(&Head,&Tail,baru);
            cout<<"data berhasil ditambahkan";
            getch();
            break;}
         case 3:
          { DeleteFirst(&Head,&Tail);
            getch();
            break;}
         case 4:
          { DeleteLast(&Head,&Tail);
            getch();
            break;}
         case 5:
         { Print(Head);
         getch();
         break;}
         case 6:
          { cout<<"data yang akan di tambahkan=";
            cin>>baru;
            InsertAfter(&Head,&Tail,baru,baru);
            cout<<"data berhasil ditambahkan";
            getch();
            break;}
         case 7:
          { DeleteAfter(&Head,&Tail,baru);
            getch();
            break;}
         case 8:
          {  cout<<"data yang akan di cari=";
            cin>>baru;
            InsertAfter(&Head,&Tail,baru,baru);
            cout<<"data berhasil ditambahkan";
            getch();
            break;}
         default:
         { cout<<"tidak ada dalam pilihan"<<endl;}
      }
   }while(pilihan>=1&&pilihan<=8);
   getch(); }

semoga program/ coding di atas dapat membantu teman2 yah,,,,
mohon saran yah!!!!





Tidak ada komentar:

Posting Komentar