Danh sách được liên kết là một cấu trúc dữ liệu tuyến tính lưu trữ phần tử ở các vị trí bộ nhớ không liền nhau. Mọi phần tử đều chứa một con trỏ đến phần tử tiếp theo của danh sách được liên kết.
Ví dụ -
Trong bài toán này, chúng ta được cung cấp một danh sách liên kết và chúng ta cần in các phần tử của danh sách liên kết này nhưng chỉ các phần tử thay thế được in. Hãy lấy một ví dụ để hiểu rõ vấn đề hơn,
Input : 2 -> 4 -> 1 -> 67 -> 48 -> 90 Output : 2 -> 1 -> 48
Giải thích - Chúng tôi sẽ in các phần tử thay thế trong danh sách liên kết. Vì vậy, phần tử thứ nhất, thứ ba và thứ năm được in.
Chúng tôi sẽ sử dụng một phần tử cờ mà ban đầu sẽ là 0 và sẽ được tăng lên ở mỗi lần lặp.
Ví dụ
#include <stdio.h> #include <stdlib.h> struct Node { int data; struct Node* next; }; void printAlternateNode(struct Node* head){ int flag = 0; while (head != NULL) { if (flag == 0){ printf(" %d ", head->data); flag = 1; } else flag = 0; head = head->next; } } void insertNode(struct Node** head_ref, int new_data){ struct Node* new_node = (struct Node*)malloc(sizeof(struct Node)); new_node->data = new_data; new_node->next = (*head_ref); (*head_ref) = new_node; } int main(){ struct Node* head = NULL; insertNode(&head, 23); insertNode(&head, 4); insertNode(&head, 98); insertNode(&head, 5); insertNode(&head, 71); printAlternateNode(head); return 0; }
Đầu ra
71 98 23