TUGAS STRUKTUR DATA 4 [LINKED - LIST]

S
SILVA RAJA
STRUKTUR DATA SEMESTER 2
STMIK NUSA MANDIRI

-----------------------------------------------------------------------------------------------------------------------


1.   Jelaskan istilah ‘pointer’ dan link dalam linked list.

Kata lain link disebut juga Link list tunggal.  Pointer aritmatika (variabel penunjuk) adalah variable yang berisi alamat memory sebagai nilainya dan berbeda dengan variable biasa yang berisi nilai tertentu. Dengan kata lain, pointer berisi alamat dari variable yang mempunyai nilai tertentu.


2.    Bagaimana kunjungan (traversal) terhadap suatu  link list?

Pandangan sebuah linked list, LIST yang tersimpan dalam memory berupa larik INFO dan LINK, dilengkapi dengan variable penuding START, yang berfungsi menuding lokasi simpul pertama dari list, dan NULL yang digunakan untuk menyatakan berakhirnya list.


3.    Buatlah suatu skema (linked-list) yang menggambarkan 10 buah abjad terurut.  Sajikan skema tersebut ke penyajian dalam memori.


4.    Lakukan penghapusan dua elemen dari soal nomor 3 di atas, yaitu elemen pertama dan elemen kelima.


5.    Lakukan penambahan elemen di urutan elemen pertama dan ke tujuh dari soal nomor 4 di atas (jadi tidak urut).


6.    Ubah pointer- pointer linknya sehingga data di soal nomor 5 di atas menjadi terurut kembali.



7.      Apa yang di maksud dengan header linked list dan apa saja jenisnya?

 Header linked list merupakan suatu list yang mengandung suatu simpul khusus yang terletak pada bagian awal dari list yang disebut simpul header.
     Jenis linked list :
    a. header linked list
    b. circular linked list
    c. doubly linked list
    d. multiple linked list


8.    Buat program dengan bahasa pemograma C++untuk membuat ‘mesin’linked list yang bisa di lakukan untuk menyisip dan menghapus elemen data.

 penyisipan :

if(awal_ptr != NULL) 
 {
 cout<<"Akan disisip setelah Data Ke ? : ";
 cin>>posisi_sisip;
 bantu=awal_ptr;
 baru =new node;
 for(int i=1;i<posisi_sisip-1;i++) 
{
   if(bantu->next != NULL) 
      bantu=bantu->next; else break;
 }
 cout << "Masukkan Nama : ";
 cin >> baru->nama;
 cout << "Masukkan Umur : ";
 cin >> baru->umur; 
cout << "Masukkan tingggi : ";
 cin >> baru->tinggi; baru->
next=bantu->next;
 bantu->next=baru; 

else
 {
  cout<<"Belum ada data !! silahkan isi data dulu...."; 
  getch(); 
 } 

Menghapus Depan :

void hapusDepan (){
TNode *hapus,*bantu;
if (isEmpty()==0){
int d;
hapus = head;
d = head->data;
if(head->next != head){
bantu = head;
while(bantu->next!=head){
bantu=bantu->next;
}
head = head->next;
delete hapus;
bantu->next = head;
}else{
head=NULL;
}
printf(“%d terhapus\n“,d);
} else printf(”Masih kosong\n“);
}

Menghapus belakang :
void hapusBelakang(){
TNode *hapus,*bantu;
if (isEmpty()==0){
int d;
hapus = head;
if(head->next == head){
head = NULL;
}else{
bantu = head;
while(bantu->next->next != head){
bantu = bantu->next;
}
hapus = bantu->next;
d = bantu->data;
bantu->next = head;
delete hapus;
}
printf(“%d terhapus\n“,d);
} else printf(”Masih kosong\n“);
}




Komentar

Postingan Populer