Bài giảng điện tử môn tin học: Cây nhị phân pps

66 1.9K 2
Bài giảng điện tử môn tin học: Cây nhị phân pps

Đ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ÂY NHỊ PHÂN TÌM KIẾM TMT 1 NộI DUNG 1. Các khái niệm 2. Đặc điểm 3. Hình dạng 4. Các khái niệm 5. Định nghĩa kiểu dữ liệu 6. Các lưu ý khi cài đặt 7. Các thao tác 2 CÁC KHÁI NIệM  Bậc của một nút: là số cây con của nút đó.  Nút gốc: là nút không có nút cha.  Nút lá: là nút có bậc bằng 0.  Nút nhánh: là nút có bậc khác 0 và không phải là gốc. 2 2 2 110 0 0 0 3 Mức 3 Mức 2 Mức 1 Mức 0 CÁC KHÁI NIệM (TT)  Độ dài đường đi từ gốc đến nút x: là số nhánh cần đi qua kể từ gốc đến x.  Độ cao của cây: Độ dài đường đi từ gốc đến nút lá ở mức thấp nhất. 4 ĐặC ĐIểM CÂY NHị PHÂN TÌM KIếM  Là cây nhị phân  Giá trị của một node bất kỳ luôn lớn hơn giá trị của tất cả các node bên trái và nhỏ hơn giá trị tất cả các node bên phải Nút có giá trị nhỏ nhất nằm ở trái nhất của cây Nút có giá trị lớn nhất nằm ở phải nhất của cây 7 7 7 7 3 3 36 36 1 1 6 6 15 15 40 40 23 23 4 4 5 Nút ĐịNH NGHĨA KIểU Dữ LIệU typedef struct TNODE { <Data> Key; struct TNODE *pLeft, *pRight; } *TREE; Giá trị Trỏ trái Trỏ phải TNODE Key pLeft pRight 6 VÍ Dụ KHAI BÁO CÂY NHị PHÂN BIểU DIễN CÁC NODE LÀ Số NGUYÊN typedef struct TNODE { int Key; struct TNODE *pLeft, *pRight; } *TREE; 7 CÁC LƯU Ý KHI CÀI ĐặT Bước 1: Khai báo kiễu dữ liệu biểu diễn cây Bước 2: Xây dựng hàm đưa dữ liệu (nhập) vào cây Bước 3: Xây dựng các thao tác duyệt, tìm kiếm, huỷ, … Các lưu ý khác: 1. Trước khi tạo node mới phải xin cấp phát vùng nhớ. 2. Trước khi tạo cây mới phải khởi tạo cây rỗng. 3. Trước khi kết thúc chương trình phải huỷ cây (giải phóng vùng nhớ). 8 CấU TRÚC CHƯƠNG TRÌNH Khai báo cấu trúc cây Khởi tạo cây rỗng Xây dựng cây Các thao tác Hủy cây 9 CÁC THAO TÁC 1. Xây dựng cây 2. Duyệt cây 3. Cho biết các thông tin của cây 4. Tìm kiếm 5. Xoá node trên cây 10 [...]... dựng cây 2 Duyệt cây 3 Cho biết các thông tin của cây 4 Tìm kiếm 5 Xoá node trên cây 31 CÁC THAO TÁC 1 Xây dựng cây 2 Duyệt cây 3 Cho biết các thông tin của cây 4 Tìm kiếm 5 Xoá node trên cây 32 CHO BIếT CÁC THÔNG TIN CủA CÂY 1 2 3 4 5 6 7 8 9 Số node lá (node bậc 0) Số node có 1 cây con (node bậc 1) Số node chỉ có 1 cây con phải Số node có 1 cây con trái Số node 2 cây con (node bậc 2) Độ cao của cây. .. LRN(t->pRight); Duyệt cây con bên phải cout . t) { { if(t!=NULL) if(t!=NULL) { { cout<<t->Key<<“ ”; cout<<t->Key<<“ ”; NLR(t->pLeft); NLR(t->pLeft); NLR(t->pRight); NLR(t->pRight); } } } } 18 BÀI TẬP Bài 1  Hãy xây dựng cây nhị phân tìm kiếm theo thứ tự nhập sau: 27 19 10 21 35 25 41 12 46 7  Hãy duyệt cây trên theo thứ tự trước Bài 2  Hãy xây dựng cây nhị phân tìm kiếm. TÁC 1. Xây dựng cây 2. Duyệt cây 3. Cho biết các thông tin của cây 4. Tìm kiếm 5. Xoá node trên cây 14 CÁC THAO TÁC 1. Xây dựng cây 2. Duyệt cây 3. Cho biết các thông tin của cây 4. Tìm kiếm 5 Cho biết các thông tin của cây 4. Tìm kiếm 5. Xoá node trên cây 10 CÁC THAO TÁC 1. Xây dựng cây 2. Duyệt cây 3. Cho biết các thông tin của cây 4. Tìm kiếm 5. Xoá node trên cây 11 40 40 15 15 4 4 6 6 1 1 36 36 3 3 XÂY

Ngày đăng: 11/08/2014, 22:22

Từ khóa liên quan

Mục lục

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

  • Nội dung

  • Các khái niệm

  • Các khái niệm (tt)

  • Đặc điểm cây nhị phân tìm kiếm

  • Định nghĩa kiểu dữ liệu

  • Ví dụ khai báo cây nhị phân biểu diễn các node là số nguyên

  • Các lưu ý khi cài đặt

  • Cấu trúc chương trình

  • Các thao tác

  • Slide 11

  • Xây dựng cây

  • Xây dựng cây (tt)

  • Slide 14

  • Slide 15

  • Duyệt cây

  • NLR

  • Slide 18

  • BÀI TẬP

  • LNR

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

Tài liệu liên quan