CTDL1 CH04 DSLK

17 196 0
CTDL1 CH04 DSLK

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đạ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 toà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 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 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[...]... Stack được sử dụng để: khử đệ quy, tổ chức lưu vết của quá trình tìm kiếm theo chiều sâu và quay lui, vét cạn, định trị biểu thức, … SV tự cài đặt stack 57 7 Các cấu trúc đặc biệt của dslk đơn 58 7 Các cấu trúc đặc biệt của dslk đơn • Hàng đợi • Hàng đợi – Là một vật chứa (container) các đối tượng làm việc theo cơ chế FIFO (first in first out) – Các thao tác trên hàng đợi • EnQueue(o): thêm đối tượng vào... l.pTail=NULL; } Hủy toàn bộ danh sách liên kết Hủy phần tử có khóa k cho trước 55 Selection Sort – Hoán vị nội dung phần dữ liệu (data) 56 6 Sắp xếp trên danh sách liên kết 7 Các cấu trúc đặc biệt của dslk đơn void ListSelectionSort (LIST &l) { NODE *i,*j,*min, *minpre=NULL; LIST lresult;KhoiTao(lresult); while(l.pHead!=NULL) //danh dách chưa hết { min=l.pHead;minpre=NULL; for(j=min,i=min->next;i!=NULL;j=i,i=i->next)

Ngày đăng: 22/12/2016, 12:40

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan