Tôi đang viết một LinkedList trong C, đoạn mã dưới đây thể hiện định nghĩa Node của tôi.Làm thế nào để xác định một cấu trúc typedef có chứa con trỏ cho chính nó?
typedef struct {
int value;
struct Node* next;
struct Node* prev;
} Node;
Tôi hiểu (hoặc nghĩ rằng tôi làm) rằng struct Node
không giống như typedef struct Node
. Cấp mã của tôi biên dịch và chạy như nó được cho là, tuy nhiên, tôi nhận được rất nhiều cảnh báo khi gán next
và prev
(cảnh báo: chuyển nhượng từ loại con trỏ không tương thích). Tôi đoán rằng điều này có liên quan đến cách tôi định nghĩa chúng trong cấu trúc Node. Tôi đã tải lên nguồn đầy đủ here
Vì vậy, nếu đó thực sự là vấn đề, làm thế nào tôi nên xác định next
và prev
bên trong typedef struct Node
?
Tôi đã lo lắng điều này có thể là một repost, nhưng không thể tìm thấy những gì tôi đang tìm kiếm. Cảm ơn.
Danh sách được liên kết của bạn trông rất lạ đối với tôi. Khi bạn có trước và sau đó tại sao bạn cần đầu và đuôi sau đó? Tìm một danh sách được liên kết tốt trong c và học hỏi từ nó. Tôi sẽ giới thiệu thư viện Apache Runtime. Tôi nghĩ rằng nó có một danh sách liên kết. – frast
có con trỏ để đầu và đuôi làm cho nối thêm và thêm O (1) thay vì O (n). Hãy cho tôi biết nếu bạn thấy các lỗi khác vì đây chủ yếu chỉ là một bài tập để giữ cho các kỹ năng C của tôi có chút tươi mới sau tất cả những năm Java này .. –