Selasa, 03 Maret 2020

SUMMARY Data Structure 3 Maret 2020


SUMMARY Data Structure 3 Maret 2020
Stack adalah struktur data yang elemennya berurutan ke atas, sehingga hanya bisa insert atau delete elemen yang terakhir/top.
Stack bisa menggunakan array atau linked list.
Stack memiliki 2 variabe yaitu top dan max.
Jika Top = null; stack kosong, top = max -1; stack full;


Beberapa operasi stack yang penting
-        Push(x) = untuk menambah elemen di top
-        Pop() : menghilangkan elemen di top
-        Top(): menampilkan elemen top



INFIX POSTFIX DAN PREFIX
Prefix= operator ditulis sebelum operand, contoh *8 11 dan +3 * 3 3;
Infix = operator ditulis diantara operand, contoh 3* 8 dan 4+2*5;
Postfix = operator ditulis setelah operand, contoh 5 1* dan 3 1 2 * -;

Queue adalah struktur data yang menympan elemennya berurutan, elemen yang bisa di delete hanya bisa dari bawah/rear dan ditambah dari atas/front.

Beberapa operasi stack yang penting
-        Push(x) = untuk menambah elemen di rear
-        Pop() : menghilangkan elemen di front
-        front (): menampilkan elemen front
keunggulan queue dari stack adalah queue memiliki varian seperti circular queue, priority queue dan doubly ended queue sedangkan stack lebih mudah digunakan dari queue.

Aplikasi stack:
- Evaluasi expression(prefix, postfix, dan infix)
- konversi expression
- backtracking
- string reversal

Aplikasi queue
-serving request on a single shared resource
-call center queue(mengurutkan orang yang ingin menelepon)





SUMMARY GSLC 25 Februari 2020

gslcraymondbinus
                                                                           SUMMARY GSLC 25 Februari 2020
Linked List adalah struktur data yang terhubung dengan setiap elemen menunjuk ke elemen berikutnya.
Circular linked list adalah linked list yang pointer terakhirnya akan mengarah kembali ke node pertama, sehingga tidak mengandung value NULL
Dalam Circular double linked list setiap data menunjuk elemen berikut dan sebelumnya
Contoh circular double linked list adalah
struct data {
                              int value;
                              struct data *next;
                              struct data *prev;
               };*head,*curr,*tail
Insert di belakang circular linked list menggunakan
Struct data *node = (struct data*) malloc(sizeof(struct data));
Node->value = 30;
Node->next = NULL;
Node->prev = node;
Tail = node;

Elemen di di circular linked list bisa didelete dengan memenuhi 4 kondisi yaitu node yaitu
Nodenya adalah satu satunya node:
Free(head(;
Head=NULL;
Tail=NULL;

Node nya adalah head:
Head = head->next;
Free(head->prev);
Head->prev = NULL;

Nodenya adalah tail:
Tail = tail->prev;
Free(tail->next);
Tail->next = NULL;

Nodenya bukan head atau tail:
Struct data *curr = head;
While(curr->next->vale !-x) curr = curr->next;
Struct data *a = curr;
Struct data *del = curr->next;
Struct *b = curr->next->next;
a->next =b;
b->prev =a;
free(del);