Chương 4 trình bày về danh sách liên kết thông qua các nội dung cụ thể như sau: Đặt vấn đề - cấu trúc dữ liệu động, con trỏ và kiểu dữ liệu động, cấu trúc và con trỏ, định nghĩa danh sách liên kết, các phép toán trên danh sách liên kết, sắp thứ tự trên danh sách liên kết, danh sách liên kết kiểu FIFO và LIFO, một số ứng dụng của danh sách liên kết. Mời tham khảo.
Đại Họ Học Sư Phạ Phạm Tp Hồ Hồ Chí Chí Minh Nội dung CẤU TRÚC DỮ LIỆU Chương 4: DANH SÁCH LIÊN KẾT Đặt vấn đề - ctdl động, sao? Con trỏ kiểu liệu động Cấu trúc trỏ Định nghĩa danh sách liên kết Các phép toán danh sách liên kết Sắp thứ tự danh sách liên kết Danh sách liên kết kiểu FIFO LIFO Một số ứng dụng danh sách liên kết Đặt vấn đề - ctdl động, sao? Đặt vấn đề - ctdl động, sao? Vấn đề hiệu sử dụng nhớ • Nhu cầu thực tế kiểu liệu: struct NGUOI { char hoten[30]; CTDL động giải int soCMND; vấn đề Nó giải nào? NGUOI cha,me; }; Biến tĩnh NNLT Nhu cầu thực tế • Vùng nhớ kiểu liệu tĩnh sinh ta khai báo biến khỏi phạm vi khai báo chương trình kết thúc biến tồn cục • Có nhiều biến tĩnh khơng cần sử dụng tồn chiếm nhớ chương trình hủy theo chế biến tỉnh gây lãng phí nhớ • Biến tĩnh chương trình khơng thay đổi cấu trúc hay độ lớn thực thi Khi khai báo kiểu liệu NNLT thường yêu cầu kiểu liệu phải xác định kích thước rõ ràng Với nhu cầu khơng thể tính kích thước rõ ràng cho kiểu liệu người CTDL động giải vấn đề Nó giải nào? • Trong chu kỳ sống số đối tượng liệu thay đổi cấu trúc, độ lớn như: danh sách học viên tăng lên giảm xuống bất hợp lý Con trỏ kiểu liệu động Đặt vấn đề - ctdl động, sao? Hạn chế kích thước nhớ cho biến tĩnh • Tổng kích thước vùng nhớ dành cho tất biến tĩnh 64kb (1 segment nhớ) • Nhu cầu thực tế: cần nhiều nhớ • Biến khơng động • Kiểu trỏ • Biến động CTDL động giải vấn đề Nó giải nào? Con trỏ kiểu liệu động Con trỏ kiểu liệu động a Biến không động Được khai báo tường minh.Tồn phạm vi khai báo Được cấp phát nhớ vùng liệu ngăn xếp Kích thước khơng đổi suốt q trình sống Biến có định danh gắn với vùng nhớ cấp phát, truy xuất trực tiếp thông qua định danh Ví dụ: int x; char a[100]; b Kiểu trỏ Ví dụ: int *n; int *a = new int[4]; int data[4]; char *b; char c[10]; Biến trỏ biến dùng để lưu địa đối tượng liệu khác Cho trước kiểu T= Kiểu trỏ Tp đến phần tử có kiểu T định nghĩa: Tp= Vp = {{Các địa lưu trữ đối tượng kiểu T}, NULL} Op= {Các thao tác tác động lên biến trỏ kiểu T} student *st; hay typedef student *pStudent; pStudent st; 10 Các thao tác kiểu trỏ Khi biến trỏ p lưu địa biến x, ta nói “p trỏ đến x” int *p; int x=5; p=&x; cout