Anda di halaman 1dari 13

STRUKTUR DATA

Linked List
Single Linked List dengan Head dan Tail

• Diperlukan dua buah variabel pointer: head dan


tail
• Head akan selalu menunjuk pada node
pertama, sedangkan tail akan selalu menunjuk
pada node terakhir.
Inisialisasi LinkedList
node *Awal, *Akhir;

Fungsi Inisialisasi LinkedList Fungsi yang


void init1(){ Diperlukan
Awal = NULL;
Akhir = NULL;
}
Fungsi untuk mengetahui kosong tidaknya List
int kosongkah1(){
if(Akhir == NULL)
return 1;
else
return 0;
}
Penambahan Node di Depan
1. List masih kosong

NULL NULL Awal = NULL;


Awal Akhir
Akhir = NULL;

2. Bangun node baru


data A
Baru 5 NULL

3. Kaitkan node baru ke List


data A
Baru 5 NULL
NULL NULL
Awal=Akhir = Baru;
Awal Akhir
Penambahan Node di Depan
4. Bangun node baru
data A
Baru 20 NULL

5. Kaitkan node baru ke list

data A
NULL
Baru 20

data A
5 NULL
Baru->A = Awal;
Awal Akhir Awal = Baru;
Penambahan Node di Depan

data A
data A
Baru 20 5 NULL

Awal Akhir
data A
Baru 3 NULL

Baru->A = Awal;

Awal = Baru;
Penambahan Node di Depan
void IsiDepan(int databaru){
baru = new node;
baru->data = databaru;
baru->A=NULL;
if(kosongkah1()==1){
Awal=Akhir=baru; //list masih kosong
}
else{
baru->A=Awal;
Awal = baru;
}
}
Penambahan Node di Belakang
1. List masih kosong

NULL NULL Awal = NULL;


Awal Akhir
Akhir = NULL;

2. Bangun node baru


data A
Baru 5 NULL

3. Kaitkan node baru ke List


data A
Baru 5 NULL
NULL NULL
Awal=Akhir = Baru;
Awal Akhir
Penambahan Node di Belakang
4. Bangun node baru
data A
Baru 20 NULL

5. Kaitkan node baru ke list

data A
Baru 20 NULL

data A
5 NULL
Akhir->A = Baru;
Awal Akhir Akhir = Baru;
Penambahan Node di Belakang

data A
data A
Baru 20 5 NULL

Awal Akhir

data A
Baru 3 NULL

Akhir->A = Baru;

Akhir = Baru;
Penambahan Node di Belakang
void IsiBelakang(int databaru){
baru = new node;
baru->data = databaru;
baru->A=NULL;
if(kosongkah1()==1){
Awal=Akhir=baru;
}
else{
Akhir->A=baru;
Akhir = baru;
}
}
SOAL LATIHAN
• Buatlah program lengkap dari semua function.
• Gunakan struct yang memiliki 3 field
• Kode
• Nilai
• Node *A
• Gunakan menu pilihan untuk memilih akan menambah
node di depan atau di belakang
• Buatlah function tambahan yang berguna untuk
menampilkan data dari node dengan kode tertentu
yang ditentukan pemakai

Anda mungkin juga menyukai