Linked List 2

Nama : Raymon Elnardi
NIM   : 2301908620
kelas  : LL01

           Kali ini saya akan meringkas kembali, apa yang telah diajarkan di kampus hari ini.
Link List pada umumnya memiliki tiga buah jenis, yaitu queue, stack dan priority queue.


          Queue adalah jenis linked list yang seperti antrian dan mengandung prinsip FIFO (First In  First Out). Contohnya seperti antrian dimana orang yang berada paling depan akan meninggalkan antrian sedangkan orang yang mengantri akan mulai dari paling belakang.
Queue akan terlihat seperti ini.
Hasil gambar untuk queue linked list


           Stack adalah jenis linked list yang seperti tumpukan dan mengandung prinsip LIFO (Last In First Out). Contohnya seperti buku yang ditumpuk, buku yang paling pertama di taruh akan berada di paling bawah dan buku yang baru akan ditumpuk diatas buku yang dibawahnya.
Stack akan terlihat seperti ini
Hasil gambar untuk stack linked list
(Top atau front = head)
          Priority Queue sama seperti queue ataupun stack, tetapi ada node yang diutamakan di banding node yang lain.

           Linked List memiliki dua buah fungsi yang setiap Linked List miliki, yaitu Push (Menambah node baru) dan Pop (Menghapus node). Setiap Linked List dibedakan berdasarkan dua buah fungsi tersebut.

1. QUEUE

Kali ini kita akan mempelajari codingan untuk Queue dalam bentuk C.

1.1 Pembuatan Struct
=====================================================================
|| #include <stdio.h>
|| #include <stdlib.h>
||
|| struct node{
|| int value;
|| struct node *next;
|| } *head, *tail, *cur;
======================================================================
          pertama tama kita perlu membuat struct sebagai wadah atau yang kita kenal dengan node.
value merupakan isi dari nilai yang kita tampung, dan next adalah semacam penunjuk ke node lainnya. head adalah bagian pertama dan sekaligus terdepan dari Linked List, prinsip dari head adalah head harus selalu berada paling depan, Tail adalah bagian terakhir dan sekaligus terbelakang dari Linked List, prinsip dari tail adalah tail harus selalu berada paling belakang, cur adalah penunjuk setiap node baru yang kita buat.

1.2 Pembuatan fungsi Push
======================================================================
||void push (int val) {
||   cur = (node*) malloc(sizeof(node);
||   cur -> value = val;
||   if (head == NULL){
||   head = tail = cur;
||   tail -> next = NULL;
||   }
||   else{
||   tail -> next = cur;
||   tail = cur;
||   tail ->next = NULL;
||   }
|| }
======================================================================
        Untuk melakukan Push, pertama kita perlu melakukan malloc ( Memory Allocation), kegunaannya untuk membuat ruangan di dalam memory kita untuk menampung data data dari node tersebut. jika kita ingin menjalankan Push, terdapat dua kemungkinan yaitu ketika tidak ada node yang terbentuk, dan ketika ada setidaknya satu buah node. pada sistem Push milik Queue, kita perlu memasukkan node baru dari belakang sehingga kita perlu memindahkan posisi dari tail juga.



1.3 Pembuatan fungsi Pop
======================================================================
|| void pop(){
|| cur = head;
||    if (head == tail){
||    head = tail = NULL;
||    free(cur);
||    }
||    else{
||    head = head -> next;
||    cur->next = NULL
||    free(cur);
||    }
|| }
======================================================================
        Pop milik Queue, node yang akan disingkirkan adalah node yang berada paling depan sehingga kita perlu memindahkan posisi dari head juga. terdapat dua kemungkinan, yaitu ketika tail berada pada head, dan ketika tail tidak berada pada head. salah satu fungsi yang sering digunakan dalam Pop adalah Free(). Free adalah suatu cara untuk membebaskan Malloc yang kita buat, tujuan penggunaan free adalah agar memory tidak mengalami oversize.

dengan begitu Link list tipe Queue telah siap dijalankan !


2. STACK

Kali ini kita akan mempelajari codingan untuk Stack dalam bentuk C.

1.1 Pembuatan Struct
=====================================================================
|| #include <stdio.h>
|| #include <stdlib.h>
||
|| struct node{
|| int value;
|| struct node *prev;
|| } *head, *tail, *cur;
======================================================================
          pembuatan struct pada Stack sama saja dengan Queue hanya saja kali ini saya menggunakan istilah prev daripada next.


1.2 Pembuatan fungsi Push
======================================================================
||void push (int val) {
||   cur = (node*) malloc(sizeof(node);
||   cur -> value = val;
||   if (head == NULL){
||   head = tail = cur;
||   head -> prev = NULL;
||   }
||   else{
||   cur -> prev = tail;
||   tail = cur;
||
||   }
|| }
======================================================================
        Untuk melakukan Push, berbeda dengan Queue, Stack menunjuk dari tail ke head, sedangkan Queue sebaliknya.

1.3 Pembuatan fungsi Pop
======================================================================
|| void pop(){
|| cur = tail;
||    if (head == tail){
||    head = tail = NULL;
||    free(cur);
||    }
||    else{
||    tail = tail -> prev;
||    cur->prev = NULL
||    free(cur);
||    }
|| }
======================================================================
        Pop milik Stack menghapus node mulai dari yang paling belakang.

dengan begitu Link list tipe Stack telah siap dijalankan !

Komentar

Postingan populer dari blog ini

AVL Tree