Linked List Dalam Bahasa C

Linked list merupakan struktur data (bertipe sama, Lihat: Struct (Struktur) dalam Bahasa C) yang terdiri sekumpulan node yang secara bersama-sama merepresentasikan sebuah urutan. Linked list juga disebut sebuah metode untuk menyimpan data dengan struktur sehingga dapat secara otomatis menciptakan suatu tempat di memory untuk menyimpan data yang dibutuhkan.

Ada beberapa Jenis dari linked list, Antara Lain:
  • Single linked list
  • Double linked list
  • Circular linked list

Ilustrasi Struktur Linked List:

Ilustrasi Struktur Linked List

Pada gambar diatas kita memiliki 4 buah Struktur node, yang masih-masing menyimpan data dengan nilai 10, 20, 30 dan 40. Pointer P yang terdapat pada Struktur node ke-1 berisi alamat dari Struktur node ke-2, Pointer P yang ada pada Struktur node ke-2 berisi alamat dari Struktur node ke-3, dan Pointer P yang ada pada Struktur node ke-3 berisi alamat dari Struktur node ke-4, Sedangkan Pointer P yang terdapat di struktur node ke-4 akan berisi NULL, hal ini menunjukkan bahwa struktur node ke-4 berada di akhir rangkaian.

Struktur Node sendiri elemennya dapat di ilustrasikan sebagai berikut (Lihat: Struct (Struktur) dalam Bahasa C):
Struktur node{
  int data;
  struktur node *p;
};

Menurut cara pengisian dan pengambilan elemennya, linked list dibagi menjai 2 macam:

Contoh Program Sederhana Linked List Dalam Bahasa C

Linked List Dalam Bahasa C


#include <stdio.h>
#include <stdlib.h>

struct NODE {
 int number;
 struct NODE *next;
};

void append_node(struct NODE *llist, int num);
int  search_value(struct NODE *llist, int num);
void display_list(struct NODE *llist);


int main(void) {
 int num = 0;
 int input = 5;
 int retval = 0;
 struct NODE *llist;

 llist = (struct NODE *)malloc(sizeof(struct NODE));
 llist->number = 0;
 llist->next = NULL;

while(input != 0) {
  printf("\n===== Pilih Menu =====\n");
  printf("0: Keluar\n");
  printf("1: Insert\n");
  printf("2: Search\n");
  printf("3: Tampilkan\n");
  printf("\nPilihan: ");scanf("%d", &input);

if(input==0){
    printf("...Terimakasih...\n");
}
else if(input==1){
    printf("Anda Memilih: 'Insert'\n");
    printf("Masukkan Nilai Yang Akan di Insert: ");
    scanf("%d", &num);
    append_node(llist, num);
}
else if(input==2){
    printf("Anda Memilih: 'Search'\n");
    printf("Masukkan Nilai Yang Akan di Cari (Search): ");
    scanf("%d", &num);
    if((retval = search_value(llist, num)) == -1)
        printf("Value `%d' not found\n", num);
    else
        printf("Value `%d' located at position `%d'\n", num, retval);
}
else if(input==3){
    printf("Anda Memilih: 'Tampilkan'\n");
    display_list(llist);
}}

 free(llist);
 return(0);
}

void append_node(struct NODE *llist, int num) {
 while(llist->next != NULL)
  llist = llist->next;

 llist->next = (struct NODE *)malloc(sizeof(struct NODE));
 llist->next->number = num;
 llist->next->next = NULL;
}

int search_value(struct NODE *llist, int num) {
 int retval = -1;
 int i = 1;

 while(llist->next != NULL) {
  if(llist->next->number == num)
   return i;
  else
   i++;

  llist = llist->next;
 }

 return retval;
}

void display_list(struct NODE *llist) {
 while(llist->next != NULL) {
  printf("%d ", llist->number);
  llist = llist->next;
 }

 printf("%d", llist->number);
}




MARKIJAR: MARi KIta belaJAR

Suka dengan artikel kami ? Tidak ada salahnya untuk berlangganan artikel terbaru dari MARKIJAR.Com langsung via email mu :

0 Response to "Linked List Dalam Bahasa C"

Post a Comment