Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Đỗ Ngọc Như Loan

18 18 0
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Đỗ Ngọc Như Loan

Đ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

Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 5: Bảng băm (Hashtable) trình bày các khái niệm về bảng băm, giải quyết đụng độ bằng kết nối, định nghĩa bảng băm, các thao tác, độ phức tạp,... Mời các bạn cùng tham khảo.

Bảng băm (Hashtable) GV: Đỗ Ngọc Như Loan KHÁI NIỆM    Bảng băm cấu trúc liệu lưu trữ tập đối tượng có số phần tử tùy ý Các thao tác tìm kiếm, chèn, xoá bảng băm hiệu Phần tử có khố k (ngun) lưu trữ slot h(k), h hàm băm (hash function) từ tập U khóa đến tập slot bảng băm T[0 m-1] KHÁI NIỆM    Hàm băm có dạng h: U → {0,1, , m-1}, m kích thước bảng băm h(k) giá trị băm (hash value) khố k hay cịn nói phần tử có khố k băm slot h(k) Với hàm băm cần xử lý m giá trị thay |U| giá trị BẢNG BĂM      Có thể có dụng độ (collision) lưu trữ khóa, ví dụ k2 dụng độ k5, nghĩa h(k2)= h(k5) Các phương pháp giải đụng độ Thiết kế hàm băm h(U) phân bố T (không triệt để) Giải dụng độ danh sách liên kết collision resolution by chaining) Giải dụng độ địa mở (open addressing) GIẢI QUYẾT ĐỤNG ĐỘ BẰNG KẾT NỐI    Đặt tất phần tử có giá trị hàm băm vào danh sách liên kết Slot j chứa pointer đến đầu danh sách liên kết tất phần tử lưu trữ có hàm băm j Nếu khơng có khóa k để h(k)=j thì slot j trỏ đến NULL ĐỊNH NGHĨA BẢNG BĂM Định nghĩa bảng băm C++, khóa số nguyên typedef struct CELL *LIST; struct CELL { int key; LIST next; }; typedef LIST TABLE[MAX]; TABLE T; int m; //Kích thước bảng băm  CÁC THAO TÁC     HashInitialize(T): Khởi tạo bảng băm HashInsert(T, k): Chèn phần tử có khóa k vào bảng băm T HashSearch(T, k): Tìm phần tử có khố k T HashDelete(T, k): Xố phần tử có khóa k khỏi T HASHINITIALIZE void HashInitialize(TABLE &T,int &m) // m kích thước { // bảng băm for(int i=0; i

Ngày đăng: 09/05/2021, 18:34

Mục lục

  • Slide 1

  • Khái niệm

  • Khái niệm

  • Slide 4

  • Bảng băm

  • GiẢI QUYẾT ĐỤNG ĐỘ BẰNG KẾT NỐI

  • Slide 7

  • ĐỊNH NGHĨA BẢNG BĂM

  • CÁC THAO TÁC

  • HashInitialize

  • HashInsert

  • HashSearch

  • HashDelete

  • ĐỘ PHỨC TẠP

  • HÀM BĂM

  • HÀM BĂM

  • HÀM BĂM

  • Slide 18

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

Tài liệu liên quan