Konsep pointer pertemuan 5

Nama: Ananda Eko Purwanto
Nim: 17190319


·         KONSEP POINTER
Pointer digunakan sebagai penunjuk kesuatu alamat memori
Dalam pemrograman C++ Type Data Pointer dideklarasikan dengan bentuk umum:

Type Data * Nama Variabel;

Type Data dapat berupa sembarang type data, misalnya char, int ataufloat. Sedangkan Nama veriabel merupakan nama variabel pointer.


·         KONSEP LINKED LIST

Salah satu Struktur Data Dinamis yang paling sederhana adalah Linked List yaitu suatu kumpulan komponen yang disusun secara berurutan dengan bantuan Pointer.

Setiap simpul dalam suatu Linked List terbagi menjadi dua bagian,yaitu :
1.Medan Informasi
2.Medan Penyambung (Link Field)
 











·         PERBEDAAN ARRAY DAN LINKED LIST










·         SINGLE LINKED LIST NON CIRCULAR

Single : field pointer-nya hanya satu dan satu arah,pada akhir node pointernya menunjuk NULL
Linked List : node-node tersebut saling terhubung satu sama lain.

Deklarasi Node :
typedef struct TNode { int data; TNode *next; };


Keterangan:

•Pembuatan struct bernama TNode yang berisi 2 field, yaitu field data bertipe integer dan field nextyang bertipe pointer dari TNode
•Setelah pembuatan struct, buat variabel head yang bertipe pointer dari TNode yang berguna sebagai kepala linked list.
•Digunakan perintah newuntuk mempersiapkan sebuah node baru berserta alokasi memorinya, kemudian node tersebut diisi data dan pointer nextnya ditunjuk ke NULL.
TNode *baru; baru = new TNode; baru->data = databaru; baru->next = NULL;

·         SINGLE LINKED LIST NON CIRCULAR MENGGUNAKAN HEAD

Manipulasi linked list tidak dapat dilakukan langsung ke node yang dituju, melainkan harus menggunakan suatu pointer penunjuk ke node pertama (Head) dalam linked list.

Deklarasinya sebagai berikut:
TNode *head;

Menambah Node di Depan :
•Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong) maka penambahan data dilakukan dengan cara: node head ditunjukkan ke node baru tersebut.
•Prinsipnya adalah mengkaitkan node baru dengan head, head akan menunjuk pada data baru tersebut, head akan tetap selalu menjadi data terdepan.









Menambah Node di Belakang
•Penambahan data dilakukan di belakang, namun pada saat pertama kali, node langsung ditunjuk oleh head.
•Penambahan di belakang membutuhkan pointer bantu untuk mengetahui node terbelakang. Kemudian, dikaitkan dengan node baru. 
•Untuk mengetahui data terbelakang perlu digunakan perulangan.

    


·         Single Linked Listnon Circular Menggunakan Head dan Tail
Dibutuhkan dua variabel pointer : head dan tail
Head selalu menunjuk pada node pertama,
sedangkan tail selalu menunjuk pada node terakhir.

Inisialisasi Linked List
TNode *head, *tail;

Fungsi Inisialisasi Linked List
Void init(){ head = NULL; tail = NULL; }




Function untuk menghapus semua elemen LinkedList dengan HEAD & TAIL

void clear() { TNode *bantu,*hapus; bantu = head; while(bantu!=NULL) { hapus = bantu; bantu = bantu->next; delete hapus; }
head = NULL; tail = NULL; }








· 


Komentar