size
Bài học 9 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ễThêm một phương thức size vào lớp LinkedList.
Phương thức này không nhận đầu vào và trả về số nút hiện có trong danh sách (giá trị của count).
Tự làm thử
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "linkedlist.h"
int main() {
LinkedList ll;
LinkedList_init(&ll);
char line[256];
while (fgets(line, sizeof(line), stdin)) {
line[strcspn(line, "\r\n")] = '\0';
char* cmd = strtok(line, " \t");
if (!cmd) continue;
if (strcmp(cmd, "state") == 0) printf("%s %d\n", ll.head == NULL ? "true" : "false", ll.count);
if (strcmp(cmd, "count") == 0) printf("%d\n", ll.count);
if (strcmp(cmd, "headValue") == 0) printf("%d\n", Node_getValue(ll.head));
if (strcmp(cmd, "addFirst") == 0) {
char* arg = strtok(NULL, " \t");
LinkedList_addFirst(&ll, atoi(arg));
}
if (strcmp(cmd, "addLast") == 0) {
char* arg = strtok(NULL, " \t");
LinkedList_addLast(&ll, atoi(arg));
}
if (strcmp(cmd, "get") == 0) {
char* arg = strtok(NULL, " \t");
printf("%d\n", LinkedList_get(&ll, atoi(arg)));
}
if (strcmp(cmd, "remove") == 0) {
char* arg = strtok(NULL, " \t");
LinkedList_remove(&ll, atoi(arg));
}
if (strcmp(cmd, "size") == 0) printf("%d\n", LinkedList_size(&ll));
}
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