SlideShare a Scribd company logo
1 of 25
Cây - Tree
Mục tiêu
 Giới

thiệu khái niệm cấu trúc cây.
 Cấu trúc dữ liệu cây nhị phân tìm kiếm: tổ
chức, các thuật toán, ứng dụng.
 Giới thiệu cấu trúc dữ liệu cây nhị phân tìm
kiếm cân bằng.
Cấu trúc cây
Cây- một số định nghĩa




Định nghĩa 1: cây là một tập hợp T các phần tử (gọi
là nút của cây) trong đó có 1 nút đặc biệt được gọi
là gốc, các nút còn lại được chia thành những tập
rời nhau T1, T2 ,... , Tn theo quan hệ phân cấp trong
đó Ti cũng là một cây. Mỗi nút ở cấp i sẽ quản lý một
số nút ở cấp i+1. Quan hệ này người ta còn gọi là
quan hệ cha-con.
Định nghĩa 2: cấu trúc cây với kiểu cơ sở T là một
nút cấu trúc rỗng được gọi là cây rỗng (NULL). Một
nút mà thông tin chính của nó có kiểu T, nó liên kết
với một số hữu hạn các cấu trúc cây khác cũng có
kiểu cơ sở T. Các cấu trúc này được gọi là những
cây con của cây đang xét.
Cây - Một số khái niệm cơ bản








Bậc của một nút: là số cây con của nút đó.
Bậc của một cây: là bậc lớn nhất của các nút trong cây
(số cây con tối đa của một nút thuộc cây). Cây có bậc n
thì gọi là cây n-phân.
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.
Mức của một nút:




Mức (gốc (T) ) = 0.
Gọi T1, T2, T3,... , Tn là các cây con của T0
Mức (T1) = Mức (T2) = ... = Mức (Tn) = Mức (T0) + 1.
Cây- một số định nghĩa



Độ 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.
Độ dài đường đi tổng của cây:

trong đó Px là độ dài đường đi từ gốc đến X.
•Độ dài đường đi trung bình: PI = PT/n (n là số nút
trên cây T).
•Rừng cây: là tập hợp nhiều cây trong đó thứ tự các
cây là quan trọng.
Ví dụ
 Sơ

đồ tổ chức công ty
Ví dụ
 Cấu

trúc trang web
Trang chủ

Giới thiệu

Tổng công ty

Tin tức

Trang web

Nội bộ

Liên kết

Van hóa
Xã hội
Chính trị
 Mục

lục một quyển sách
 Cấu trúc cây thư mục trong DOS/WIN
 Cấu trúc thư viện, …
 Nhận xét:



Trong cấu trúc cây không tồn tại chu trình.
Tổ chức 1 cấu trúc cây cho phép truy cập nhanh
đến các phần tử của nó.
Cây nhị phân
Định nghĩa
 Cây

nhị phân là cây mà mỗi nút có tối đa 2
cây con.
 Trong thực tế thường gặp các cấu trúc có
dạng cây nhị phân. Một cây tổng quát có thể
biểu diễn thông qua cây nhị phân.
Hình ảnh cây nhị phân
a

b

k

1

4

f

G

Con trái

W

Con phải
 Biểu

diễn heap

19

9

8

1

5

4

6

0



Biểu diễn tính toán biểu thức
((1*x)-2)/((2+5+10)*(y/(3-17)))
/
*
1

*
+

2

+

x

2

/
10

5

-

y

3

17
`






Một số tính chất của cây nhị phân:
Số nút nằm ở mức I nhỏ hơn 2I.
Số nút lá ≤ 2h-1, với h là chiều cao của cây.
Chiều cao của cây h ≥ log2(số nút trong cây).
Số nút trong cây ≤ 2h-1.

19

0
1
2
3
4

9

8

1

5
4

6
0
Biểu diễn cây nhị phân T


Cây nhị phân là một cấu trúc bao gồm các phần tử
(nút) được kết nối với nhau theo quan hệ “cha-con”
với mỗi cha có tối đa 2 con. Để biểu diễn cây nhị
phân ta chọn phương pháp cấp phát liên kết. Ứng
với một nút, ta dùng một biến động lưu trữ các
thông tin:




Thông tin lưu trữ tại nút.
Địa chỉ nút gốc của cây con trái trong bộ nhớ.
Địa chỉ nút gốc của cây con phải trong bộ nhớ.
C#
Khai báo tương ứng trong ngôn ngữ C# có thể như sau:
class CTreeNode
{
Data Key; //Data là kiểu dữ liệu ứng với thông tin lưu tại nút
CTreeNode TLeft, TRight;
…
}
Do tính chất mềm dẻo của cách biểu diễn bằng cấp
phát liên kết, phương pháp này được dùng chủ yếu
trong biểu diễn cây nhị phân.
 Có

3 kiểu duyệt chính có thể áp dụng trên
cây nhị phân:




Duyệt theo thứ tự trước (NLR),
Thứ tự giữa (LNR)
Thứ tự sau (LRN)
Duyệt theo thứ tự trước
(Node-Left-Right)
Kiểu duyệt này trước tiên thăm nút gốc sau đó thăm các nút của
cây con trái rồi đến cây con phải. Thủ tục duyệt có thể trình bày
đơn giản như sau:
void
NLR(CTReeNode *a)
{
if (a != NULL)
{
<Xử lý a.key>; //Xử lý tương ứng theo nhu cầu
NLR(a->TLeft);
NLR(a->TRight);
}
}

 Ví

dụ:
 Duyệt thông tin của ổ đĩa C
C
GAME
NFP
Setup.exe

HOCTAP

Zentriz.exe
Run.bat

TOAN

MANG

DAISO baitap.doc

Sohoc.doc Matran.com

IP.doc

LAN
thietke.doc

WAN
rip.txt

Atm.doc
Duyệt theo thứ tự giữa (LeftNode-Right)
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. Thủ
tục duyệt có thể trình bày đơn giản như sau:
void LNR(CTREEnode a)
{
if (a != NULL)
{
LNR(a.Left);
<Xử lý a.key>; //Xử lý tương ứng theo
nhu cầu
LNR(a.Right);
}
}

 từ

cây nhị phân mảng sắp xếp
19
9
10

2
1

50
35

3

37

22
21

56

25

51

70
61

81

1,2,3,9,10,19,21,22,25,35,37,50,51,56,61,70,81
(3 + 1)×3/(9 ­– 5 + 2) – (3×(7 – 4) + 6) = –13
Duyệt theo thứ tự sau (LeftRight-Node)
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 cây con phải rồi cuốio cùng mới thăm
nút gốc. Thủ tục duyệt có thể trình bày đơn giản như
sau:
void LRN(TREE Root)
{
if (Root != NULL)
{
LRN(Root­>Left);
LRN(Root­>Right);
<Xử lý Root>;
//Xử lý tương ứng theo
nhu cầu
}
}

(3 1+ 3 x 9 5­2+/ 3 7 4 – x6+­

More Related Content

What's hot

Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
. .
 
Ctdl c4-cay
Ctdl c4-cayCtdl c4-cay
Ctdl c4-cay
hiep0109
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2
tranquanthien
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tính
Jojo Kim
 

What's hot (20)

Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
 
12.ma trận và dịnh thức
12.ma trận và dịnh thức12.ma trận và dịnh thức
12.ma trận và dịnh thức
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
 
Ctdl c4-cay
Ctdl c4-cayCtdl c4-cay
Ctdl c4-cay
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đĐề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTBài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
 
Đề tài: Thiết kế hệ thống thông tin quản lý phân phối Gas, HOT
Đề tài: Thiết kế hệ thống thông tin quản lý phân phối Gas, HOTĐề tài: Thiết kế hệ thống thông tin quản lý phân phối Gas, HOT
Đề tài: Thiết kế hệ thống thông tin quản lý phân phối Gas, HOT
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
 
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uốngĐề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
 
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNHBÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
 
Trí tueeuj nhân tạo
Trí tueeuj nhân tạoTrí tueeuj nhân tạo
Trí tueeuj nhân tạo
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tính
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinder
 

Viewers also liked

TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢNTÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
Trần Nguyên
 
Bai toan va thuat toan
Bai toan va thuat toanBai toan va thuat toan
Bai toan va thuat toan
Hữu Duy Duy
 
Thuat toan Prim
Thuat toan PrimThuat toan Prim
Thuat toan Prim
ANHMATTROI
 
Thuat Toan Prime Va Kruskal
Thuat Toan Prime Va KruskalThuat Toan Prime Va Kruskal
Thuat Toan Prime Va Kruskal
Hai Le Quoc
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
gaconne1985
 
Bai giang-ctdl
Bai giang-ctdlBai giang-ctdl
Bai giang-ctdl
Phong Vân
 
Vi du chi tiet giai thich lap trinh gui trong matlab
Vi du chi tiet  giai thich lap trinh gui trong matlabVi du chi tiet  giai thich lap trinh gui trong matlab
Vi du chi tiet giai thich lap trinh gui trong matlab
PhạmThế Anh
 

Viewers also liked (15)

Cây và cây nhị phân
Cây và cây nhị phân Cây và cây nhị phân
Cây và cây nhị phân
 
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢNTÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
 
Baigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánBaigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật Toán
 
Bai toan va thuat toan
Bai toan va thuat toanBai toan va thuat toan
Bai toan va thuat toan
 
Cấu trúc dữ liệu và giải thuật - Lê Minh Hoàng
Cấu trúc dữ liệu và giải thuật - Lê Minh Hoàng Cấu trúc dữ liệu và giải thuật - Lê Minh Hoàng
Cấu trúc dữ liệu và giải thuật - Lê Minh Hoàng
 
Thuyết trình Cây Nhị Phân
Thuyết trình Cây  Nhị PhânThuyết trình Cây  Nhị Phân
Thuyết trình Cây Nhị Phân
 
Thuat toan Prim
Thuat toan PrimThuat toan Prim
Thuat toan Prim
 
Thuat Toan Prime Va Kruskal
Thuat Toan Prime Va KruskalThuat Toan Prime Va Kruskal
Thuat Toan Prime Va Kruskal
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
 
[Seminar] Hướng dẫn viết test case
[Seminar] Hướng dẫn viết test case[Seminar] Hướng dẫn viết test case
[Seminar] Hướng dẫn viết test case
 
Bai giang-ctdl
Bai giang-ctdlBai giang-ctdl
Bai giang-ctdl
 
Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1
 
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTBài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
 
Vi du chi tiet giai thich lap trinh gui trong matlab
Vi du chi tiet  giai thich lap trinh gui trong matlabVi du chi tiet  giai thich lap trinh gui trong matlab
Vi du chi tiet giai thich lap trinh gui trong matlab
 

Recently uploaded

bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
dangdinhkien2k4
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
ChuThNgnFEFPLHN
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
Xem Số Mệnh
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
DungxPeach
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
hoangtuansinh1
 

Recently uploaded (20)

bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiện
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 

Bai13-Cau truc du lieu va giai thuat - Cay (Tree)

  • 2. Mục tiêu  Giới thiệu khái niệm cấu trúc cây.  Cấu trúc dữ liệu cây nhị phân tìm kiếm: tổ chức, các thuật toán, ứng dụng.  Giới thiệu cấu trúc dữ liệu cây nhị phân tìm kiếm cân bằng.
  • 4. Cây- một số định nghĩa   Định nghĩa 1: cây là một tập hợp T các phần tử (gọi là nút của cây) trong đó có 1 nút đặc biệt được gọi là gốc, các nút còn lại được chia thành những tập rời nhau T1, T2 ,... , Tn theo quan hệ phân cấp trong đó Ti cũng là một cây. Mỗi nút ở cấp i sẽ quản lý một số nút ở cấp i+1. Quan hệ này người ta còn gọi là quan hệ cha-con. Định nghĩa 2: cấu trúc cây với kiểu cơ sở T là một nút cấu trúc rỗng được gọi là cây rỗng (NULL). Một nút mà thông tin chính của nó có kiểu T, nó liên kết với một số hữu hạn các cấu trúc cây khác cũng có kiểu cơ sở T. Các cấu trúc này được gọi là những cây con của cây đang xét.
  • 5. Cây - Một số khái niệm cơ bản       Bậc của một nút: là số cây con của nút đó. Bậc của một cây: là bậc lớn nhất của các nút trong cây (số cây con tối đa của một nút thuộc cây). Cây có bậc n thì gọi là cây n-phân. 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. Mức của một nút:    Mức (gốc (T) ) = 0. Gọi T1, T2, T3,... , Tn là các cây con của T0 Mức (T1) = Mức (T2) = ... = Mức (Tn) = Mức (T0) + 1.
  • 6. Cây- một số định nghĩa   Độ 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. Độ dài đường đi tổng của cây: trong đó Px là độ dài đường đi từ gốc đến X. •Độ dài đường đi trung bình: PI = PT/n (n là số nút trên cây T). •Rừng cây: là tập hợp nhiều cây trong đó thứ tự các cây là quan trọng.
  • 7. Ví dụ  Sơ đồ tổ chức công ty
  • 8. Ví dụ  Cấu trúc trang web Trang chủ Giới thiệu Tổng công ty Tin tức Trang web Nội bộ Liên kết Van hóa Xã hội Chính trị
  • 9.  Mục lục một quyển sách  Cấu trúc cây thư mục trong DOS/WIN  Cấu trúc thư viện, …  Nhận xét:   Trong cấu trúc cây không tồn tại chu trình. Tổ chức 1 cấu trúc cây cho phép truy cập nhanh đến các phần tử của nó.
  • 11. Định nghĩa  Cây nhị phân là cây mà mỗi nút có tối đa 2 cây con.  Trong thực tế thường gặp các cấu trúc có dạng cây nhị phân. Một cây tổng quát có thể biểu diễn thông qua cây nhị phân.
  • 12. Hình ảnh cây nhị phân a b k 1 4 f G Con trái W Con phải
  • 14.   Biểu diễn tính toán biểu thức ((1*x)-2)/((2+5+10)*(y/(3-17))) / * 1 * + 2 + x 2 / 10 5 - y 3 17
  • 15. `      Một số tính chất của cây nhị phân: Số nút nằm ở mức I nhỏ hơn 2I. Số nút lá ≤ 2h-1, với h là chiều cao của cây. Chiều cao của cây h ≥ log2(số nút trong cây). Số nút trong cây ≤ 2h-1. 19 0 1 2 3 4 9 8 1 5 4 6 0
  • 16. Biểu diễn cây nhị phân T  Cây nhị phân là một cấu trúc bao gồm các phần tử (nút) được kết nối với nhau theo quan hệ “cha-con” với mỗi cha có tối đa 2 con. Để biểu diễn cây nhị phân ta chọn phương pháp cấp phát liên kết. Ứng với một nút, ta dùng một biến động lưu trữ các thông tin:    Thông tin lưu trữ tại nút. Địa chỉ nút gốc của cây con trái trong bộ nhớ. Địa chỉ nút gốc của cây con phải trong bộ nhớ.
  • 17. C# Khai báo tương ứng trong ngôn ngữ C# có thể như sau: class CTreeNode { Data Key; //Data là kiểu dữ liệu ứng với thông tin lưu tại nút CTreeNode TLeft, TRight; … } Do tính chất mềm dẻo của cách biểu diễn bằng cấp phát liên kết, phương pháp này được dùng chủ yếu trong biểu diễn cây nhị phân.
  • 18.  Có 3 kiểu duyệt chính có thể áp dụng trên cây nhị phân:    Duyệt theo thứ tự trước (NLR), Thứ tự giữa (LNR) Thứ tự sau (LRN)
  • 19. Duyệt theo thứ tự trước (Node-Left-Right) Kiểu duyệt này trước tiên thăm nút gốc sau đó thăm các nút của cây con trái rồi đến cây con phải. Thủ tục duyệt có thể trình bày đơn giản như sau: void NLR(CTReeNode *a) { if (a != NULL) { <Xử lý a.key>; //Xử lý tương ứng theo nhu cầu NLR(a->TLeft); NLR(a->TRight); } } 
  • 20.  Ví dụ:  Duyệt thông tin của ổ đĩa C C GAME NFP Setup.exe HOCTAP Zentriz.exe Run.bat TOAN MANG DAISO baitap.doc Sohoc.doc Matran.com IP.doc LAN thietke.doc WAN rip.txt Atm.doc
  • 21. Duyệt theo thứ tự giữa (LeftNode-Right) 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. Thủ tục duyệt có thể trình bày đơn giản như sau: void LNR(CTREEnode a) { if (a != NULL) { LNR(a.Left); <Xử lý a.key>; //Xử lý tương ứng theo nhu cầu LNR(a.Right); } } 
  • 22.  từ cây nhị phân mảng sắp xếp 19 9 10 2 1 50 35 3 37 22 21 56 25 51 70 61 81 1,2,3,9,10,19,21,22,25,35,37,50,51,56,61,70,81
  • 23. (3 + 1)×3/(9 ­– 5 + 2) – (3×(7 – 4) + 6) = –13
  • 24. Duyệt theo thứ tự sau (LeftRight-Node) 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 cây con phải rồi cuốio cùng mới thăm nút gốc. Thủ tục duyệt có thể trình bày đơn giản như sau: void LRN(TREE Root) { if (Root != NULL) { LRN(Root­>Left); LRN(Root­>Right); <Xử lý Root>; //Xử lý tương ứng theo nhu cầu } } 
  • 25. (3 1+ 3 x 9 5­2+/ 3 7 4 – x6+­