1. Trang chủ
  2. » Giáo Dục - Đào Tạo

LÝ THUYẾT

4 37 0

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

THÔNG TIN TÀI LIỆU

Nội dung

1.Danh sách liên kết đơn (Danh sách liên kết cấu trúc liệu mà phần tử cần phải lưu thơng tin địa phần tử trước Danh sách liên kết linh động mảng nhiều thêm, xóa phần tử - Mỗi phần tử liên kết với phần tử đứng liền sau danh sách - Mỗi phần tử danh sách liên kết đơn cấu trúc có hai thành phần  Thành phần liệu: Lưu trữ thông tin thân phần tử  Thành phần liên kết: Lưu địa phần tử đứng sau danh sách NULL phần tử cuối danh sách 2.So sánh Danh sách liên kết mảng Danh sách liên kết  Ưu điểm: - Cung cấp giải pháp để chứa cấu trúc liệu tuyến tính - Dễ dàng thêm xóa phần tử danh sách mà không cần phải cấp phát tổ chức lại trật tự mảng - Cấp phát nhớ động  Nhược điểm: - Code phức tạp mảng - Một danh sách liên kết đơn giản không cho phép truy cập ngẫu nhiên liệu - Chính lí mà số phép tính tìm phần tử cuối cùng, xóa phần tử ngẫu nhiên hay chèn thêm, tìm kiếm phải duyệt tất phần tử Mảng  Ưu điểm: - Dễ hiểu dễ sử dụng - Truy cập đến phần tử mảng nhanh  Hạn chế: - Kích thước mảng phải cố định - Các byte vùng nhớ cấp phát mảng xếp liên tục - Việc chèn xóa phần tử mảng nhiều thời gian: vùng nhớ cấp phát cho mảng xếp liên tục 3.Một số khái niệm cấu trúc - Cây: tập hợp T phần tử (nút cây), có nút đặc biệt gọi nút gốc, nút lại chia thành tập rời T1, T2, …,Tn theo quan hệ phân cấp, Ti Mỗi nút cấp i quản lý số nút cấp i+1 Quan hệ người ta gọi quan hệ cha – - Bậc nút: số nút - Bậc cây: bậc lớn nút Cây có bậc n gọi n-phân - Nút gốc: nút khơng có nút cha - Nút lá: nút có bậc - Nút nhánh: nút có bậc khác khơng phải gốc - Mức nút: Mức (T0 ) = Gọi T1, T2, T3, , Tn T0 Mức (T1) = Mức (T2) = = Mức (Tn) = Mức (T0) + - Độ dài đường từ gốc đến nút x: số nhánh cần qua kể từ gốc đến x - Chiều cao h cây: mức lớn nút 4.Cây nhị phân tìm kiếm gì? Cây nhị phân tìm kiếm (CNPTK): nhị phân nút, khóa nút xét lớn khóa tất nút thuộc trái nhỏ khóa tất nút thuộc phải Hoặc  Là nhị phân • Bảo đảm ngun tắc bố trí khoá nút: – Các nút trái nhỏ nút hành – Các nút phải lớn nút hành (Đặc điểm nhị phân: Mọi nút có tối đa Với nút: + Toàn nút bên trái có khố nhỏ khố + Tồn nút bên phải có khố lớn khố nó.) 5.Ưu điểm nhị phân tìm kiếm? Ưu điểm: Có ưu điểm danh sách liên kết là: + Thao tác hủy chèn nhanh + Có thể cấp phát thêm nút thu hồi nhớ cấp phát cho nút kích thước khơng bị giới hạn 64 KB + Tìm kiếm nhanh (trong danh sách liên kết tìm kiếm chậm) Nhược điểm: Tốn thêm nhớ để lưu trữ địa nút trái, phải Ưu điểm nhị phân tìm kiếm  Nhờ trật tự bố trí khóa : – Định hướng tìm kiếm • Cây gồm N phần tử : – Trường hợp tốt h = log2N – Trường hợp xấu h = Ln – Tình xảy trường hợp xấu ? ĐÁNH GIÁ - Tất thao tác searchNode, insertNode, deleteNode CNPTK có độ phức tạp trung bình O(h), với h chiều cao - Trong trường hợp tốt nhất, CNPTK có n nút có độ cao h = log2(n) Chi phí tìm kiếm tương đương tìm kiếm nhị phân mảng có thứ tự Tuy nhiên, trường hợp xấu nhất, bị suy biến thành DSLK (khi mà nút có trừ nút lá) Lúc thao tác có độ phức tạp O(n) Vì cần có cải tiến cấu trúc CNPTK để đạt chi phí cho thao tác log2(n) Cây nhị phân cân bằng: Cây nhị phân tìm kiếm cân mà nút độ cao trái phải chênh lệch không Ưu điểm cân hoàn toàn thực thao tác tìm kiếm trường hợp xấu ta phải tìm qua log2n phần tử (n số nút cây) Nhược điểm cân dễ cân ta thêm hay xố nút cây, cần có cấu trúc khắc phục nhược điểm đồng thời tận dụng tối đa ưu điểm 7.Tổ chức liệu nhị phân cân Chỉ số cân = độ lệch trái phải nút Các giá trị hợp lệ :  CSCB(p) =  Độ cao trái (p) = Độ cao phải (p)  CSCB(p) =  Độ cao trái (p) < Độ cao phải (p)  CSCB(p) = -1  Độ cao trái (p) > Độ cao phải (p) 8.Bảng băm: Ý tưởng bảng băm (hash): Biến đổi khoá k thành số (bằng hàm hash) sử dụng số địa để tìm kiếm bảng liệu - Phép Băm (Hashing): Là trình ánh xạ giá trị khóa vào vị trí bảng - Một hàm băm ánh xạ giá trị khóa đến vị trí ký hiệu: h - Bảng băm (Hash Table) mảng lưu trữ record, ký hiệu: HT - HT có M vị trí đánh mục từ đến M-1, M kích thước bảng băm - Bảng băm thích hợp cho ứng dụng cài đặt đĩa nhớ, cấu trúc dung hòa thời gian truy xuất không gian lưu trữ - Hàm băm tốt thỏa mãn điều kiện sau: o Tính tốn nhanh o Các khoá phân bố bảng o Ít xảy đụng độ - Giải vấn đề băm với khố khơng phải số ngun: o Tìm cách biến đổ khố thành số ngun  Trong ví dụ trên, loại bỏ dấu ‘-’ 9635-8904 đưa số nguyên 96358904  Đối với chuỗi, sử dụng giá trị ký tự bảng mã ASCCI o Sau sử dụng hàm băm chuẩn số nguyên Giải xung đột:  Phương pháp nối kết: + nối kết trực tiếp (kỹ thuật danh sách liên kết) + kết nối hợp  Phương pháp băm lại: + dò tuyến tính + dò bậc hai + băm kép

Ngày đăng: 25/10/2019, 11:16

w