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();
}
}
{
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
Posting Komentar