(TIỂU LUẬN) cấu trúc dữ liệu và giải thuật CO2003 bài tập lớn 2 xây DỰNG CONCAT STRING BẰNG cấu TRÚC cây và HASH

14 4 0
(TIỂU LUẬN) cấu trúc dữ liệu và giải thuật CO2003 bài tập lớn 2 xây DỰNG CONCAT STRING BẰNG cấu TRÚC cây và HASH

Đ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ỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Cấu trúc liệu giải thuật - CO2003 Bài tập lớn XÂY DỰNG CONCAT_STRING BẰNG CẤU TRÚC CÂY VÀ HASH Tác giả: Vũ Văn Tiến TP HỒ CHÍ MINH, THÁNG 10/2022 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH ĐẶC TẢ BÀI TẬP LỚN Phiên 1.0 Chuẩn đầu Sau hoàn thành tập lớn này, sinh viên ơn lại sử dụng thành thục: • Lập trình hướng đối tượng • Cấu trúc liệu nhị phân tìm kiếm AVL • Cấu trúc liệu Hash Dẫn nhập Trong Bài tập lớn 1, SV yêu cầu thực chuỗi ký tự cấu trúc liệu danh sách để giảm độ phức tạp thao tác nối chuỗi Cách thực có số hạn chế: thao tác truy cập ký tự vị trí có độ phức tạp cao; chuỗi tham gia vào Trong Bài tập lớn (BTL) này, sinh viên yêu cầu sử dụng cấu trúc thaoHash tác nối để lần thực chuỗi ký tự giải hạn chế Class biểu diễn cho chuỗi ký tự cần thực BTL có tên ConcatStringTree 3.1 Mơ tả Tổng quan Hình có minh hoạ chuỗi s1, s2 cấu trúc Với cấu trúc cây, thao tác nối chuỗi thực dễ dàng cách tạo node có trái s1 phải s2 Bên cạnh đó, để hỗ trợ thao tác truy cập vị trí, cấu trúc lựa chọn tìm kiếm nhị phân (Binary Search Tree) Key node chọn độ dài chuỗi bên trái Khi tìm kiếm (với vị trí xác định) node, vị trí tìm kiếm nhỏ key tiếp tục tìm kiếm bên trái, ngược lại tìm kiếm bên phải Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 1/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Với cách chọn key độ dài chuỗi bên trái ta key s3 (nối s1 với s2) Hình có giá trị Khi đó, thao tác để tìm key có độ phức tạp O(log(n)) (SV thử tìm cách tính độ phức tạp này) Để giảm độ phức tạp, ta lưu thêm thông tin tổng độ dài chuỗi node Hình đề xuất thơng tin node biểu diễn s1 Hình 1: Minh hoạ thao tác nối chuỗi Hình 2: Minh hoạ node biểu diễn chuỗi Các phần sau mô tả chi tiết class cần thực BTL 3.2 class ConcatStringTree Các phương thức cần thực cho class ConcatStringTree: ConcatStringTree(const char * s) • Khởi tạo đối tượng ConcatStringTree với trường data trỏ đến đối tượng biểu diễn cho chuỗi ký tự liên tục có giá trị giống với chuỗi s • Độ phức tạp (mọi trường hợp): O(n) với n độ dài chuỗi s int length() const • Trả độ dài chuỗi lưu trữ đối tượng ConcatStringTree Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 2/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH • Độ phức tạp (mọi trường hợp): O(1) Ví dụ 3.1 Trong Hình 1: – s1.length() trả – s2.length() trả char get(int index) const • Trả ký tự vị trí index • Ngoại lệ: Nếu index có giá trị vị trí không hợp lệ chuỗi, ném ngoại lệ (thông qua lệnh throw ngôn ngữ C++): out_of_range("Index of string is invalid!") index có giá trị vị trí hợp lệ index nằm đoạn [0, l • Độ phức tạp (trường hợp trung bình): O(log(k)) với k số lượng node − 1] Concatcủa với l độ dài chuỗi StringTree Ví dụ 3.2 Trong Hình 1: – s1.get(14) ném ngoại lệ out_of_range("Index of string is invalid!") – s2.get(1) trả ký tự ’i’ int indexOf(char c) const • Trả vị trí xuất c ConcatStringTree Nếu không tồn ký tự c trả giá trị -1 • Độ phức tạp (trường hợp tệ nhất): O(l) với l chiều dài chuỗi ConcatStringTree Ví dụ 3.3 Trong Hình 1: – s1.indexOf(’i’) trả -1 – s2.indexOf(’i’) trả string toStringPreOrder() const • Trả chuỗi biểu diễn cho đối tượng ConcatStringTree duyệt node cách Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 3/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH tiền thứ tự NLR • Độ phức tạp (mọi trường hợp): O(l) với l chiều dài chuỗi ConcatStringTree Ví dụ 3.4 Trong Hình 1: –s1.toStringPreOrder() trả ConcatStringTree[(LL=5,L=8,);(LL=0,L=5,"Hello"); " (LL=0,L=3,",_t")]" string toString() const • Trả chuỗi biểu diễn cho đối tượng ConcatStringTree • Độ phức tạp (mọi trường hợp): O(l) với l chiều dài chuỗi ConcatStringTree Ví dụ 3.5 Trong Hình 1: – s1.toString() trả " ConcatStringTree["Hello,_t"]" – s2.toString() trả " ConcatStringTree["his_is_an"]" ConcatStringTree concat(const ConcatStringTree & otherS) const • Trả đối tượng ConcatStringTree mơ tả Mục 3.1 • Độ phức tạp (mọi trường hợp): O(1) • Ví dụ: Xem lại Hình ConcatStringTree subString(int from, int to) const • Trả đối tượng ConcatStringTree chứa ký tự vị trí from (bao gồm from) đến vị trí to (khơng bao gồm to) • Ngoại lệ: Nếu from to vị trí khơng hợp lệ chuỗi ném ngoại lệ out_of_range("Index of string is invalid!") Nếu f rom >= to ném dụ: lệ Hình minh hoạ cho thao tác • Ví ngoại logic_error("Invalid range!") subString • Lưu ý: Chuỗi cần tạo node (không sử dụng lại node gốc) cố gắng giữ lại liên kết node giống gốc ConcatStringTree reverse() const Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 4/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Hình 3: Minh hoạ chuỗi sau thực thao tác subString • Trả đối tượng ConcatStringTree biểu diễn chuỗi nghịch đảo chuỗi gốc • Ví dụ: Hình minh hoạ thao tác reverse Hình 4: Minh hoạ thao tác reverse ∼ConcatStringTree() • Hiện thực hàm huỷ để tất vùng nhớ cấp phát động phải thu hồi sau chương trình kết thúc Xem xét s1 Hình 1, thơng thường, xố s1 node chứa chuỗi "Hello" ",_r" bị xoá Điều khơng phù hợp chuỗi cần đến cho tạo thành chuỗi Tham khảo Mục 3.3 để thực hàm hủy cho phù hợp Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 5/13 3.3 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH class ParentsTree Xem xét lại Hình minh hoạ kết thao tác nối chuỗi Khi muốn xố s1, ta xố tồn node s1 làm chuỗi "Hello" ",_r" Từ làm thơng tin để biểu diễn cho s3 Để giải vấn đề này, node, ta lưu trữ node cha liền kề có trỏ đến node Khi thực xố qua node, ta kiểm tra Sinh nodeviên hiệnđược yêu cầu sử dụng cấu trúc AVL để lưu trữ thông tin node cha khơng có node cha thực xoá node node trong node ConcatStringTree Để sử dụng AVL, ta cần chọn key tương ứng cho node SV cần thực chế sinh id đơn giản dùng id làm key cho node Node tiên Cơ •chế sinhđầu id sau:tạo có id giá trị • Các node sau sinh có id với id lớn cấp trước cộng thêm • Id cấp tối đa 107 giá trị Nếu id cấp cho node lớn 107 , ném ngoại lệ overflow_error("Id is overflow!") Class ParentsTree biểu diễn AVL dùng để lưu trữ node cha node Trong ParentsTree, thực thao tác xố node node có trái phải, ta lấy node lớn bên trái để thay cho node Khi xố node ConcatStringTree ta xố thơng tin node khỏi ParentsTree node gốc thuộc bên trái node gốc thuộc bên phải Nếu ParentsTree node rỗng node khơng sử dụng để tạo thành lớn hơn, ta Mặt khác, Hình 1, xố s3 (trước s1 s2) xố s1 s2, xố thơng node node tinvà biểu diễn cho s1 s2 bị Để giải vấn đề này, ta thêm giá trị vào ParentsTree để q trình xố s3 truyền đến s1 ParentsTree khơng bị rỗng khơng tiếp tục q trình xố Cụ thể, tạo node ConcatStringTree, ta thêm id node vào SV cần thực phương thức sau cho class ParentsTree (đây ParentsTree Đồng phương thức sử dụng testcases, SV vào tự thực cácmỗi phương thứchiện khácnối chuỗi thời, sinh viên cần lưu ý cập nhật ParentsTree lần thực cần): int size() const • Trả số node ParentsTree • Độ phức tạp: O(1) Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 6/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Ví dụ 3.6 Trong Hình 1: – Gọi size() với đối tượng ParentsTree node gốc s1 trả – Gọi size() với đối tượng ParentsTree node có data "Hello" s1 trả string toStringPreOrder() const • Trả chuỗi biểu diễn cho đối tượng ParentsTree duyệt node theo thứ tự tiền tố NLR Chuỗi biểu diễn có định dạng sau: " ParentsTree[]" Với danh sách node phân cách ký tự chấm phẩy Định dạng node là: " (id=)" Với id node Ví dụ 3.7 Ví dụ kết thao tác toStringPreOrder() có • node (rỗng): " ParentsTree[]" • node: " ParentsTree[(id=1)]" • node: " ParentsTree[(id=2);(id=3)]" SV phải thực thêm phương thức sau cho class ConcatStringTree: int getParTreeSize(const & query) const số lượng node string ParentsTree node xác định • Trả ConcatStringTree • Chuỗi query dùng để xác định node muốn truy cập ParentsTree query gồm ký tự thuộc ký tự ’l’ ’r’, ngược lại ném ngoại lệ: runtime_error("Invalid character of query") Cách xác định dựa vào query: Ban đầu ta node gốc ConcatStringTree Lần lượt duyệt qua ký tự query, gặp ký tự ’l’, ta di chuyển đến bên trái, gặp ký tự ’r’, ta di chuyển Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 đến bên phải Nếu trình 2023 ném 7/13 thực hiện, ta gặp địa Trang NULL ngoại lệ: runtime_error("Invalid query: reaching NULL") TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH string getParTreeStringPreOrder(const string & query) const • Trả chuỗi biểu diễn cho đối tượng ParentsTree node xác định ConcatStringTree Chuỗi biểu diễn kết trả phương thức toStringPređược dùng để xác định node muốn truy cập ParentsTree • Chuỗi Order query class ParentsTree Quy tắc cách truy cập query giống mô tả phương thức getParTreeSize 3.4 class ReducedConcatStringTree class LitStringHash Xem xét Hình 5, chuỗi s1 s2 đối tượng class ConcatStringTree Ta thấy chuỗi " hello" xuất lần: bên trái s1 bên phải s2 Trong tìmnày, cáchtagiảm kích thước lưu trữ chuỗi cách trỏ liệu đến vùng nhớ mục tồn chuỗi tạo giống với chuỗi tạo (như chuỗi s2) Class biểu diễn chuỗi với khả giảm vùng nhớ lưu trữ gọi ReducedConcatStringTree ReducedConcatStringTree Gọi chuỗi chứa liệu thật LitString Trong hình 5, "hello", "there", cần "here" có tất thuộc tính phương thức class ConcatStringTree LitString; node node LitString Ta dùng cấu trúc Hash lưu trữ LitString, gọi class biểu diễn cấu trúc LitStringHash • Khi chuỗi tạo ra, LitString tồn LitStringHash ta trỏ data đến địa LitString (không tạo LitString mới) Ngược lại, LitString chưa tồn LitStringHash ta thêm (insert) LitString vào • LitStringHash Mỗi LitString LitStringHash nên có thêm thơng tin số liên kết đến Khi xố chuỗi, LitString khơng cịn liên kết đến ta xố khỏi LitStringHash Nếu sau xố LitStringHash trở thành rỗng ta cần thu Class LitStringHash có đặc điểm sau: hồi vùng nhớ cấp phát cho LitStringHash Ở thao tác sau (nếu có), Giảcần sử scấp LitString Hàm băm LitStringHash sau: • ta phát lại vùng nhớ cho LitStringHash h(s) = s[0] + s[1] ∗ p + s[2] ∗ p2 + + s[n − 1] ∗ pn−1 mod m Trong – n đó: chiều dài chuỗi Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 8/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Hình 5: Minh hoạ giảm vùng nhớ cho chuỗi – s[0], s[1], , s[n-1] số nguyên biễu diễn mã ASCII tương ứng ký tự vị trí 0, 1, , n-1 – m kích thước bảng hash – p thơng số cấu hình mơ tả sau • Hàm dị tìm: sử dụng phương pháp dị tìm bậc (quadratic probing): hp(s, i) = (h(s) + c1 ∗ i + c2 ∗ i2 ) mod m Trong đó: – m kích thước bảng hash – c1, c2 thông số cấu hình mơ tả sau Lưu ý: Nếu khơng tìm thấy vị trí trống để thêm vào ném ngoại lệ: runtime_error("No possible slot") Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 9/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH • Rehashing: Sau thêm giá trị vào LitStringHash, LitStringHash có hệ số tải (load factor) lớn lambda ta cần thực rehash Hệ số tải tính tỉ lệ số phần tử có kích thước LitStringHash lambda thơng số cấu hình Các – LitStringHash bướcTạo thực rehash:mới với kích thước alpha ∗ size (làm trịn xuống) với size kích – Lần lượt lặptại qua vị trí LitStringHash, vị trí có thước LitStringHash LitString ta chèn vào LitStringHash • Class HashConfig: class chứa thơng số cấu hình cho thao tác trên, gồm có: – p: số nguyên sử dụng hàm băm – c1, c2: số thực (kiểu double) sử dụng hàm dị tìm – lambda: số thực (kiểu double) thể tỉ lệ mà hệ số tải lớn thực rehashing – alpha: số thực (kiểu double) thể tỉ lệ nhân với kích thước cũ để tạo kích thước lớn – initSize: số nguyên, thể kích thước LitStringHash vừa khởi tạo thêm giá trị sau vừa thu hồi vùng nhớ cho LitStringHash SV cần thực phương thức sau cho class LitStringHash: LitStringHash(const HashConfig & hashConfig) • Nhận vào đối tượng hashConfig khởi tạo tham số cấu hình cần thiết cho thao tác băm int getLastInsertedIndex() const • Trả vị trí cuối thêm vào LitStringHash sau thao tác rehash thực (nếu có) Nếu trước chưa có phần tử chèn, vừa thực • thu hồi vùng nhớ cho LitStringHash trả giá trị -1 string ĐộtoString() phức tạp const (mọi trường hợp): O(1) • Trả chuỗi biểu diễn cho đối tượng LitStringHash Chuỗi biểu diễn có định dạng sau: " LitStringHash[]" Với danh sách phần tử phân cách ký tự chấm phẩy Định dạng phần tử là: Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 10/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH – Nếu vị trí khơng có giá trị: " ()" – Nếu vị trí có giá trị: " (litS=)" Với chuỗi biểu diễn LitString Ví dụ 3.8 Ví dụ kết thao tác toString() – "LitStringHash[();(litS="Hello");();(litS="there")]" SV cần thực phương thức sau cho class ReducedConcatStringTree: ReducedConcatStringTree(const char * s, LitStringHash * litStringHash) • Khởi tạo đối tương ReducedConcatStringTree với trường data trỏ đến đối tượng biểu diễn cho chuỗi ký tự liên tục có giá trị giống với chuỗi s (giống phương thức khởi tạo ConcatStringTree) Đồng thời, khởi tạo trỏ đến đối tượng LitStringHash Đốitrường tượng hợp): lưu với trữ ncác thông tin bảng băm phức tạp (mọi O(n) độ dài • Độ dùng chung chuỗi s cho đối tượng ReducedConcatStringTree 3.5 Yêu cầu Để hoàn thành tập lớn này, sinh viên phải: Đọc tồn tập tin mơ tả Tải xuống tập tin initial.zip giải nén Sau giải nén, sinh viên nhận tập tin: main.cpp, main.h, ConcatStringTree.h, ConcatStringTree.cpp thư mục sample_output Sinh viên nộp tập tin ConcatStringTree.h ConcatStringTree.cpp Sinh viên sử dụng câu lệnh sau để biên dịch: nên không sửa đổiConcatStringTree.cpp tập tin main.h chạy chương trình g++ -o main main.cpp -I thử -std=c++11 Câu lệnh dùng command prompt/terminal để biên dịch chương trình Nếu sinh viên dùng IDE để chạy chương trình, sinh viên cần ý: thêm đầy đủ tập tin vào project/workspace IDE; thay đổi lệnh biên dịch IDE cho phù hợp IDE thường cung cấp nút (button) cho việc biên dịch (Build) chạy chương trình (Run) Bài tập lớn mơn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Khi nhấn Build IDE chạy câu lệnh biên thường, biên Trang dịch tương ứng, thông 11/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH dịch file main.cpp Sinh viên cần tìm cách cấu hình IDE để thay đổi lệnh biên dịch: thêm file ConcatStringTree.cpp, thêm option -std=c++11, -I Chương trình chấm tảng Unix Nền tảng trình biên dịch sinh viên khác với nơi chấm thực tế Nơi nộp BKeL cài đặt giống với nơi chấm thực tế Sinh viên phải chạy thử chương trình nơi nộp phải sửa tất lỗi xảy nơi nộp BKeL để có kết chấm thực tế Sửa đổi file ConcatStringTree.h, ConcatStringTree.cpp để hoàn thành phương thức mô tả phải thực để việc • Tất tập lớn biên dịch đảm bảo hai yêu cầu sau: thực thành công Nếu sinh viên chưa thể thực phương thức nào, cung cấp thực rỗng cho phương thức Mỗi testcase gọi có số lệnh include tập tin ConcatStringTree.h #include "main.h" • Chỉ phương thức mô tả để kiểm tra kết trả include tập tin ConcatStringTree.cpp #include "ConcatStringTree.h" ra, không #include khác tập tincác SinhNgoài viên phép cho viết phép thêmcó phương thứcnào thuộc tính khác class yêu cầu thực Sinh viên yêu cầu thiết kế sử dụng cấu trúc liệu dựa loại danh sách học Sinh viên phải giải phóng tồn vùng nhớ xin cấp phát động chương trình kết thúc Nộp Sinh viên nộp tập tin: ConcatStringTree.h ConcatStringTree.cpp, trước thời hạn đưa đường dẫn "Assignment - Submission" Có số testcase đơn giản sử dụng để kiểm tra làm sinh viên nhằm đảm bảo kết sinh viên biên dịch chạy Sinh viên nộp lần tùy ý có nộp cuối tính điểm Vì hệ thống khơng thể chịu tải q nhiều sinh viên nộp lúc, sinh viên nên nộp sớm tốt Sinh viên tự chịu rủi ro nộp sát hạn chót Khi thời hạn nộp bài, hệ thống đóng nên sinh viên khơng thể nộp Bài nộp qua phương thức khác không chấp nhận Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 12/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Một số quy định khác • Sinh viên phải tự hồn thành tập lớn phải ngăn không cho người khác đánh cắp kết Nếu khơng, sinh viên bị xử lý theo quy định trường • Mọi gian lận.định giảng viên phụ trách tập lớn định cuối • Sinh viên không cung cấp testcase sau chấm mà cung cấp thông tin chiến lược thiết kế testcase phân bố số lượng sinh viên theo • testcase Nội dung Bài tập lớn Harmony với câu hỏi kiểm tra với nội dung tương tự Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 2022 2023 Trang 13/13 ... chuỗi lưu trữ đối tượng ConcatStringTree Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 20 22 2 023 Trang 2/ 13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH • Độ phức... tập lớn môn Cấu trúc liệu giải thuật - HK năm học 20 22 2 023 Trang 9/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH • Rehashing: Sau thêm giá trị vào LitStringHash, LitStringHash... node giống gốc ConcatStringTree reverse() const Bài tập lớn môn Cấu trúc liệu giải thuật - HK năm học 20 22 2 023 Trang 4/13 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

Ngày đăng: 06/12/2022, 15:25

Hình ảnh liên quan

Hình 1 có giá trị là 8. Khi đó, thao tác để tìm ra key bằng 8 có độ phức tạp O(log(n)) (SV hãy - (TIỂU LUẬN) cấu trúc dữ liệu và giải thuật CO2003 bài tập lớn 2 xây DỰNG CONCAT STRING BẰNG cấu TRÚC cây và HASH

Hình 1.

có giá trị là 8. Khi đó, thao tác để tìm ra key bằng 8 có độ phức tạp O(log(n)) (SV hãy Xem tại trang 3 của tài liệu.
• Ví dụ: Hình 4 minh hoạ thao tác reverse. - (TIỂU LUẬN) cấu trúc dữ liệu và giải thuật CO2003 bài tập lớn 2 xây DỰNG CONCAT STRING BẰNG cấu TRÚC cây và HASH

d.

ụ: Hình 4 minh hoạ thao tác reverse Xem tại trang 6 của tài liệu.
Hình 3: Minh hoạ chuỗi sau khi thực hiện thao tác subString - (TIỂU LUẬN) cấu trúc dữ liệu và giải thuật CO2003 bài tập lớn 2 xây DỰNG CONCAT STRING BẰNG cấu TRÚC cây và HASH

Hình 3.

Minh hoạ chuỗi sau khi thực hiện thao tác subString Xem tại trang 6 của tài liệu.
Hình 5: Minh hoạ giảm vùng nhớ cho chuỗi - (TIỂU LUẬN) cấu trúc dữ liệu và giải thuật CO2003 bài tập lớn 2 xây DỰNG CONCAT STRING BẰNG cấu TRÚC cây và HASH

Hình 5.

Minh hoạ giảm vùng nhớ cho chuỗi Xem tại trang 10 của tài liệu.

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

Tài liệu liên quan