Các bài toán về danh sách liên kết năm 2024
Danh sách liên kết là một cấu trúc dữ liệu quan trọng trong lập trình, bạn sẽ được học kiến thức này tại môn học Kỹ thuật lập trình hoặc Cấu trúc dữ liệu & giải thuật. Bài viết này mình sẽ giới thiệu các bạn lý thuyết về danh sách liên kết đơn bằng ngôn ngữ lập trình C và C++. NỘI DUNG :
image 1. Danh sách liên kết đơn và cấu trúc tự trỏ Danh sách liên kết đơn - Singly linked list là một cấu trúc dữ liệu, nó tương tự như một mảng động với những tính chất quan trọng như sau :
Mỗi phần tử trong DSLK được gọi là một node hay nút, node sẽ lưu thông tin dữ liệu (ví dụ như một số nguyên, 1 chuỗi ký tự, 1 sinh viên...) và ngoài ra cần có phần liên kết, phần liên kết này giúp các node có thể liên lạc với nhau. Mỗi node sẽ lưu thêm địa chỉ của node phía sau nó trong DSLK thông qua 1 thuộc tính con trỏ. Node cuối cùng trong danh sách liên kết thì phần liên kết của nó sẽ lưu con trỏ NULL image Để xây dựng một node cho DSLK bạn có thể dùng struct hoặc class, mỗi khi bạn cần tạo ra một node mới trong DSLK thì bạn cần cấp phát động, trong C bạn sử dụng malloc còn trong C++ bạn sử dụng toán tử new. Nếu bạn chưa thành thạo và con trỏ và cấp phát động thì bạn hãy tham khảo kiến thức đó trước khi học bài này. Một node trong DSLK đơn gồm 2 phần :
Cấu trúc node trong DSLK đơn : Ngôn ngữ C include "stdio.h"include "string.h"struct node{ };
typedef struct node node;
int main(){ }Output : Gia tri cua head : 13767920 Du lieu node ma head quan ly : 100 Cấu trúc node trong DSLK đơn : Ngôn ngữ C++ include "iostream"include "string.h"using namespace std; struct node{ };
int main(){ }Output : Gia tri cua head : 0x1f14f0 Du lieu node ma head quan ly : 100 Chú ý :
2.Độ phức tạp của các thao tác với DSLK đơn DSLK đơn rất thuận tiện trong việc xóa hoặc chèn phần tử tuy nhiên khi bạn truy cập các phần tử trong DSLK bắt buộc bạn phải duyệt tuần tự, vì DSLK đơn không hỗ trợ chỉ số như mảng. |