cuốn sách gpt4 ai đã làm

C - danh sách liên kết

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 06:02:15 29 4
mua khóa gpt4 Nike

Tôi đang cố gắng hiểu mã của danh sách liên kết. Tôi hiểu cách họ làm việc. Tôi đang xem một số mã liên quan đến bộ nhớ động và danh sách liên kết, tôi đã đơn giản hóa nó ở đây:

 #include 
#include

nút cấu trúc typedef {
char *word;
nút cấu trúc *tiếp theo;
} nút;

void display_word(node ​​​​*start) {
nút *start_node = bắt đầu;
đặt("");
for(; start_node != NULL; start_node = start_node->next) {
printf("%s", start_node->word);
}
}

nút* create_node(char *input) {
nút *n = malloc(sizeof(node));;
n->word = strdup(input);
n->tiếp theo = NULL;
return n;
}

int chính() {
nút *start_node = NULL;
nút *n = NULL;
nút *next_node = NULL;
char word_holder[20];
for(; fgets(word_holder,80,stdin) != NULL; n = next_node) {
next_node = create_node(word_holder);
if(start_node == NULL)
start_node = next_node;
nếu (n != NULL)
n->next = next_node;
}
display_word(bắt đầu);
}

Vì vậy chương trình sẽ tạo một danh sách liên kết cho mỗi từ người dùng nhập vào rồi in ra. Điều tôi không hiểu là trong hàm main() next_node được gán cho một nút mới mỗi lần tạo một nút mới, nhưng start_node trỏ đến next_node, vì vậy nó sẽ trỏ đến next_node cho mỗi nút mới được tạo mỗi lần? Vậy làm sao có thể vẫn giữ được danh sách? Không phải lần nào chúng ta cũng mất nút cũ sao?

Bất cứ ai có thể giải thích.

câu trả lời hay nhất

  1. Khi nút đầu tiên được tạo, con trỏ tới nó sẽ được lưu vào bắt đầu 中。

  2. Khi các nút tiếp theo được tạo, chúng sẽ được thêm vào danh sáchkết thúc,Vì thếbắt đầuVẫn trỏ đến nút đầu tiên và thông qua nó, phần còn lại của danh sách.

Sử dụng trình gỡ lỗi để duyệt qua mã của bạn hoặc lấy bút chì và giấy ra và vẽ ra những gì đang xảy ra khi bạn duyệt qua mã đó trong đầu và bạn sẽ thấy tất cả khớp với nhau như thế nào.

Về danh sách liên kết C, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/17198483/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress