Home » » Campuran Linked List Tambah Depan dan Tambah Belakang

Campuran Linked List Tambah Depan dan Tambah Belakang

struct simpul{
       int data
       simpul *next, *prev;
       } *awal =  NULL,*akhir = NULL, *baru;


SINGLE LINKED LIST NON-CIRCULAR
*TAMBAH DEPAN DAN TAMBAH BELAKANG

void tambah_awal_sllnc(int x){ //single linked list non-circular
     baru = new simpul; //membuat node baru
     baru->data=x; //masukkan data ke node baru
     baru->next=NULL;
     if(awal==NULL){ //apabila belum pernah membuat node, maka awal dan akhir adalah baru
        awal = akhir = baru;           
        }
     else {
          baru->next=awal; //baru->next menunjuk ke awal
          awal=baru; //sekarang, baru mennjadi awal
          }
}

void tambah_akhir_sllnc(int x){ //single linked list non-circular
     baru = new simpul; //membuat node baru
     baru->data=x; //masukkan data ke node baru
     baru->next=NULL;
     if(awal==NULL){ //apabila belum pernah membuat node, maka awal dan akhir adalah baru
        awal = akhir = baru;           
        }
     else {
          akhir->next=baru; //akhir->next menunjuk ke baru
          akhir=baru; //baru menjadi akhir
          }
}



SINGLE LINKED LIST CIRCULAR
*TAMBAH DEPAN DAN TAMBAH BELAKANG

void tambah_awal_sllc(int x){ //single linked list circular
     baru = new simpul; //membuat node baru
     baru->data=x; //masukkan data ke node baru
     baru->next=NULL;
     if(awal==NULL){ //apabila belum pernah membuat node, maka awal dan akhir adalah baru
        awal = akhir = baru;
  baru->next = baru ;  //baru->next menunjuk ke dirinya sendiri  
        }
     else {
          baru->next=awal; //baru->next menunjuk ke awal
          akhir->next=baru; //akhir->next menunjuk ke baru
          awal=baru; //baru menjadi awal
          }
 }

void tambah_akhir_sllc(int x){ //single linked list circular
     baru = new simpul; //membuat node baru
     baru->data=x; //masukkan data ke node baru
     baru->next=NULL;
     if(awal==NULL){ //apabila belum pernah membuat node, maka awal dan akhir adalah baru
        awal = akhir = baru;
  baru->next = baru ; //baru->next menunjuk ke dirinya sendiri          
        }
     else {
          baru->next=awal; //baru->next menunjuk ke awal
          akhir->next=baru; //akhir->next menunjuk ke baru
          akhir=baru; //baru menjadi akhir
          }
     }



DOUBLY LINKED LIST NON-CIRCULAR
*TAMBAH DEPAN DAN TAMBAH BELAKANG

void tambah_awal_dllnc(int x){ //doubly linked list non-circular
     baru = new simpul; //membuat node baru
     baru->data=x; //masukkan data ke node baru
     baru->next=NULL;
     baru->prev=NULL;
     if(awal==NULL){ //apabila belum pernah membuat node, maka awal dan akhir adalah baru
        awal = akhir = baru;           
        }
     else {
          baru->next=awal; //baru->next menunjuk ke awal
          awal->prev=baru; //awal->prev menunjuk ke baru
          awal=baru; //baru menjadi awal
          }
 }

void tambah_akhir_dllnc(int x){ //doubly linked list non-circular
     baru = new simpul; //membuat node baru
     baru->data=x; //masukkan data ke node baru
     baru->next=NULL;
     baru->prev=NULL;
     if(awal==NULL){ //apabila belum pernah membuat node, maka awal dan akhir adalah baru
        awal = akhir = baru;          
        }
     else {
          akhir->next=baru; //akhir->next menunjuk ke baru
          baru->prev=akhir; //baru->prev menunjuk ke akhir
          akhir=baru; //baru menjadi akhir
          }
     }



DOUBLY LINKED LIST CIRCULAR
*TAMBAH DEPAN DAN TAMBAH BELAKANG

void tambah_awal_dllc(int x){ //doubly linked list circular
     baru = new simpul; //membuat node baru
     baru->data=x; //masukkan data ke node baru
     baru->next=NULL;
     baru->prev=NULL;
     if(awal==NULL){ //apabila belum pernah membuat node, maka awal dan akhir adalah baru
        awal = akhir = baru;
  baru->next = baru ; //menunjuk ke
  baru->prev = baru ; //         dirinya sendiri
        }
     else {
          baru->next=awal; //baru->next menunjuk ke awal
          awal->prev=baru; //awal->prev menunjuk ke baru
          baru->prev=akhir; //baru->prev menunjuk ke akhir
          akhir->next=baru; //akhir->next menunjuk ke baru
    awal=baru;
          }
}

void tambah_akhir_dllc(int x){ //doubly linked list circular
     baru = new simpul; //membuat node baru
     baru->data=x; //masukkan data ke node baru
     baru->next=NULL;
     baru->prev=NULL;
     if(awal==NULL){ //apabila belum pernah membuat node, maka awal dan akhir adalah baru
        awal = akhir = baru;
  baru->next = baru ; //baru menunjuk ke
  baru->prev = baru ; //           dirinya sendiri
        }
     else {
          baru->next=awal; //baru->next menunjuk ke awal
          awal->prev=baru; //awal->prev menunjuk ke baru
          akhir->next=baru; //akhir->next menunjuk baru
          baru->prev=akhir; //baru->prev menunjuk ke akhir
          akhir=baru; //baru menjadi akhir
          }
     }


0 komentar: