Chương 3: C U TRÚC D LI U ð NG 3.1 Ki u d li u 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 © Dương Thành Ph t-www.thayphet.net Khoa KTCN Trư ng ðH KTKT B.Dương 3.1 Ki u D Li u Con Tr 3.1.1 Bi n khơng đ ng 3.1.2 Ki u tr 3.1.3 Bi n đ ng © Dương Thành Ph t-www.thayphet.net Khoa KTCN Trư ng ðH KTKT B.Dương 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 kích thư c, s lư ng • ðư c khai báo tư ng minh • T n t i ph m vi khái báo • Kích thư c khơng thay đ i su t q trình s ng Ví d : int a; char b[10]; © Dương Thành Ph t-www.thayphet.net Khoa KTCN Trư ng ðH KTKT B.Dương 3.1.2 Ki u tr Ki u tr ki u s dùng lưu ñ a ch c a m t ñ i tư ng d li u khác Bi n thu c ki u tr bi n mà giá tr c a đ a ch m t vùng nh c a m t bi n ho c giá tr Null Tùy vào lo i tr g n (near pointer) hay tr xa (far pointer) mà ki u d li u tr có kích thư c khác nhau: + Con tr g n: bytes + Con tr xa: bytes © Dương Thành Ph t-www.thayphet.net Khoa KTCN Trư ng ðH KTKT B.Dương Cú pháp ñ nh nghĩa m t ki u tr typedef *; Ví d : typedef int *intpointer; inpointer p; Hay int *p; Các thao tác: - Khi bi n 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 tr p: p=& -Truy xu t n i dung c a ñ i tư ng p tr ñ n *p © Dương Thành Ph t-www.thayphet.net Khoa KTCN Trư ng ðH KTKT B.Dương c Ví d : void main() { int a,b,*pa,*pb; a=2; b=3; cout