Cho biết cách khai báo danh sách nào sai


Danh sách liên kết có thể được cài đặt bằng mảng hoặc bằng con trỏ. Trong bài viết này mình sẽ hướng dẫn các bạn sử dụng mảng :], Loại danh sách này thường được gọi là danh sách kế tiếp.

1. Cài đặt [khai báo] danh sách

Để khai báo danh sách này ta cần có 1 mảng có số phần tử tối đa là N có kiểu dữ liệu là item [item này là kiểu dữ liệu tổng quan, khi làm nó sẽ là kiểu int, float hay kiểu cấu trúc sinh viên]. Cần thêm 1 biến size thể hiện số phần tử hiện có của danh sách.
Cụ thể như sau:

#define N 100 //so phan tu toi da la 100 typedef int item; /*kieu cac phan tu la item ma cu the o day item la kieu int */ typedef struct { item Elems[N]; //mang kieu item int size; //so phan tu toi da cua mang }List; //kieu danh sach List

2. Khởi tạo danh sách rỗng

Danh sách của ta rỗng khi số phần tử trong danh sách bằng 0. Vì vậy chỉ cần khai báo trường size của ta bằng 0 là được.

void Init[List *L] //ham khoi tao danh sach rong /*Danh sach L duoc khai bao kieu con tro de khi ra khoi ham no co the thay doi duoc*/ { [*L].size = 0; //size = 0. }

3. Kiểm tra danh sách rỗng, danh sách đầy

Để kiểm tra danh sách rỗng hay đầy ta chỉ việc xem số phần tử của danh sách có bằng 0 hay không [rỗng] và có bằng N hay không [đầy].

int Isempty [List L] { return [L.size==0]; } int Isfull [List L] { return [L.size==N]; }

4. Chèn phần tử vào vị trí k trong danh sách

Trước khi chèn phần tử vào trong danh sách chúng ta nên xây dựng 1 hàm trả về dữ liệu [nhập vào dữ liệu] của phần tử cần chèn đó.

item init_x[] //khoi tao gia tri x { int temp; scanf["%d",&temp]; return temp; }

Sau đó tiến hành chèn: Trong quá trình chèn chúng ta cần kiểm tra xem danh sách đầy chưa, nhập vị trí k cần chèn và kiểm tra nó, nếu phù hợp [0

Chủ Đề