Luyện tập #1
Bài học 10 trên 14 trong khóa học Danh sách liên kết, loạt bài về cấu trúc dữ liệu #5 của Coddy.
Thử thách
DễViết một hàm (function) reverseList nhận mảng số nguyên arr và trả về mảng đã đảo ngược.
Dùng danh sách liên kết để giải bài toán này! Thêm từng giá trị vào đầu danh sách, sau đó đọc các giá trị ra.
Bạn phải dùng lớp LinkedList (được cung cấp trong linkedlist.<ext> cùng với node.<ext>) — không dùng các chức năng có sẵn của ngôn ngữ như hàm đảo ngược mảng, cắt lát hoặc thao tác danh sách trong thư viện chuẩn để tính kết quả.
Tự làm thử
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "solution.h"
int main() {
char line[8192];
if (!fgets(line, sizeof(line), stdin)) line[0] = '\0';
int arr[4096];
int len = 0;
char* tok = strtok(line, " \t\r\n");
while (tok) { arr[len++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
int rs = 0;
int* r = reverseList(arr, len, &rs);
for (int idx = 0; idx < rs; idx++) {
if (idx > 0) printf(" ");
printf("%d", r[idx]);
}
printf("\n");
return 0;
}
Tất cả bài học trong Danh sách liên kết, loạt bài về cấu trúc dữ liệu #5
Tự luyện tập: Trình biên dịch C online