Lompat ke konten Lompat ke sidebar Lompat ke footer

Linked List Bahasa C Beserta Fungsi dan Penjelasannya

Tidak seperti C++ dan Java, Bahasa C merupakan bahasa pemrograman yang tidak mendukung keyword linked list. Namun, untuk dapat melakukan hal tersebut, pada bahasa C dapat digunakan pointer void dan fungsi pointer untuk implementasi fungsi yang sama seperti linked list. Hal yang menaik tentang pointer void adalah pointer tersebut dapat digunakan untuk menunjuk ke tipe data jenis apapun. Juga, ukuran dari segala tipe pointer adalah selalu bernilai sama, sehingga dapat selalu dilakukan alokasi memori ke sebuah node linked list


Linked List Bahasa C Beserta Fungsi dan Penjelasannya
Linked List Bahasa C

Sebelum memahami lebih dalam materi tentang Linked List Bahasa C Beserta Fungsi dan Penjelasannya, terlebih dahulu pelajari materi tentang: Pointer Near, Far, dan Huge Bahasa C Beserta Penjelasannya [klik], Pointer Ke Fungsi Bahasa C Beserta Penjelasannya [klik], dan Pointer NULL Bahasa C Beserta Fungsi dan Penjelasannya [klik].

Fungsi pointer juga dibutuhkan pada pembuatan linked list Bahasa C untuk memproses penyimpanan konten aktual pada alamat yang dituju oleh pointer void. Berikut adalah contoh sederhana Bahasa C untuk mendemonstrasikan cara kerja dari linked list.

Baca Juga:

Contoh:

// Program Bahasa C untuk

// generic linked list

#include<stdio.h>

#include<stdlib.h>


/* Node linked list */

struct Node

{

// Tipe data apapun dapat

// disimpan pada node ini.

void *data;

struct Node *next;

};


/* Fungsi untuk menambahkan

 sebuah node pada bagian awal

 dari Linked List. Fungsi ini

 menerima sebuah pointer ke

 data yang akan ditambahkan

 nilai dan ukuran dari tipe

 datanya. */

void push(struct Node** head_ref, void *new_data, size_t data_siz)

{

// Alokasi memori untuk node

struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));

new_node->data = malloc(data_size);

new_node->next = (*head_ref);


// Konten duplikasi dari

// new_data ke alokasi memori

// terbaru.



// Diasumsikan: char

// mengalokasikan memori

// sebesar 1 byte.

int i;

for (i=0; i<data_size; i++)

*(char *)(new_node->data + i) = *(char *)(new_data + i);

// Mengubah pointer head

// sebagai node baru pada

// bagian awal.

(*head_ref) = new_node;

}


/* Fungsi untuk mencetak node

 yang diberikan pada linked

 list. fpitr digunakan untuk

 mengakses fungsi yang akan

 digunakan untuk mencetak

 nilai node data saat ini.*/ 


/*Catatan: tipe data yang

 berbeda juga membutuhkan

 specifier yang berbeda pula

 untuk dapat dicetak pada

 printf(). */

void printList(struct Node *node, void (*fptr)(void *))

{

while (node != NULL)

{

(*fptr)(node->data);

node = node->next;

}

}


// Fungsi untuk mencetak nilai

// integer.

void printInt(void *n)

{printf(" %d", *(int *)n);}


// Fungsi untuk mencetak

// sebuah float

void printFloat(void *f)

{printf(" %f", *(float *)f);}


/* Program untuk mengetes

 fungsi yang dibuat

 sebelumnya. */

int main()

{

struct Node *start = NULL;


// Membuat dan mencetak nilai

// integer linked list.

unsigned int_size = sizeof(int);

int arr[] = {10, 20, 30, 40, 50}, i;


for (i=4; i>=0; i--)

push(&start, &arr[i], int_size);


printf("Created integer linked list is \n");


printList(start, printInt);


// Membuat dan mencetak sebuah

// float linked list

unsigned float_size = sizeof(float);


start = NULL;


float arr2[] = {10.1, 20.2, 30.3, 40.4, 50.5};


for (i=4; i>=0; i--)

push(&start, &arr2[i], float_size);


printf("\n\nCreated float linked list is \n");


printList(start, printFloat);


return 0;

}

Output:
Created integer linked list is
10 20 30 40 50
Created float linked list is
10.100000 20.200001 30.299999 40.400002 50.500000

5 komentar untuk "Linked List Bahasa C Beserta Fungsi dan Penjelasannya"

  1. Apa yang dimaksud dengan linked list pada bahasa C?

    BalasHapus
    Balasan
    1. Linked list pada bahasa C merupakan bentuk struktur data linier, dimana setiap linked list memiliki dua bagian, yaitu bagian data dan bagian alamat yang menyimpan alamat elemen berikutnya dalam suatu daftar tertentu, yang disebut dengan node.

      Hapus
    2. Linked list bahasa C merupakan urutan struktur data yang berhubungan satu sama lain melalui suatu tautan tertentu.

      Hapus
    3. Linked list merupakan urutan link berisi item-item data.

      Hapus
    4. Setiap tautan linked list pada Bahasa C berisi koneksi ke tautan lainnya, dimana linked list tersebut paling banyak digunakan setelah penggunaan array pada bahasa C.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -