TUGAS RANGKUMAN DATA STRUCTURE PERTEMUAN KE-2

Single Linked List

Dikarenakan Minggu kemarin GSLC maka dipertemuan kali ini kami diajarkan masih sama dengan materi sebelumnya yaitu single linked list, linked list single pointer hanya dapat bergerak ke satu arah saja, maju / mundur, kanan / kiri, sehingga pencarian datanya juga hanya satu arah saja. 
Fakta yang menarik tentang linked list adalah secara normal linked list digunakan sebagai solusi pelengkap untuk menangani kekurangan arrays. Array mempunyai keuntungan tersendiri dan masih digunakan tapi linked list telah menyediakan alternatif yang efisien dan efektif ketika kita mengalami permasalahan dalam terbatasnya kemampuan array.

dalam program ini diperlukan beberapa library yaitu :
#include<stdio.h>
#include<stdlib.h>

Dalam kelas besar tadi kami diajarkan STACK dan QUEUE.
Perbedaan STACK dan QUEUE :
Stack memakai sistem LIFO atau last in first out (yang pertama masuk akan keluar terakhir, begitu pula yang terakhir masuk akan keluar pertama kali) yang apabila kita mengahapus/ keluar data, maka data yang terakhirlah yang akan terhapus/ keluar terlebih dahulu.

Sementara queue memakai sistem FIFO atau first in first out (yang pertama masuk akan keluar pertama, begitu pula yang masuk terakhir akan keluar terakhir) yang apabila kita menghapus / mengeluarkan data, maka data yang pertamalah yang akan terhapus/ keluar terdahulu dan data yang terakhir akan terhapus/ keluar terakhir.

Guna counter pada rangkaian stack dan queue adalah untuk menentukan apakah stack atau queue tersebut sudah full atau masih empty.
Malloc merupakan fungsi standart untuk mengalokasinkan memori
Banyaknya byte yaang akan dipesan dinyatakan sebagai parameter fungsi. Untuk return value dari fungsi ini adalah sebuah pointer yang tak bertipe ( pointer to void) yang menunjuk ke buffer(tempat penyimpanan sementara) yang dialokasikan .
Pointer harus dikonversi pada tipe data yang sesuai ( dengan menggunakan type cast) agar bisa mengakses data yang disimpan dalam buffer.
Kegunaan dari malloc adalah mengembalikan pointer kesejumlah n byte ruang memori yang belum di inisialisasi. Apabila tidak terpenuhi akan mengembalikan ke nilai NULL.

Fungsi dari free adalah untuk membebaskan memori yang telah dipakai dalam fungsi malloc() , calloc().
sintak : void *free (void *memblock)
fungsi ini untuk menghindari adanya pemborosan memori atau terjadi kebocoran memori ( memori leak ) maka harus melakukan dealokasi terhadap ruang-ruang memori yang sebelumnya dialokasikan .

berikut merupakan contoh kodingan di kelas Besar :
#include<stdio.h>
#include<stdlib.h>

struct Data
{
    int value;
    struct Data *next,*prev;
}*head,*curr,*tail;

void push(int a)
{
    curr = (struct Data*)malloc(sizeof(struct Data));
    curr->value = a;
   
    if(head==NULL)
    {
        head = tail = curr;
    }else{
        tail->next = curr;
        curr->prev = tail;
        tail = curr;
    }
    head->prev = tail->next = NULL;
}

void cetak()
{
    curr = head;
    while(curr!=NULL){
        printf("%d\n",curr->value);
        curr = curr->next;
    }
}

void pop2()
{
    if(tail == head){
        free(curr);
        tail = head = curr = NULL;
    }
    else
    {
        tail = tail->prev;
        free(tail->next);
        tail->next = NULL;
    }
}
void pop()
{
    curr = head;
   
    if(tail == head){
        free(curr);
        tail = head = curr = NULL;
    }
    else
    {
        while(curr->next!=tail){
            curr = curr->next;
        }
        free(tail);
        tail = curr;
        tail->next = NULL;
    }
}

int main()
{
    push(10);
    push(20);
    push(30);
    push(40);
   
//    pop2();pop2(); -> Untuk menghapus
    cetak();
   
    //printf("\n%d\n",head->next->next->prev->value);
    getchar();
    return 0;
}

Sumber : 

https://sciencebooth.com/2013/05/18/perbedaan-utama-stack-dan-queue/
https://faishalmovic13.wordpress.com/2012/10/31/program-double-linked-list-pada-c/
http://codeforshare.blogspot.com/2011/02/linkedlist-vs-array_09.html 
http://blog.ub.ac.id/ditya/category/kuliah/asd/ 

Komentar

Postingan populer dari blog ini

RANGKUMAN