tree sort
DESCRIPTION
Tree Sort. درخت جستجوی دودویی (Binary Search Tree). درخت جستجوی دودویی یک درخت دودویی است که ممکن است تهی باشد. اگر تهی نباشد دارای خاصیت زیر است: مقدار هر گره بزرگتر از هر مقدار در زیر درخت چپ و کوچکتر از هر مقدار در زیر درخت راست آن می باشد. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/1.jpg)
![Page 2: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/2.jpg)
دودویی جستجوی Binary)درختSearch Tree)
ممکن که است دودویی درخت یک دودویی جستجوی درخت
: . است زیر خاصیت دارای نباشد تهی اگر باشد تهی است
درخت زیر در مقدار هر از بزرگتر گره هر مقدار
آن راست درخت زیر در مقدار هر از کوچکتر و چپ
. باشد می
دارای نباید گره دو و است کلید یک دارای گره هر
.) ( فردهستند به منحصر کلیدها باشند یکسان کلید
![Page 3: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/3.jpg)
: الف شکل زیر شکلهای فرزند BSTدر که چرا نیست
گره که( 10یعنی ) 15راست حالی در است کوچکتر آن از
. باشد بزرگتر باید
درخت یک ب . BSTشکل باشد می20
15 25
12 10
30
5 40
2 ) الف)ب ))
![Page 4: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/4.jpg)
در عنصر یک BSTجستجوی
کلید با عنصری دنبال بخواهیم کنید . xفرض از ابتدا بگردیم
فاقد . جستجو درخت باشد، تهی ریشه اگر کنیم می شروع ریشه
. این غیر در بود خواهد ناموفق جستجو و بوده عنصری هر
. xصورت، اگر کنیم می مقایسه ریشه کلید مقدار با کمتر xرا
. کنیم می جستجو را چپ درخت زیر باشد، ریشه کلید مقدار از
راست xاگر درخت زیر آنگاه باشد ریشه کلید مقدار از بزرگتر
. کنیم می جستجو را
: کنیم می بیان را جستجو الگوریتم زیر در
![Page 5: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/5.jpg)
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;
![Page 6: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/6.jpg)
نکته:
با hاگر باشد، دودویی جستجوی درخت یک عمق یا ارتفاع
تابع از در searchاستفاده را جستجو عمل توانیم )O)hمی
. دهیم انجام
میزان به اضافی پشته یک به بازگشتی روش در )O)hالبته
. داشت خواهیم نیاز
![Page 7: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/7.jpg)
به عنصر یک کردن BSTاضافه
جدید عنصر درج ی این xبرا آیا که نمود مشخص ابتدا باید ،
. انجام برای خیر یا باشد می متفاوت موجود عناصر با عنصر
. باشد ناموفق جستجو اگر کرد جستجو را درخت باید کار این
است کرده پیدا خاتمه جستجو که محلی در را عنصر ما پس
. الگوریتم شبیه کردن اضافه الگوریتم بنابراین کنیم می درج
جستجو الگوریتم انتهای به باید کار این برای و است جستجو
: کنیم اضافه را زیر خط if )not found ( then insert )x ,q(;
![Page 8: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/8.jpg)
: 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;
![Page 9: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/9.jpg)
درختی سازی Tree Sortمرتب
دودویی جستجوی درختهای از روش این مرتب BSTدر برای
. درخت اگر شود می استفاده صورت BSTسازی inorderبه
خواهد مرتب صعودی صورت به حاصل دنباله شود، پیمایش
شد.
درخت یک داخل یک به یک آرایه عناصر ابتدا الگوریتم این در
BST . با همزمان سپس کنیم می درج است تهی ابتدا در که
قرار آرایه یک در را شده پیمایش عناصر درخت، این پیمایش
. شوند مرتب تا دهیم می
![Page 10: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/10.jpg)
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
![Page 11: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/11.jpg)
بدترین حالت
متوسط بهترین حالتحالت
O )n^2(O)n log n(O)n log n(پیچیدگی اجرایی
![Page 12: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/12.jpg)
با شده داده اعداد اگر که است آن مهم نکته
درختهای گاه آن باشند، شده داده مختلفی ترتیب
عمق و کنند می فرق هم با است ممکن حاصل
. باشند داشته مختلفی
![Page 13: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/13.jpg)
از عنصر یک BSTحذف
از عنصر یک . BSTحذف زیرا است آن درج از دشوارتر نسبتا
گره باید است فرزند دارای که شود می حذف ای گره وقتی
. این اگر شود شده حذف گره جایگزین تا شود انتخاب دیگری
خواص نشود انجام درست .BSTانتخاب شود می نقض
در ابتدا شود حذف باید که ای شود BSTگره می جستجو
حفظ درخت خواص که شود می جایگزین نحوی به سپس
شود.
![Page 14: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/14.jpg)
فرزندی. 1حالت و باشد برگ شود حذف باید که ای گره
. می انجام سادگی به حذف حالت این در باشد نداشته
. شود تهی برابر والد گر اشاره است کافی و پذیرد
![Page 15: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/15.jpg)
90
50 95
20
5 25
90
50 95
20
5
![Page 16: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/16.jpg)
چپ. 2حالت فرزند یک دارای تنها شود حذف باید ای گره . شود آن جایگزین تواند می که است
90
50 95
20
5 25
90
9520
5 25
![Page 17: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/17.jpg)
چپی. 3حالت فرزند شود حذف باید که ای گره راست فرزند. شود. می آن جایگزین راست فرزند بنابراین ندارد
90
50 150
20 125
140
90
50 175
20 125
140
![Page 18: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/18.jpg)
چپ. 4حالت فرزند شود حذف باید که ای گره راست فرزند
آن. جایگزین گره راست فرزند ترین چپ حالت این در دارد
. شود می
. گره راست درخت مقدارزیر کوچکترین یعنی
گره بخواهیم اگر مثال ترین 50برای چپ کنیم حذف را
یعنی آن راست .66فرزند کنیم می حذف را
![Page 19: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/19.jpg)
90
50 150
20
5
75
80
90
66 150
20
5
75
80
![Page 20: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/20.jpg)
:inorderپیمایش است زیر صورت به
15,25,33,44,50,60,66,75.
گره از 33بنابراین بعد ظاهر 25که
گره جانشین را شود .25می کنیم می
گره ابتدا ) 33یعنی حالت به بنا کرده حذف را
جای( را آن سپس و .25ب دهیم می قرار
60
25 75
15 50 66
33
![Page 21: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/21.jpg)
گره جای 33جانشینی تنها 25به حافظه در
با نه و شود می انجام گرها اشاره تغییر با
مکان یک از گره یک محتوای جایی به جا
. دیگر مکان به
گره بجای گره 33البته توانیم جانشین 15می را
25. کنیم
درخت نتیجه نمی BSTدر یکتا حذف عمل از حاصل
باشد.
60
33 75
15 50 66
44
![Page 22: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/22.jpg)
زمان در تواند می حذف که )O)hعمل گیرد hانجام
. باشد می درخت عمق
درخت یک متوسط BSTدر ارتفاع ، Log 2nبا
. کرد حذف میتوان را عنصر کوچکترین
![Page 23: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/23.jpg)
منبع:دادها ساختمان
مقسمی حمیدرضاwww.HPKClasses.ir
![Page 24: Tree Sort](https://reader036.vdocuments.mx/reader036/viewer/2022081603/568142a0550346895daeda94/html5/thumbnails/24.jpg)
: کنندگان تهیهامامی مونا
جو نوع سمانه
استاد استاد راهنما:
کسمایی