Jumat, 14 Maret 2014

link list part 2

QUEUE:
adalah sebuah system linked list system yang  menganut system FIFO (first in first out);
queue menggunakan system pushHead dengan popTail selain itu bisa juga menggunakan system pushTail dengan  popHead;
queue menggunakan system priority queue jadi dalam sytem ini kita bisa langsung mensorting node yang di masukan , contoh kodingnya adalah:

void priority(char nama[], int usia){
struct Facebook *curr = (struct Facebook*) malloc(sizeof(struct Facebook));
strcpy(curr->nama,nama);
curr->usia = usia;
if(head == NULL){
head = tail = curr;
head->prev = NULL;
tail->next = NULL;
}else{
if(curr->usia > head->usia){
//pushHead
curr->next = head;
head->prev = curr;
head = curr;
head->prev = NULL;
}else if(curr->usia < tail->usia  ){
//pushTail
tail->next = curr;
curr->prev = tail;
tail = curr;
tail->next = NULL;
}else{
//push mid
struct Facebook *temp=head;
while(temp->next->usia > curr->usia){
temp = temp->next;
}
curr->next = temp->next;
temp->next->prev = curr;
temp->next = curr;
curr->prev = temp;
}
}
}

jadi secara logika bisa disimpulkan sebagai berikut:

//if(strcmp(curr->nama,head->nama) < 0){
// //push head
//}else if(strcmp(curr->nama,tail->nama) > 0){
// //push tail
//}else{
// //push mid

//}

STACK:

adalah sebuah system linked list system yang  menganut system LIFO (last in first out);
stack menggunakan system pushHead dengan popHead selain itu bisa juga menggunakan system pushTail dengan  popTail;

DOUBLE LINKED LIST:
adalah system linked list yang cara menyambungnya mempunyai 2 cara dengan next dan prev;
ini contoh kodingnya:


struct Facebook{
char nama[25];
int usia;
struct Facebook *next,*prev;
}*head,*tail , *curr;






Tidak ada komentar:

Posting Komentar