GIỚI THIỆU

Một phần của tài liệu giáo trình cấu trúc dữ liệu 2 (Trang 62 - 63)

Cõy tỡm kiếm nhị phõn thụng thường cú những thuận lợi lớn về mặt

lưu trữ và truy xuất dữ liệu trong phộp toỏn tỡm kiếm thờm vào hay loại bỏ một phần tử. Do đú, cõy tỡm kiếm nhị phõn xem ra là một

cấu trỳc lưu trữ dữ liệu tốt.

Tuy nhiờn trong một số trường hợp cõy tỡm kiếm nhị phõn cú một số

hạn chế. Nú hoạt động tốt nếu dữ liệu được chốn vào cõy theo thứ tự

ngẫu nhiờn. Tuy nhiờn, nếu dữ liệu được chốn vào theo thứ tự đó

được sắp xếp sẽ khụng hiệu quả. Khi cỏc trị số cần chốnđóđược sắp

xếp thỡ cõy nhị phõn trở nờn khụng cõn bằng. Khi cõy khụng cõn

bằng, nú mất đi khả năng tỡm kiếm nhanh (hoặc chốn hoặc xúa) một

phần tử đó chọ

Hỡnh 3.1Cỏc nodeđược chốn theo thứ tự tăng dần

Chỳng ta khảo sỏt một cỏch giải quyết vấn đề của cõy khụng cõn

bằng: đú là cõyđỏ đen, là cõy tỡm kiếm nhị phõn cú thờm một vài

đặc điểm.

Cú nhiều cỏch tiếp cận khỏc để bảo đảm cho cõy cõn bằng: chẳng

hạn cõy 2-3-4. Tuy vậy, trong phần lớn trường hợp, cõy đỏ đen là cõy cõn bằng hiệu quả nhất, ớt ra thỡ khi dữ liệu được lưu trữ trong

bộ nhớ chứ khụng phải trong những tập tin.

Trước khi khảo sỏt cõyđỏ đen, hóy xem lại cõy khụng cõn bằng được tạo ra nhưthế nàọ

Những node này tự sắp xếp thành một đường khụng phõn nhỏnh.

Bởi vỡ mỗi node lớn hơn nodeđóđược chốn vào trước đú, mỗi node

là con phảị Khi ấy, cõy bị mất cõn bằng hoàn toàn. Nếu ta chốn những mục (item) theo thứ tự giảm dần, mỗi node sẽ là con trỏi của

node cha của chỳng - cõy sẽ bị mất cõn bằng về phớa bờn kiạ

Độ phức tạp:

Khi cõy một nhỏnh, sẽ trở thành một danh sỏch liờn kết, dữ liệu sẽ là một chiều thay vỡ hai chiềụ Trong trường hợp này, thời gian truy

xuất giảm về O(N), thay vỡ O(logN)đối với cõy cõn bằng.

Để bảo đảm thời gian truy xuất nhanh O(logN) của cõy, chỳng ta

cần phải bảo đảm cõy luụn luụn cõn bằng (ớt ra cũng là cõy gần cõn

bằng). Điều này cú nghĩa là mỗi node trờn cõy phải cú xấp xỉ số

node con bờn phải bằng số node con bờn trỏị

Một cỏch tiếp cận giải quyết vấn đề cõn bằng lại cõy: đú là cõyđỏ đen-là cõy tỡm kiếm nhị phõn được bổ sung một số đặc điểm.

Trong cõyđỏ đen, việc cõn bằng được thực thi trong khi chốn, xúạ Khi thờm một phần tử thỡ thủ tục chốn sẽ kiểm tra xem tớnh chất cõn (adsbygoogle = window.adsbygoogle || []).push({});

bằng của cõy cú bị vi phạm hay khụng. Nếu cú, sẽ xõy dựng lại cấu

trỳc cõỵ Bằng cỏch này, cõy luụn luụnđược giữ cõn bằng.

CHƯƠNG 3 – CÂYĐỎ ĐEN

Một phần của tài liệu giáo trình cấu trúc dữ liệu 2 (Trang 62 - 63)