Danh sách được liên kết sử dụng phân bổ bộ nhớ động, tức là chúng phát triển và thu nhỏ tương ứng. Nó là tập hợp các nút.
Nút có hai phần như sau -
- Dữ liệu
- Liên kết
Các loại danh sách được liên kết
Các loại danh sách liên kết trong ngôn ngữ lập trình C như sau -
- Danh sách được liên kết đơn / lẻ
- Danh sách được liên kết đôi / liên kết đôi
- Danh sách liên kết đơn hình tròn
- Danh sách liên kết kép hình tròn
Thuật toán
Tham khảo thuật toán được cung cấp bên dưới để lưu trữ thông tin xe ô tô bằng cách sử dụng danh sách liên kết động.
Bước 1 - Khai báo các biến cấu trúc.
Bước 2 - Khai báo định nghĩa hàm để hiển thị.
Bước 3 - Phân bổ cấp phát bộ nhớ động cho biến.
Bước 4 - Sử dụng vòng lặp do while để nhập thông tin xe.
Bước 5 - Chức năng hiển thị cuộc gọi chuyển sang bước 2.
Ví dụ
Sau đây là chương trình C để lưu trữ thông tin ô tô bằng cách sử dụng danh sách liên kết động -
#include<stdio.h> #include<stdlib.h> #include<string.h> struct node{ char model[10],color[10]; int year; struct node *next; }; struct node *temp,*head; void display(struct node *head){ temp=head; while(temp!=NULL){ if(temp->year>2010 && (strcmp("yellow",temp->color)==0)) printf(" %s \t\t %s \t\t %d",temp->model,temp->color,temp->year); temp=temp->next; printf("\n"); } } int main(){ int n; char option,enter; head=(struct node *)malloc(sizeof(struct node)); temp=head; do{ printf("\nenter car model: "); scanf("%s",temp->model); printf("enter car color: "); scanf("%s",temp->color); printf("enter car year: "); scanf("%d",&temp->year); printf("\nDo you want continue Y(es) | N(o) : "); scanf("%c",&enter); scanf("%c",&option); if (option!='N'){ temp->next=(struct node *)malloc(sizeof(struct node)); temp=temp->next; } else { temp->next=NULL; } }while(option!='N'); display(head); return 0; }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
enter car model: I20 enter car color: white enter car year: 2016 Do you want continue Y(es) | N(o) : Y enter car model: verna enter car color: red enter car year: 2018 Do you want continue Y(es) | N(o) : Y enter car model: creta enter car color: Maroon enter car year: 2010 Do you want continue Y(es) | N(o) : N