Chương 3: CẤU TRÚC DỮ LIỆU ðỘNG

3.1. Kiểu dữ liệu con trỏ 3.2. Danh sách liên kết (link list) 3.3. Danh sách liên kết ñơn 3.4. Sắp xếp danh sách 3.5. Các cấu trúc ñặc biệt của danh sách liên kết ñơn

3.5.1. Stack 3.5.2. Hàng ñợi (Queue)

3.6. Bài tập

1 1

Khoa CNTT Trường Cð CNTT TP.HCM

© Dương Thành Phết-www.thayphet.net

3.1. Kiểu Dữ Liệu Con Trỏ

3.1.1. Biến không ñộng 3.1.2. Kiểu con trỏ 3.1.3. Biến ñộng

2

Khoa CNTT Trường Cð CNTT TP.HCM

© Dương Thành Phết-www.thayphet.net

3.1.1. Biến không ñộng

Dùng ñề lưu trữ những ñối tượng dữ liệu ñược sử dụng không có nhu cầu thay ñổi và kích thước, số lượng . . . • ðược khai báo tường minh • Tồn tại trong phạm vi khái báo • Kích thước không thay ñổi trong suốt quá trình sống

Ví dụ:

int a; char b[10];

3

Khoa CNTT Trường Cð CNTT TP.HCM

© Dương Thành Phết-www.thayphet.net

3.1.2. Kiểu con trỏ

(cid:1)Kiểu con trỏ là kiểu cơ sở dùng lưu ñịa chỉ của một ñối tượng dữ liệu khác. (cid:1)Biến thuộc kiểu con trỏ là biến mà giá trị của nó là ñịa chỉ một vùng nhớ của một biến hoặc là giá trị Null. Tùy vào loại con trỏ gần (near pointer) hay con trỏ xa (far pointer) mà kiểu dữ liệu con trỏ có các kích thước khác nhau:

+ Con trỏ gần: 2 bytes + Con trỏ xa: 4 bytes

4

Khoa CNTT Trường Cð CNTT TP.HCM

© Dương Thành Phết-www.thayphet.net

Cú pháp ñịnh nghĩa một kiểu con trỏ

typedef *;

Ví dụ:

typedef int *intpointer; inpointer p; int *p; Hay Các thao tác: - Khi 1 biến con trỏ p lưu ñịa chỉ của ñối tượng x, ta nói “p trỏ x” - Gán ñịa chỉ của biến cho con trỏ p:

p=&

-Truy xuất nội dung của ñối tượng do p trỏ ñến

*p

5

Khoa CNTT Trường Cð CNTT TP.HCM

© Dương Thành Phết-www.thayphet.net

c. Ví dụ:

void main() { int a,b,*pa,*pb; a=2; b=3; cout<<"\nGia tri cua bien a="<