1. Trang chủ
  2. » Thể loại khác

cấu trúc dữ liệu nâng cao

93 786 0

Đ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

Cấu trúc

  • Bài 2: Một số phương pháp sắp xếp

  • I. Thuật toán sắp xếp nhanh - Quick Sort

  • Ðánh giá giải thuật

  • II.  Radix sort

  •  III. Sắp xếp cây - Heap sort

  • 1.Ý tưởng:

  • 2. Cấu trúc dữ liệu Heap

  • Ðịnh nghĩa Heap:

  • Heap có các tính chất sau :

  • Giải thuật Heapsort :

  • Ðánh giá giải thuật

  • Bài 3: BẢNG BĂM (HASH TABLE)

    • Các khái niệm chính trên cấu trúc bảng băm:

    • 1. PHÉP BĂM (Hash Function)

    • Một hàm băm tốt phải thỏa mãn các điều kiện sau:

    • Hàm Băm sử dụng Phương pháp chia

    • Hàm Băm sử dụng Phương pháp nhân

    • Phép băm phổ quát (unisersal hashing)

  • 2. BẢNG BĂM (Hash Table - Direct-address table)

    • Phần này sẽ trình bày các vấn đề chính:

    • a. Mô tả dữ liệu

    • b. Các phép toán trên bảng băm

    • Các Bảng băm thông dụng:

    • Ưu điểm của các Bảng băm:

    • 3. Các phương pháp tránh xảy ra đụng độ

    • 2.4.1. Bảng băm với phương pháp kết nối trực tiếp (Direct chaining Method)

    • Nhận xét bảng băm dùng phương pháp kết nối trực tiếp:

    • 2.4.2. Bảng băm với phương pháp kết nối hợp nhất

    • Khai báo cấu trúc bảng băm:

    • Cài đặt bảng băm dùng phương pháp kết nối hợp nhất:

    • 2.4.3. Bảng băm với phương pháp dò tuần tự

    • Khai báo cấu trúc bảng băm:

    • Cài đặt bảng băm dùng phương pháp dò tuyến tính:

    • 2.4.4. Bảng băm với phương pháp dò bậc hai

    • Khai báo cấu trúc bảng băm:

    • Cài đặt bảng băm dùng phương pháp dò bậc hai:

    • 2.4.5. Bảng băm với phương pháp băm kép

    • Khai báo

  • Bài 4:CÂY, CÂY NHỊ PHÂN, CÂY NHỊ PHÂN TÌM KIẾM

    • 1. Cấu trúc cây

    • 1.1. Định nghĩa 1:

    • 1.2. Một số khái niệm cơ bản

    • 1.3. Một số ví dụ về đối tượng các cấu trúc dạng cây 

    • 2. CÂY NHỊ PHÂN

    • 2.1 Định nghĩa

    • 2.2. Một số tính chất của cây nhị phân:

    • 2.3. Biểu diễn cây nhị phân T

    • 2.4. Các thao tác trên cây nhị phân

    • Thăm các nút trên cây theo thứ tự trước (Node-Left-Right)

    • Thăm các nút trên cây theo thứ tự giữa (Left- Node-Right)

    • Thăm các nút trên cây theo thứ tự sau (Left-Right-Node)

    • 2.5. Biểu diễn cây tổng quát bằng cây nhị phân

    • 2.6. Một cách biểu diễn cây nhị phân khác 

    • 3. CÂY NHỊ PHÂN TÌM KIẾM

    • 3.1. Định nghĩa:

    • 3.2. Các thao tác trên cây

    • 3.2.1. Thăm các nút trên cây

    • 3.2.2. Tìm một phần tử x trong cây

    • 3.3.3. Thêm một phần tử x vào cây

    • 2.4. Hủy một phần tử có khóa x

    • 2.5. ĐÁNH GIÁ

  • CÂY CÂN BẰNG

    • 1.CÂY NHỊ PHÂN CÂN BẰNG HOÀN TOÀN

    • 1.1. Định nghĩa

    • 1.2. Đánh giá 

    • 2. CÂY NHỊ PHÂN CÂN BẰNG (AVL Tree)

    • 2.1. Định nghĩa:

    • 2.2. Lịch sử cây cân bằng (AVL Tree)

    • 2.3. Chiều cao của cây AVL

    • 2.4. Cấu trúc dữ liệu cho cây AVL

    • 2.5. Đánh giá cây AVL

    • 3. CÁC THAO TÁC CƠ BẢN TRÊN CÂY AVL

    • 3.1. CÁC TRƯỜNG HỢP MẤT CÂN BẰNG

    • Trường hợp 1: cây T lệch về bên trái (có 3 khả năng)

    • Trường hợp 2: cây T lệch về bên phải

    • Sau đây, ta sẽ khảo sát và giải quyết từng trường hợp nêu trên

    • 3.2.THÊM MỘT PHẦN TỬ TRÊN CÂY AVL:

    • 3.3. HỦY MỘT PHẦN TỬ TRÊN CÂY AVL:

  • BÀI 6: CÂY ĐỎ ĐEN

    • 1. GIỚI THIỆU

    • Độ phức tạp:

    • 2. ĐỊNH NGHĨA CÂY ĐỎ ĐEN

    • Khai báo cấu trúc:

    • Bổ đề: 

    • 3. PHÉP QUAY

    • 4. THÊM NODE MỚI

    • 4.1 Các phép lật màu trên đường đi xuống

    • 4.2. Các phép quay khi chèn node

    • 5. LOẠI BỎ NODE

    • 6. TÍNH HIỆU QUẢ CỦA CÂY ĐỎ ĐEN

  • GIỚI THIỆU MÔN HỌC

  • Tóm tắt nội dung:

  • Bài 1: Danh sách liên kết

  • Ta có định nghĩa tổng quát

  • VD:

  • II. Các thao tác cơ bản trên danh sách đơn

  • 1.Chèn một phần tử vào danh sách:

  • Có 3 loại thao tác chèn new_ele vào xâu:

  • Cách 1: Chèn vào đầu danh sách

  • Nếu Danh sách rỗng Thì

  • Ngược lại

  • Cách 2: Chèn vào cuối danh sách

  • Nếu Danh sách rỗng thì

  • Ngược lại

  • Cách 3 : Chèn vào danh sách sau một phần tử q

  • Nếu ( q != NULL) thì

  • Nếu p != NULL thì p trỏ tới phần tử cần tìm

  • Hủy phần tử đầu xâu:

  • Nếu (pHead != NULL) thì

  • Hủy một phần tử đứng sau phần tử q

  • Nếu (q!= NULL) thì

  • Hủy 1 phần tử có khoá k

  • Tìm phần tử p có khóa k và phần tử q đứng trước nó

  • Nếu (p!= NULL) thì // tìm thấy k

  • Trong khi (Danh sách chưa hết) thực hiện

Nội dung

Bài 1: Danh sách liên kết Bài 2: Một số phương pháp sắp xếp Bài 3: Hàm băm Bài 4: Cây, cây nhị phân, cây nhị phân tìm kiếm, cây cân bằng Bài 5: Cây đỏ đen Bài 6: Bcây, cây 234 Bài 7: Các đống nhị thức Bài 8: Các đống Fibonaci Bài 9: Các tập rời nhau Bài 10: Các thuật toán so khớp chuỗi Tài liệu tham khảo: 1) Data Structures, Algorithms, and ObjectOriented Programming. NXB McGraw Hill; Tác giả Gregory Heilleman 1996 2) Advanced Data Structures. NXB McGraw Hill 1990; Tác giả Thomas H. C., Charles E.L., and Ronald L.R. 3) Giáo trình thuật toán. NXB Thống kế 2002. Nhóm Ngọc Anh Thư dịch 4) Algorithms and Data Structures in C++; Tác giả Alan Parker

Ngày đăng: 11/04/2018, 22:35

TỪ KHÓA LIÊN QUAN

w