Professional Documents
Culture Documents
Chuong3 Danh Sach
Chuong3 Danh Sach
Chương 3
Nội dung
Giớ i thiệu
Phâ n loạ i: Danh sá ch đặ c & danh sá ch liên kết
Khá i niệm về danh sá ch liên kết
Sự khá c biệt giữ a danh sá ch liên kết và mả ng
Mộ t số loạ i danh sá ch liên kết thườ ng gặ p
Cá c thao tá c trên danh sá ch liên kết đơn
Ngă n xếp
Hà ng đợ i
Phân loại
Danh sá ch đặ c (kề)
Danh sá ch liên kết
• Ưu điểm
– Mậ t độ sử dụ ng 100%
– Dễ dà ng truy xuấ t đến từ ng phầ n tử :
• Nhược điểm
– Độ phứ c tạ p thuậ t toá n thêm/bớ t phầ n tử và o/ra danh sá ch
là khá cao T(n)max=O(n)
– Lã ng phí khi trong danh sá ch có nhiều phầ n tử cù ng giá trị
Bài tập
Viết chương trình quả n lý sinh viên cà i đặ t bằ ng
danh sá ch đặ c. Chương trình gồ m cá c chứ c nă ng:
- Thêm danh sá ch SV
- Thêm 1 SV và o danh sá ch
- Xó a 1 SV khỏ i danh sá ch
- Hiệu chỉnh sinh viên
- Sắ p xếp danh sá ch SV theo mã sinh viên
- Tìm kiếm SV theo mã SV
- Xó a toà n bộ danh sá ch SV
pHead
pTail
pHead
pTail
pHead pTail
NULL pPre
pPre 8 pNext pPre 9 pNext pPre 5 pNext 10 pNext
NULL
A D I M N W
• Thêm mộ t nú t p và o đầ u danh sá ch
– Nếu Danh sá ch rỗ ng Thì
• Gá n: pHead = p;
– Ngượ c lạ i
• p->Next = pHead;
• pHead = p;
pHead
A B C D E NULL
X
p
pHead
A B C D E
ptemp
X
ptemp->next=tam;
}
}
– Nếu (q != NULL)
• p=CreateNode(x)
• p>next = q->next;
• q->next = p ;
– Ngượ c lạ i: q = p;
q
pHead
A B C D E
p
GV: ThS. Nguyễn Phương Nam - namnp@hub.edu.vn 35
Khoa Hệ Thống Thông Tin Quản lý
p
pHead
A B X Z Y
p
pHead
A B X Z Y
p q
pHead
A B C D E
p q
pHead
A B C D E
q
pHead
A B X Z Y
p
GV: ThS. Nguyễn Phương Nam - namnp@hub.edu.vn 41
Khoa Hệ Thống Thông Tin Quản lý
p = pHead;
– Trong khi chưa hết danh sá ch
• Xử lý nú t p ;
• p= p->pNext;
pHead
A B C D E
P
GV: ThS. Nguyễn Phương Nam - namnp@hub.edu.vn 43
Khoa Hệ Thống Thông Tin Quản lý
pHead
A B C D E
P
GV: ThS. Nguyễn Phương Nam - namnp@hub.edu.vn 45
Khoa Hệ Thống Thông Tin Quản lý
Bài tập
NGĂN XẾP
STACK
Nội dung
• Hình sau đây mô tả hình ảnh của Stack qua các tác vụ:
- push(s,A): hình a.
- push(s,B): hình b.
- pop(s): hình c.
- push(s,C): hình d.
Pop
Push
Top
• Mô tả Stack
Mô tả dữ liệu:
Stack là mộ t kiểu dữ liệu trừ u tượ ng có nhiều nú t cù ng kiểu
dữ liệu trả i dà i từ đáy Stack đến đỉnh Stack.
Mô tả các tác vụ:
- Tác vụ Init
Chứ c nă ng: khở i độ ng Stack
Dữ liệu nhậ p: khô ng
Dữ liệu xuấ t: Stack top trở về đầ u Stack.
- Tác vụ IsEmpty
Chứ c nă ng: kiểm tra Stack có rỗ ng hay khô ng.
Dữ liệu nhậ p: khô ng.
Dữ liệu xuấ t: TRUE|FALSE.
• Mô tả Stack
- Tác vụ Push
Chứ c nă ng: thêm nú t mớ i tạ i đỉnh Stack.
Dữ liệu nhậ p: nú t mớ i
Dữ liệu xuấ t: khô ng.
- Tác vụ Pop
Chứ c nă ng: xó a nú t tạ i đỉnh Stack.
Dữ liệu nhậ p: khô ng
Điều kiện: Stack khô ng bị rỗ ng.
Dữ liệu xuấ t: nú t bị xoá .
HÀNG ĐỢI
QUEUE
Nội dung
Front
Append Take
• Mô tả Queue
Mô tả dữ liệu
Hà ng đợ i là mộ t kiểu dữ liệu trừ u tượ ng có nhiều nú t cù ng kiểu
dữ liệu trả i dà i từ đầ u hà ng đợ i đến cuố i hà ng đợ i.
Mô tả các tác vụ cơ bản:
- Tá c vụ init
Chứ c nă ng: khở i độ ng hà ng đợ i
Dữ liệu nhậ p: khô ng
Dữ liệu xuấ t: hai con trỏ front và rear đượ c gá n cá c giá trị phù
hợ p.
- Tá c vụ IsEmpty
Chứ c nă ng: kiểm tra hà ng đợ i có bị rỗ ng hay khô ng
Dữ liệu nhậ p: khô ng
Dữ liệu xuấ t: TRUE|FALSE
GV: ThS. Nguyễn Phương Nam - namnp@hub.edu.vn 71
Khoa Hệ Thống Thông Tin Quản lý
• Tá c vụ insert
Chứ c nă ng: Thêm nú t mớ i và o hà ng đợ i.
Dữ liệu nhậ p: nú t mớ i
Điều kiện: hà ng đợ i khô ng bị đầy.
Dữ liệu xuấ t: khô ng.
• Tá c vụ remove
Chứ c nă ng: lấy nú t tạ i đầ u hà ng đợ i
Dữ liệu nhậ p: khô ng
Điều kiện: hà ng đợ i khô ng bị rỗ ng
Dữ liệu xuấ t: thô ng tin nú t bị lấy ra.
• 6.2.2 Dùng danh sách liên kết hiện thực hàng đợi
Ta có thể cà i đặ t hà ng đợ i như mộ t danh sá ch liên kết: con
trỏ đầ u danh sá ch liên kết front chỉ nú t tạ i đầ u hà ng đợ i, con
trỏ rear trỏ đến nú t cuố i cù ng củ a hà ng đợ i.
Hình vẽ sau thể hiện cá ch cà i đặ t hà ng đợ i bằ ng danh sá ch
liên kết.
Tóm tắt