tree sort
Post on 10-Jan-2016
48 Views
Preview:
DESCRIPTION
TRANSCRIPT
دودویی جستجوی Binary)درختSearch Tree)
ممکن که است دودویی درخت یک دودویی جستجوی درخت
: . است زیر خاصیت دارای نباشد تهی اگر باشد تهی است
درخت زیر در مقدار هر از بزرگتر گره هر مقدار
آن راست درخت زیر در مقدار هر از کوچکتر و چپ
. باشد می
دارای نباید گره دو و است کلید یک دارای گره هر
.) ( فردهستند به منحصر کلیدها باشند یکسان کلید
: الف شکل زیر شکلهای فرزند BSTدر که چرا نیست
گره که( 10یعنی ) 15راست حالی در است کوچکتر آن از
. باشد بزرگتر باید
درخت یک ب . BSTشکل باشد می20
15 25
12 10
30
5 40
2 ) الف)ب ))
در عنصر یک BSTجستجوی
کلید با عنصری دنبال بخواهیم کنید . xفرض از ابتدا بگردیم
فاقد . جستجو درخت باشد، تهی ریشه اگر کنیم می شروع ریشه
. این غیر در بود خواهد ناموفق جستجو و بوده عنصری هر
. xصورت، اگر کنیم می مقایسه ریشه کلید مقدار با کمتر xرا
. کنیم می جستجو را چپ درخت زیر باشد، ریشه کلید مقدار از
راست xاگر درخت زیر آنگاه باشد ریشه کلید مقدار از بزرگتر
. کنیم می جستجو را
: کنیم می بیان را جستجو الگوریتم زیر در
Function search )t: BSTpointer; x:integer(:boolean;
Var found: boolean;
Begin
found:=false;
if )t<>nill( then begin
found=TRUE if data)t( = x then
else if data)t( > x then
found := search )Lchild)t( , x(
else if data)t( < x then
Search )Rchild )t(, x(; found=:
end;
Search := found;
End;
نکته:
با hاگر باشد، دودویی جستجوی درخت یک عمق یا ارتفاع
تابع از در searchاستفاده را جستجو عمل توانیم )O)hمی
. دهیم انجام
میزان به اضافی پشته یک به بازگشتی روش در )O)hالبته
. داشت خواهیم نیاز
به عنصر یک کردن BSTاضافه
جدید عنصر درج ی این xبرا آیا که نمود مشخص ابتدا باید ،
. انجام برای خیر یا باشد می متفاوت موجود عناصر با عنصر
. باشد ناموفق جستجو اگر کرد جستجو را درخت باید کار این
است کرده پیدا خاتمه جستجو که محلی در را عنصر ما پس
. الگوریتم شبیه کردن اضافه الگوریتم بنابراین کنیم می درج
جستجو الگوریتم انتهای به باید کار این برای و است جستجو
: کنیم اضافه را زیر خط if )not found ( then insert )x ,q(;
: insertتابع است زیر صورت بهProcedure insert ) x: integer ; q: BSTpointer(;
Var t: BSTpointer;
Begin
new )t(; data)t( := x;
Lchild )t(:=nil; Rchild )t(:=nil;
if )data )q( > x( then
Lchild )q(:=t
else if )data)q( < x( then
Rchild)q(:=t;
End;
درختی سازی Tree Sortمرتب
دودویی جستجوی درختهای از روش این مرتب BSTدر برای
. درخت اگر شود می استفاده صورت BSTسازی inorderبه
خواهد مرتب صعودی صورت به حاصل دنباله شود، پیمایش
شد.
درخت یک داخل یک به یک آرایه عناصر ابتدا الگوریتم این در
BST . با همزمان سپس کنیم می درج است تهی ابتدا در که
قرار آرایه یک در را شده پیمایش عناصر درخت، این پیمایش
. شوند مرتب تا دهیم می
40,60,50,33,55,1140 60 > 40
60
50 > 40
50 < 60
50
33 < 40
33
55 > 40
55 < 60
55 > 50
55
11 < 40
11 < 33
11 33 40 50 55 60
بدترین حالت
متوسط بهترین حالتحالت
O )n^2(O)n log n(O)n log n(پیچیدگی اجرایی
با شده داده اعداد اگر که است آن مهم نکته
درختهای گاه آن باشند، شده داده مختلفی ترتیب
عمق و کنند می فرق هم با است ممکن حاصل
. باشند داشته مختلفی
از عنصر یک BSTحذف
از عنصر یک . BSTحذف زیرا است آن درج از دشوارتر نسبتا
گره باید است فرزند دارای که شود می حذف ای گره وقتی
. این اگر شود شده حذف گره جایگزین تا شود انتخاب دیگری
خواص نشود انجام درست .BSTانتخاب شود می نقض
در ابتدا شود حذف باید که ای شود BSTگره می جستجو
حفظ درخت خواص که شود می جایگزین نحوی به سپس
شود.
فرزندی. 1حالت و باشد برگ شود حذف باید که ای گره
. می انجام سادگی به حذف حالت این در باشد نداشته
. شود تهی برابر والد گر اشاره است کافی و پذیرد
90
50 95
20
5 25
90
50 95
20
5
چپ. 2حالت فرزند یک دارای تنها شود حذف باید ای گره . شود آن جایگزین تواند می که است
90
50 95
20
5 25
90
9520
5 25
چپی. 3حالت فرزند شود حذف باید که ای گره راست فرزند. شود. می آن جایگزین راست فرزند بنابراین ندارد
90
50 150
20 125
140
90
50 175
20 125
140
چپ. 4حالت فرزند شود حذف باید که ای گره راست فرزند
آن. جایگزین گره راست فرزند ترین چپ حالت این در دارد
. شود می
. گره راست درخت مقدارزیر کوچکترین یعنی
گره بخواهیم اگر مثال ترین 50برای چپ کنیم حذف را
یعنی آن راست .66فرزند کنیم می حذف را
90
50 150
20
5
75
80
90
66 150
20
5
75
80
:inorderپیمایش است زیر صورت به
15,25,33,44,50,60,66,75.
گره از 33بنابراین بعد ظاهر 25که
گره جانشین را شود .25می کنیم می
گره ابتدا ) 33یعنی حالت به بنا کرده حذف را
جای( را آن سپس و .25ب دهیم می قرار
60
25 75
15 50 66
33
گره جای 33جانشینی تنها 25به حافظه در
با نه و شود می انجام گرها اشاره تغییر با
مکان یک از گره یک محتوای جایی به جا
. دیگر مکان به
گره بجای گره 33البته توانیم جانشین 15می را
25. کنیم
درخت نتیجه نمی BSTدر یکتا حذف عمل از حاصل
باشد.
60
33 75
15 50 66
44
زمان در تواند می حذف که )O)hعمل گیرد hانجام
. باشد می درخت عمق
درخت یک متوسط BSTدر ارتفاع ، Log 2nبا
. کرد حذف میتوان را عنصر کوچکترین
منبع:دادها ساختمان
مقسمی حمیدرضاwww.HPKClasses.ir
: کنندگان تهیهامامی مونا
جو نوع سمانه
استاد استاد راهنما:
کسمایی
top related