در این مطلب، ویدئو برنامه پایتون برای پیاده سازی درخت جستجوی باینری | برنامه 1 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:09:03
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,160 –> 00:00:01,920
سلام بچه ها و به کانال یوتیوب آکادمی amulya خوش آمدید،
2
00:00:01,920 –> 00:00:03,679
3
00:00:03,679 –> 00:00:05,759
ما در مورد درخت جستجوی باینری بحث می کردیم،
4
00:00:05,759 –> 00:00:06,799
5
00:00:06,799 –> 00:00:09,360
بیایید ببینیم چگونه درخت جستجوی باینری را
6
00:00:09,360 –> 00:00:11,920
در زبان برنامه نویسی پایتون
7
00:00:11,920 –> 00:00:15,120
پیاده سازی کنیم در اینجا برای پیاده سازی درخت جستجوی باینری،
8
00:00:15,120 –> 00:00:16,239
ما از مفهوم کلاس و شی استفاده می کنیم،
9
00:00:16,239 –> 00:00:18,720
بنابراین قبل از شروع
10
00:00:18,720 –> 00:00:20,880
این ویدیو، فرض کنید
11
00:00:20,880 –> 00:00:21,840
دانش پایه ای
12
00:00:21,840 –> 00:00:24,640
در مورد مفهوم کلاس و شی در زبان برنامه نویسی پایتون دارید،
13
00:00:24,640 –> 00:00:26,320
14
00:00:26,320 –> 00:00:28,800
بنابراین در اینجا می خواهیم یک درخت را پیاده سازی کنیم، به
15
00:00:28,800 –> 00:00:30,000
طور خاص
16
00:00:30,000 –> 00:00:32,719
ورودی درخت جستجوی دودویی مجموعه ای از
17
00:00:32,719 –> 00:00:33,840
گره ها است
18
00:00:33,840 –> 00:00:36,719
و در اینجا من هر گره
19
00:00:36,719 –> 00:00:38,320
درخت جستجوی باینری را شامل
20
00:00:38,320 –> 00:00:42,079
سه قسمت می کنیم. قسمت اول کلید
21
00:00:42,079 –> 00:00:45,680
یا داده یا مقدار است و قسمت دوم
22
00:00:45,680 –> 00:00:49,039
فرزند سمت چپ و قسمت سوم
23
00:00:49,039 –> 00:00:52,800
فرزند سمت راست در هنگام نوشتن برنامه
24
00:00:52,800 –> 00:00:55,360
همانطور که گفتم ما از مفهوم کلاس و شی
25
00:00:55,360 –> 00:00:56,160
برای
26
00:00:56,160 –> 00:00:58,719
پیاده سازی درخت جستجوی باینری استفاده می کنیم بنابراین در اینجا
27
00:00:58,719 –> 00:00:59,840
هر گره
28
00:00:59,840 –> 00:01:02,640
درختی یک شی باشید، بنابراین در اینجا
29
00:01:02,640 –> 00:01:04,159
30
00:01:04,159 –> 00:01:06,960
یک گره مانند این ایجاد می کنیم، این یک شی است و
31
00:01:06,960 –> 00:01:09,280
هر گره شامل سه بخش یک
32
00:01:09,280 –> 00:01:09,600
33
00:01:09,600 –> 00:01:12,720
کلید است، بنابراین در اینجا به ke اشاره می کنیم. y و در
34
00:01:12,720 –> 00:01:14,799
اینجا این فرزند چپ است،
35
00:01:14,799 –> 00:01:17,200
حاوی پیوند یا مرجع فرزند چپ خواهد بود
36
00:01:17,200 –> 00:01:19,200
اگر این گره حاوی
37
00:01:19,200 –> 00:01:22,080
فرزند چپ نباشد، مرجع هیچ خواهد بود
38
00:01:22,080 –> 00:01:24,080
و در اینجا حاوی پیوند یا
39
00:01:24,080 –> 00:01:25,759
مرجع فرزند راست خواهد بود
40
00:01:25,759 –> 00:01:27,759
و اگر فرزند سمت راست وجود ندارد سپس
41
00:01:27,759 –> 00:01:29,360
ارجاع به
42
00:01:29,360 –> 00:01:32,640
هیچکدام را ذخیره می کند در اینجا یک مثال است این یک درخت
43
00:01:32,640 –> 00:01:34,079
جستجوی باینری درختی
44
00:01:34,079 –> 00:01:36,240
است این گره ریشه است که شامل 10 است
45
00:01:36,240 –> 00:01:37,439
و
46
00:01:37,439 –> 00:01:40,640
این فرزند سمت چپ این گره است و
47
00:01:40,640 –> 00:01:41,920
این فرزند سمت راست این
48
00:01:41,920 –> 00:01:44,880
گره است. و این گره حاوی هیچ
49
00:01:44,880 –> 00:01:45,680
فرزندی نیست
50
00:01:45,680 –> 00:01:47,680
و در اینجا این گره شامل دو گره فرزند است،
51
00:01:47,680 –> 00:01:49,040
بنابراین 15
52
00:01:49,040 –> 00:01:51,920
و 100 15 فرزند چپ و
53
00:01:51,920 –> 00:01:53,520
100 فرزند راست است،
54
00:01:53,520 –> 00:01:56,079
بنابراین در اینجا در برنامه ما
55
00:01:56,079 –> 00:01:56,799
این درخت را به
56
00:01:56,799 –> 00:01:59,439
این صورت در اینجا نشان خواهیم داد هر گره یک
57
00:01:59,439 –> 00:02:00,240
شی باشد،
58
00:02:00,240 –> 00:02:02,560
این اولین گره است و شامل
59
00:02:02,560 –> 00:02:03,360
سه قسمت
60
00:02:03,360 –> 00:02:06,799
10 500 مرجع فرزند چپ آن است
61
00:02:06,799 –> 00:02:07,439
62
00:02:07,439 –> 00:02:10,080
و 200 مرجع فرزند راست آن است
63
00:02:10,080 –> 00:02:11,120
64
00:02:11,120 –> 00:02:13,920
که بعد از این گره می آید، حاوی کلید است
65
00:02:13,920 –> 00:02:15,040
و شامل
66
00:02:15,040 –> 00:02:17,520
گره چپ نیست، به همین دلیل است که لینک یا
67
00:02:17,520 –> 00:02:18,959
مراجعه کنید ence در
68
00:02:18,959 –> 00:02:21,200
اینجا هیچ است، حاوی فرزند راست
69
00:02:21,200 –> 00:02:22,560
نیست، به همین دلیل است که هیچ
70
00:02:22,560 –> 00:02:26,040
کدام به این گره 20 که کلید
71
00:02:26,040 –> 00:02:30,080
است، نمی آید.
72
00:02:30,080 –> 00:02:33,040
73
00:02:33,040 –> 00:02:34,319
74
00:02:34,319 –> 00:02:36,959
گره
75
00:02:36,959 –> 00:02:38,640
شامل فرزند چپ و راست
76
00:02:38,640 –> 00:02:40,000
نیست، به همین دلیل است که ما میتوانیم هیچ کدام را
77
00:02:40,000 –> 00:02:44,160
در اینجا به سمت راست ببینیم، بنابراین ما
78
00:02:44,160 –> 00:02:46,400
سه مورد را به این شکل در برنامه خود نشان میدهیم، در اینجا
79
00:02:46,400 –> 00:02:47,599
هر گره در شی خواهد بود
80
00:02:47,599 –> 00:02:49,840
و هر شی شامل
81
00:02:49,840 –> 00:02:50,959
سه قسمت است که
82
00:02:50,959 –> 00:02:54,000
فرزند کلید چپ و فرزند راست
83
00:02:54,000 –> 00:02:57,519
همه است. درست است، اجازه دهید ابتدا برنامه را
84
00:02:57,519 –> 00:03:00,000
در فایل پایتون بنویسیم، من
85
00:03:00,000 –> 00:03:01,120
86
00:03:01,120 –> 00:03:03,680
برای پیاده سازی درخت جستجوی باینری
87
00:03:03,680 –> 00:03:04,239
از یک کلاس استفاده می کنم،
88
00:03:04,239 –> 00:03:07,360
اگر بخواهید می توانید از
89
00:03:07,360 –> 00:03:09,280
دو کلاس استفاده کنید، یعنی می توانید یک
90
00:03:09,280 –> 00:03:11,280
کلاس جداگانه برای ایجاد یک گره انتخاب کنید.
91
00:03:11,280 –> 00:03:13,840
همانطور که در لیست پیوندی در لیست
92
00:03:13,840 –> 00:03:15,200
پیوندی انجام دادیم، از
93
00:03:15,200 –> 00:03:17,440
class node و class linked list two
94
00:03:17,440 –> 00:03:18,239
برای
95
00:03:18,239 –> 00:03:20,319
پیاده سازی لیست پیوندی استفاده کردیم، اما در اینجا
96
00:03:20,319 –> 00:03:21,680
فقط یک کلاس
97
00:03:21,680 –> 00:03:23,760
می گیریم، کلاس جداگانه برای ایجاد گره نمی گیریم
98
00:03:23,760 –> 00:03:24,799
،
99
00:03:24,799 –> 00:03:27,280
بنابراین در اینجا من من می خواهم اینجا کلاس را
100
00:03:27,280 –> 00:03:29,280
اجرا کنم درخت جستجوی دودویی t
101
00:03:29,280 –> 00:03:30,959
به همین دلیل است که اگر بخواهید نام کلاس را به عنوان
102
00:03:30,959 –> 00:03:32,400
درخت جستجوی باینری انتخاب
103
00:03:32,400 –> 00:03:35,040
می کنم، می توانید هر نام مناسبی را انتخاب کنید،
104
00:03:35,040 –> 00:03:35,599
105
00:03:35,599 –> 00:03:37,599
نام کلاس کمی طولانی است اگر
106
00:03:37,599 –> 00:03:40,400
بخواهید می توانید bst را نیز به شکل کوتاهی از
107
00:03:40,400 –> 00:03:42,159
جستجوی باینری
108
00:03:42,159 –> 00:03:46,159
مانند این انتخاب کنید. نام کلاس
109
00:03:46,159 –> 00:03:48,480
و در داخل این کلاس ابتدا
110
00:03:48,480 –> 00:03:50,400
روش مقداردهی اولیه
111
00:03:50,400 –> 00:03:53,519
را می گیرم یعنی روش init را می گیرم underscore
112
00:03:53,519 –> 00:03:54,159
underscore
113
00:03:54,159 –> 00:03:57,680
شما باید 2 underscore بگیرید ienit بعدی
114
00:03:57,680 –> 00:04:00,640
و به دنبال آن دو underscore
115
00:04:00,640 –> 00:04:02,879
متد init متد ویژه
116
00:04:02,879 –> 00:04:05,760
کلاس است و زمانی که شی فراخوانی می شود
117
00:04:05,760 –> 00:04:06,879
118
00:04:06,879 –> 00:04:08,879
هنگامی که شی ایجاد می شود، این متد
119
00:04:08,879 –> 00:04:10,159
به طور خودکار فراخوانی می شود،
120
00:04:10,159 –> 00:04:12,959
نیازی به فراخوانی صریح آن برای فراخوانی
121
00:04:12,959 –> 00:04:14,159
هر متد دیگری نیست
122
00:04:14,159