cây nhị phân - cấu trúc dữ liệu và giải thuật

22 563 0
cây nhị phân - cấu trúc dữ liệu và giải thuật

Đ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 liệu vá thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NỘIMaster DUNGTitle Style Click To Edit CÂY VÀ CÂY NHỊ PHÂN Định Nghĩa Click ToCây Edit Master Title Style  Cây tập hợp T phần tử (gọi nút cây), có nút đặc CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải biệt gọi nút gốc, nút lại chia thành tập rời T 1, 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 – CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải MộtClick Số Khái ToNiệm Edit • Bậc nút • Bậc • Nút • Nút • Mức Master Title Style nút: số cây: bậc lớn nút gốc: nút khơng có nút cha lá: nút có bậc nút: – Mức (gốc (T) ) = – 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 Ví Dụ TổTo Chức Cây Click EditDạng Master Title Style BB-Electronic Corp CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải R&D Kinh doanh Nội đòa Quốc tế Châu âu Mỹ Tài vụ TV Sản xuất CD Amplier Các nước CâyClick Nhị Phân To Edit Master Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải • Mỗi nút có tối đa Cây trái Cây phải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải CấuClick Trúc Dữ Cây Nhị Phân To Liệu EditCủa Master Title Style typedef struct tagTNode { Data Key; struct tagTNode *pLeft; struct tagTNode *pRight; }TNode; Key typedef TNode *TREE; VD: Click Cây Được Chức Trong Bộ NhớStyle Trong To Tổ Edit Master Title CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải 1f 2f 2f N 3f 3f 7f 5f 5f N N 7f N N N CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải Duyệt CâyTo NhịEdit PhânMaster Click Title Style  Có trình tự thăm gốc :  Duyệt trước  Duyệt  Duyệt sau  Độ phức tạp O (log2(h)) Trong h chiều cao Ví Dụ Kết To QuảEdit CủaMaster Phép Duyệt Click TitleCây Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải 10 12 • NLR: 9, 2, 6, 1, 10, 8, 5, 3, 7, 12, • LNR: 6, 2, 10, 1, 9, 3, 5, 8, 12, 7, • Kết phép duyệt : LRN, NRL,LRN, LNR? Duyệt Trước Click To Edit Master Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải void NLR(TREE Root) { if (Root != NULL) { ; //Xử lý tương ứng theo nhu cầu NLR(Root->pLeft); NLR(Root->pRight); } } Kiểu duyệt trước tiên thăm nút gốc sau thăm nút trái đến phải 10 Duyệt trước (Node-Left-Right) Clicktheo To thứ Edittự Master Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải • Một ví dụ: đọc sách hay báo từ đầu đến cuối minh họa hình bên dưới: 11 VD Click To Edit Master Title Style A B C CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải D E H I N J F G K O L M P Kết quả: A B D H I N E J O K C F L P G M 12 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải Duyệt Giữa Click To Edit Master Title Style void LNR(TREE Root) { if (Root != NULL) { LNR(Root->pLeft); ; // Xử lý tương ứng theo nhu cầu LNR(Root->pRight); } }  Kiểu duyệt trước tiên thăm nút trái sau thăm nút gốc đến phải 13 Duyệt theo tự Master (LeftNode-Right) Click Tothứ Edit Title Style A B C CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải D E H I N J F G K O L M P Kết quả: H D N I B J O E K A F P L C M G 14 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải Duyệt SauTo Edit Click Master Title Style void LRN(TREE Root) { if (Root != NULL) { LRN(Root->pLeft); LRN(Root->pRight); ; // Xử lý tương ứng theo nhu cầu } } Kiểu duyệt trước tiên thăm nút trái sau thăm đến phải cuối thăm nút gốc 15 Duyệt sau (Left-Right-Node) Clicktheo To thứ EdittựMaster Title Style A B C CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải D E H I N J F G K O L M P Kết quả: H N I D O J K E B P L F M G C A 16 Duyệt theo thứ tựMaster sau (Left-Right-Node) Click To Edit Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải • Tính tốn giá trị biểu thức dựa biểu thức (3 + 1)×3/(9 – + 2) – (3×(7 – 4) + 6) = –13 17 BiểuClick Diễn Cây Bằng Title Cây Nhị Phân To Tổng EditQt Master Style A CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải B E A C H F B E F C G H D I G J D I J 18 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải Nhược To điểmEdit cấu trúcTitle tổng qt Click Master Style • Bậc nút dao động biên độ lớn => việc biểu diễn gặp nhiều khó khăn lãng phí • Việc xây dựng thao tác tổng qt phức tạp nhị phân nhiều • Vì vậy, thường khơng q cần thiết phải sử dụng tổng qt, người ta chuyển tổng qt thành nhị phân 19 QuiMaster tắc Click To Edit Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải • Ta biến đổi thành nhị phân theo ngun tắc sau: – Giữ lại nút trái làm nút trái – Các nút lại chuyển thành nút phải – Như nhị phân trái thể quan hệ cha phải thể quan hệ anh em tổng qt ban đầu 20 Một cách diễnMaster nhị phân Click Tobiểu Edit Titlekhác Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải • Đơi khi, định nghĩa nhị phân, người ta quan tâm đến quan hệ chiều cha khơng chiều định nghĩa phần • typedef struct tagTNode { DataType Key; struct tagTNode* pParent; struct tagTNode* pLeft; struct tagTNode* pRight; }TNODE; typedef TNODE *TREE; 21 Cấu trúc liệu vá thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Một cách diễnMaster nhị phân Click Tobiểu Edit Titlekhác Style 22 [...]... dữ liệu 1 vá thuật giải • Tính toán giá trị của biểu thức dựa trên cây biểu thức (3 + 1)×3/(9 – 5 + 2) – (3×(7 – 4) + 6) = –13 17 BiểuClick Diễn Cây Bằng Title Cây Nhị Phân To Tổng EditQuát Master Style A CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải B E A C H F B E F C G H D I G J D I J 18 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải Nhược To điểmEdit của các cấu. .. (Node-Left-Right) Clicktheo To thứ Edittự Master Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải • Một ví dụ: đọc một quyển sách hay bài báo từ đầu đến cuối như minh họa trong hình bên dưới: 11 VD Click To Edit Master Title Style A B C CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải D E H I N J F G K O L M P Kết quả: A B D H I N E J O K C F L P G M 12 CẤU TRÚC... của cây con trái sau đó thăm đến cây con phải rồi cuối cùng mới thăm nút gốc 15 Duyệt sau (Left-Right-Node) Clicktheo To thứ EdittựMaster Title Style A B C CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải D E H I N J F G K O L M P Kết quả: H N I D O J K E B P L F M G C A 16 Duyệt theo thứ tựMaster sau (Left-Right-Node) Click To Edit Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ. .. (LeftNode-Right) Click Tothứ Edit Title Style A B C CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải D E H I N J F G K O L M P Kết quả: H D N I B J O E K A F P L C M G 14 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải Duyệt SauTo Edit Click Master Title Style void LRN(TREE Root) { if (Root != NULL) { LRN(Root->pLeft); LRN(Root->pRight); ; // Xử lý tương ứng theo... Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải • Đôi khi, khi định nghĩa cây nhị phân, người ta quan tâm đến cả quan hệ 2 chiều cha con chứ không chỉ một chiều như định nghĩa ở phần trên • typedef struct tagTNode { DataType Key; struct tagTNode* pParent; struct tagTNode* pLeft; struct tagTNode* pRight; }TNODE; typedef TNODE *TREE; 21 Cấu trúc dữ liệu 1 vá thuật giải CẤU TRÚC DỮ LIỆU... Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải • Ta có thể biến đổi một cây bất kỳ thành cây nhị phân theo nguyên tắc sau: – Giữ lại nút con trái nhất làm nút con trái – Các nút con còn lại chuyển thành nút con phải – Như vậy trong cây nhị phân mới thì con trái thể hiện quan hệ cha con và con phải thể hiện quan hệ anh em trong cây tổng quát ban đầu 20 Một cách diễnMaster cây nhị phân. .. P G M 12 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc dữ liệu 1 vá thuật giải Duyệt Giữa Click To Edit Master Title Style void LNR(TREE Root) { if (Root != NULL) { LNR(Root->pLeft); ; // Xử lý tương ứng theo nhu cầu LNR(Root->pRight); } }  Kiểu duyệt này trước tiên thăm các nút của cây con trái sau đó thăm nút gốc rồi đến cây con phải 13 Duyệt theo tự Master giữa (LeftNode-Right) Click Tothứ... To điểmEdit của các cấu trúcTitle cây tổng quát Click Master Style • Bậc của các nút trên cây có thể dao động trong một biên độ lớn => việc biểu diễn gặp nhiều khó khăn và lãng phí • Việc xây dựng các thao tác trên cây tổng quát phức tạp hơn trên cây nhị phân nhiều • Vì vậy, thường nếu không quá cần thiết phải sử dụng cây tổng quát, người ta chuyển cây tổng quát thành cây nhị phân 19 QuiMaster tắc Click... tagTNode { DataType Key; struct tagTNode* pParent; struct tagTNode* pLeft; struct tagTNode* pRight; }TNODE; typedef TNODE *TREE; 21 Cấu trúc dữ liệu 1 vá thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Một cách diễnMaster cây nhị phân Click Tobiểu Edit Titlekhác Style 22

Ngày đăng: 05/04/2016, 15:40

Từ khóa liên quan

Mục lục

  • NỘI DUNG

  • Định Nghĩa Cây

  • Một Số Khái Niệm

  • Ví Dụ 1 Tổ Chức Dạng Cây

  • Cây Nhị Phân

  • Cấu Trúc Dữ Liệu Của Cây Nhị Phân

  • VD: Cây Được Tổ Chức Trong Bộ Nhớ Trong

  • Duyệt Cây Nhị Phân

  • Ví Dụ Kết Quả Của Phép Duyệt Cây

  • Duyệt Trước

  • Duyệt theo thứ tự trước (Node-Left-Right)

  • VD

  • Duyệt Giữa

  • Duyệt theo thứ tự giữa (Left- Node-Right)

  • Duyệt Sau

  • Duyệt theo thứ tự sau (Left-Right-Node)

  • Duyệt theo thứ tự sau (Left-Right-Node)

  • Biểu Diễn Cây Tổng Quát Bằng Cây Nhị Phân

  • Nhược điểm của các cấu trúc cây tổng quát

  • Qui tắc

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

Tài liệu liên quan