Web Hosting Murah Indonesia | Web Hosting Murah dan Handal Title Title STRUKTUR DATA: Double Linked List Non Circular

Double Linked List Non Circular

Ø  Double : field pointer dua buah dan 2 arah, arah node sesudahnya dan sebelumnya.
Ø  Linked list : node-node saling berhubungan.
Ø  Non circular : pointer prev dan next-nya akan menunjuk pada NULL.
Ø  Setiap node mempunyai 3 bagian :
  • Bagian data informasi
  • Pointer next : menunjuk ke elemen sesudahnya.
  • Pointer prev : menunjuk ke elemen sebelumnya.
Ø  Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke nilai NULL.
Ø  Selanjutnya pointer prev akan menunjuk ke node sebelumnya, dan pointer next akan menunjuk ke node selanjutnya pada list.
Ø  Untuk menunjukkan kepala dari link list, pointer prev dari elemen pertama akan menunjuk NULL.
Ø  Untuk menunjukkan ekor dari link list, pointer next dari elemen pertama akan menunjuk NULL.
Setelah kita bahas tentang penjelasan selanjutnya kita akan mencoba membuat TDA(Tipe Data Abstrak) dari Double Linked List tersebut.
Instan :
Double Linked List Non Circular
Operasi :
Buat_node_baru(char x) : membuat node baru;
node_awal(): membuat node awal;
Tambah_elemen_depan() : menambahkan elemen pada awal/depan;
Tambah_elemen_tengah() : menambahkan elemen pada tengah link list;
Tambah_elemen_belakang() : menambahkan elemen pada akhir link list;
Cari_elemen() : mencari elemen yang dibutuhkan;
Hapus_depan() : menghapus elemen dari awal;
Hapus_belakang() : menghapus elemen dari belakang;
Hapus_tengah() : menghapus elemen dari tengah;
Hapus_semua() : mengahapus semua elemen;
Cetak() : menelusuri elemen satu demi satu dan menampilkan informasi
Implementasi dari operasi yang digunakan:

void List::tambah_depan(int nilai)
{
Node *baru;
baru = new Node;
baru -> data =nilai;
baru -> next =NULL;
baru -> prev = NULL;
if(kosong() == 1)
{
kepala=baru;
kepala->next=NULL:
kepala->prev=NULL;
}
else
{
baru->next=kepala;
kepala->prev=baru;
kepala=baru;
}
printf("data masuk\n");
}

void List::tambah_belakang(int nilai)
{
TNode *baru, *bantu;
baru = new TNode;
baru->data = value;
baru->next = NULL;
baru->prev = NULL;
if(isEmpty() == 1)
{
head = baru;
head->next = NULL;
head->prev = NULL;
}
else
{
bantu = head;
while(bantu->next != NULL)
{
bantu = bantu->next
}
baru->next = baru;
head->prev = bantu;
}
printf(“data masuk\n”);
}

Tidak ada komentar:

Posting Komentar

Animated Pictures Myspace Comments