Edisi pembelajaran bahasa Indonesia. Kode dan keluarannya tetap seperti aslinya.
Singly linked list dalam C
Buat, telusuri, dan bebaskan node yang dihubungkan oleh pointer.

Sebuah node menyimpan nilai dan pointer ke node berikutnya. head menunjuk awal, sedangkan NULL menandai akhir atau list kosong. Berbeda dari array, node tidak harus berada pada alamat yang bersebelahan.
Periksa malloc sebelum menulis. Saat menyisipkan atau menghapus node, pertahankan hubungan ke sisa list dan perbarui head jika node pertama berubah. Pencarian nilai membutuhkan penelusuran dengan waktu O(N).
Untuk membebaskan list, simpan pointer ke node berikutnya sebelum memanggil free pada node saat ini. Uji list kosong, satu node, dan beberapa node. Setelah free, bidang node yang dibebaskan tidak boleh dibaca.
Kode C
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
Node* insertHead(Node *head, int val) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = val;
newNode->next = head;
return newNode;
}
void printList(Node *head) {
Node *curr = head;
while (curr != NULL) {
printf("%d -> ", curr->data);
curr = curr->next;
}
printf("NULL\n");
}
void freeList(Node *head) {
Node *curr = head;
while (curr != NULL) {
Node *temp = curr;
curr = curr->next;
free(temp);
}
}
int main() {
Node *head = NULL;
head = insertHead(head, 30);
head = insertHead(head, 20);
head = insertHead(head, 10);
printf("Linked List: ");
printList(head);
freeList(head);
return 0;
}Buka di kompilerKeluaran yang diharapkan
Linked List: 10 -> 20 -> 30 -> NULL
Pertanyaan umum
Mengapa kode dan keluarannya tetap dalam bahasa Inggris?
Kata kunci, pengenal, dan teks yang diperiksa tes dipertahankan agar program tidak berubah. Penjelasan dan kontrol telah diterjemahkan.