در این مطلب، ویدئو مقدمه نمودار – آموزش ساختارهای داده و الگوریتم در پایتون شماره 12 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:32:27
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,160 –> 00:00:02,159
در این ویدیو ما در مورد
2
00:00:02,159 –> 00:00:03,679
ساختار داده های گراف صحبت خواهیم کرد، این یک
3
00:00:03,679 –> 00:00:05,200
ویدیوی مقدماتی است که در
4
00:00:05,200 –> 00:00:08,000
آن به برخی از نظریه های اساسی
5
00:00:08,000 –> 00:00:08,800
در پشت گراف می
6
00:00:08,800 –> 00:00:11,360
پردازیم و سپس کد پایتون را در اینجا می نویسیم،
7
00:00:11,360 –> 00:00:13,519
من یک تصویر از شبکه فیس بوک من
8
00:00:13,519 –> 00:00:15,599
فقط بخشی از آن را دارم. شبکه من
9
00:00:15,599 –> 00:00:16,800
بسیار بزرگ است
10
00:00:16,800 –> 00:00:18,800
اما در این شبکه
11
00:00:18,800 –> 00:00:20,720
گره هایی وجود دارد که افراد هستند
12
00:00:20,720 –> 00:00:24,480
و سپس آنها از طریق فیس بوک
13
00:00:24,480 –> 00:00:26,560
به
14
00:00:26,560 –> 00:00:28,000
هم متصل
15
00:00:28,000 –> 00:00:30,080
16
00:00:30,080 –> 00:00:31,519
می شوند.
17
00:00:31,519 –> 00:00:33,360
بنابراین این اساساً یک
18
00:00:33,360 –> 00:00:35,040
ساختار داده گراف است و
19
00:00:35,040 –> 00:00:37,920
یک گراف بدون جهت است زیرا هیچ
20
00:00:37,920 –> 00:00:39,120
جهتی
21
00:00:39,120 –> 00:00:42,160
بین دو گره وجود ندارد در اینجا
22
00:00:42,160 –> 00:00:45,360
موجودیت های جداگانه گره نامیده می شوند و
23
00:00:45,360 –> 00:00:45,760
24
00:00:45,760 –> 00:00:48,000
چیزی که آن موجودیت ها را به هم متصل می کند
25
00:00:48,000 –> 00:00:51,039
لبه نامیده می شود
26
00:00:52,079 –> 00:00:54,239
یکی از کاربردهای ساختار داده گراف
27
00:00:54,239 –> 00:00:55,680
28
00:00:55,680 –> 00:00:58,800
پیشنهاد دوست فیس بوک است.
29
00:00:58,800 –> 00:01:01,440
بوربن دوست من است اما باروین ارتباطی دارد
30
00:01:01,440 –> 00:01:02,160
31
00:01:02,160 –> 00:01:05,119
، مثلاً نیکیشا احتمالاً
32
00:01:05,119 –> 00:01:06,880
نیکیشا می تواند دوست من باشد،
33
00:01:06,880 –> 00:01:09,439
بنابراین فیس بوک نیکیسا را به عنوان دو
34
00:01:09,439 –> 00:01:12,159
ت من پیشنهاد می کند. پیشنهاد d
35
00:01:12,159 –> 00:01:15,439
این یکی از کاربردهای نمودار است،
36
00:01:15,439 –> 00:01:18,320
مثال دیگری از نمودار مسیرهای پرواز است،
37
00:01:18,320 –> 00:01:19,200
38
00:01:19,200 –> 00:01:21,040
بنابراین در اینجا مسیرهایی بین
39
00:01:21,040 –> 00:01:22,960
شهرهای مختلف در سراسر جهان وجود دارد،
40
00:01:22,960 –> 00:01:25,360
این یک نمودار
41
00:01:25,360 –> 00:01:27,280
جهت دار است زیرا یک جهت
42
00:01:27,280 –> 00:01:29,439
وجود دارد که پرواز از بمبئی به پاریس
43
00:01:29,439 –> 00:01:31,280
وجود دارد، بنابراین یک مسیر وجود دارد. جهت به سمت آن،
44
00:01:31,280 –> 00:01:34,159
از این رو به آن گراف جهت دار می گویند، اکنون با
45
00:01:34,159 –> 00:01:36,799
فکر کردن به این موضوع، ممکن است فکر کنید
46
00:01:36,799 –> 00:01:39,200
که تفاوت بین نمودار و
47
00:01:39,200 –> 00:01:40,479
ورودی درخت
48
00:01:40,479 –> 00:01:43,759
چیست، تنها یک مسیر بین
49
00:01:43,759 –> 00:01:44,960
دو گره وجود دارد
50
00:01:44,960 –> 00:01:48,479
در اینجا می توانید ببینید که نمودار
51
00:01:48,479 –> 00:01:51,119
یک ساختار داده پیچیده است که در آن می توانید
52
00:01:51,119 –> 00:01:51,759
تقریباً
53
00:01:51,759 –> 00:01:55,280
به طور تصادفی هر دو گره
54
00:01:55,280 –> 00:01:57,360
را که در مورد بمبئی و نیویورک فکر می کنید به هم متصل کنید
55
00:01:57,360 –> 00:01:58,719
، دو قسمت وجود دارد
56
00:01:58,719 –> 00:02:00,479
که این دو گره را به هم متصل
57
00:02:00,479 –> 00:02:01,920
58
00:02:01,920 –> 00:02:04,320
59
00:02:04,320 –> 00:02:06,320
60
00:02:06,320 –> 00:02:07,759
61
00:02:07,759 –> 00:02:10,560
62
00:02:10,560 –> 00:02:12,160
می کند. دو گره باید فقط یک مسیر وجود داشته باشد،
63
00:02:12,160 –> 00:02:13,440
64
00:02:13,440 –> 00:02:16,959
بنابراین درخت را می توان به عنوان
65
00:02:16,959 –> 00:02:20,480
یک نوع خاص از گراف در نظر گرفت، اکنون
66
00:02:20,480 –> 00:02:23,840
یکی از کاربردهای رایج
67
00:02:23,840 –> 00:02:26,959
گراف، یافتن
68
00:02:26,959 –> 00:02:30,640
مسیر است. بین دو شهر، مثلاً
69
00:02:30,640 –> 00:02:32,080
در مورد
70
00:02:32,080 –> 00:02:35,519
مثال مسیر پرواز ما، ممکن است به
71
00:02:35,519 –> 00:02:36,000
وبسایتی
72
00:02:36,000 –> 00:02:40,640
بروید، مانند priceline.com،
73
00:02:40,640 –> 00:02:43,200
جایی که به شما امکان میدهد
74
00:02:43,200 –> 00:02:44,160
پروازها
75
00:02:44,160 –> 00:02:47,040
یا kayak.com را جستجو کنید، میتوانید نام دو شهر را وارد کنید
76
00:02:47,040 –> 00:02:47,519
77
00:02:47,519 –> 00:02:50,160
و به شما میگوید. شما در تمام مسیرهای
78
00:02:50,160 –> 00:02:52,000
بین این دو شهر
79
00:02:52,000 –> 00:02:53,840
چگونه این کار را انجام می دهید، بنابراین
80
00:02:53,840 –> 00:02:56,000
اگر در پرای لاین یا کایاک
81
00:02:56,000 –> 00:02:59,280
یا هر وب سایتی مانند google fly کار می
82
00:02:59,280 –> 00:03:00,959
کنید و اگر یک مهندس بک اند
83
00:03:00,959 –> 00:03:02,959
هستید، با نمودارها زیاد سر
84
00:03:02,959 –> 00:03:05,680
و کار خواهید داشت. وظیفه پیدا
85
00:03:05,680 –> 00:03:06,640
کردن کوتاه ترین
86
00:03:06,640 –> 00:03:10,080
مسیر بین دو گره یا شاید
87
00:03:10,080 –> 00:03:12,159
تمام مسیرهای ممکن بین دو
88
00:03:12,159 –> 00:03:13,840
شهر
89
00:03:13,840 –> 00:03:16,159
در مورد بمبئی و نیویورک داده شده
90
00:03:16,159 –> 00:03:18,400
91
00:03:18,400 –> 00:03:20,400
92
00:03:20,400 –> 00:03:21,920
است. دبی
93
00:03:21,920 –> 00:03:25,280
نیویورک، بنابراین اینها همه مسیرهای ممکن هستند،
94
00:03:25,280 –> 00:03:28,159
اما کوتاه ترین مسیر از نظر
95
00:03:28,159 –> 00:03:29,920
حداقل تعداد
96
00:03:29,920 –> 00:03:31,760
توقف، احتمالا بمبئی پاریس نیویورک و
97
00:03:31,760 –> 00:03:34,879
بمبئی دبی نیویورک است
98
00:03:35,840 –> 00:03:38,959
99
00:03:38,959 –> 00:03:39,920
100
00:03:39,920 –> 00:03:42,959
. در مورد
101
00:03:42,959 –> 00:03:43,840
102
00:03:43,840 –> 00:03:45,840
مثال مسیر پرواز،
103
00:03:45,840 –> 00:03:48,879
فاصله بین دو شهر خواهد بود،
104
00:03:48,879 –> 00:03:52,080
در این مورد به این نمودار وزنی می گویند
105
00:03:52,080 –> 00:03:54,400
106
00:03:54,400 –> 00:03:57,200
و کوتاه ترین مسیر بر اساس
107
00:03:57,200 –> 00:03:58,799
108
00:03:58,799 –> 00:04:00,879
فاصله بمبئی پاریس نیو یورک یا بمبئی
109
00:04:00,879 –> 00:04:02,080
دبی نیویورک
110
00:04:02,080 –> 00:04:05,040
نیست، در واقع بمبئی بوستون هارتفورد است.
111
00:04:05,040 –> 00:04:05,760
نیویورک
112
00:04:05,760 –> 00:04:09,680
اگرچه در مجموع چهار گره وجود دارد،
113
00:04:09,680 –> 00:04:12,959
اما فاصله کل
114
00:04:12,959 –> 00:04:16,079
حداقل است، بنابراین اگر میخواهید
115
00:04:16,079 –> 00:04:16,959
116
00:04:16,959 –> 00:04:19,358
کوتاهترین مسیر را بر اساس تعداد
117
00:04:19,358 –> 00:04:22,000
کل مسافت طی شده پیدا
118
00:04:22,000 –> 00:04:24,240
کنید، بمبئی بوستون هارتفورد نیویورک خواهد بود.
119
00:04:24,240 –> 00:04:25,840
120
00:04:25,840 –> 00:04:28,400
نمونه هایی از نموداری
121
00:04:28,400 –> 00:04:29,280
که
122
00:04:29,280 –> 00:04:31,120
احتمالاً در زندگی روزمره از آنها استفاده می کنیم، شما
123
00:04:31,120 –> 00:04:32,560
هر روز از نقشه های گوگل استفاده می
124
00:04:32,560 –> 00:04:35,520
کنید، از نمودار پشت صحنه استفاده می کنید،
125
00:04:35,520 –> 00:04:37,040
مثال دیگر اینترنت است
126
00:04:37,040 –> 00:04:39,040
وقتی به اینترنت متصل هستید
127
00:04:39,040 –> 00:04:40,800
128
00:04:40,800 –> 00:04:42,479
با رایانه های مختلف صحبت می کنید، بنابراین
129
00:04:42,479 –> 00:04:44,400
سرورهای مختلف یا رایانه های مختلف
130
00:04:44,400 –> 00:04:47,680
در هر شبکه ای می تواند اینترنت
131
00:04:47,680 –> 00:04:51,280
اینترنتی باشد که با استفاده از گراف به هم متصل می شوند،
132
00:04:51,280 –> 00:04:52,880
اساساً می توان آن را به عنوان
133
00:04:52,880 –> 00:04:54,880
توپولوژی گراف در نظر گرفت
134
00:04:54,880 –> 00:04:56,400
فیس بوک نمونه ای است که قبلاً به آن
135
00:04:56,400 –> 00:04:59,040
نگاه کرده ایم. d at amazon
136
00:04:59,040 –> 00:05:02,240
توصیه محصول را با استفاده از
137
00:05:02,240 –> 00:05:04,240
ساختار داده گراف و برخی از
138
00:05:04,240 –> 00:05:05,840
تئوری گراف توصیه می کند،
139
00:05:05,840 –> 00:05:08,720
اجازه دهید کدی برای پیاده سازی گراف در پایتون بنویسیم،
140
00:05:08,720 –> 00:05:11,039
اکنون
141
00:05:11,039 –> 00:05:13,840
در حین اجرای گراف، اولین
142
00:05:13,840 –> 00:05:15,199
سوالی که مطرح می شود
143
00:05:15,199 –> 00:05:18,479
این است که اگر فکر می کنید چگونه این کلاس را با استفاده از
144
00:05:18,479 –> 00:05:21,440
ساختار داده نشان می دهید. در مورد همه
145
00:05:21,440 –> 00:05:22,639
این گره ها
146
00:05:22,639 –> 00:05:25,039
که شهر هستند، این گره ها
147
00:05:25,039 –> 00:05:26,000
چیزی جز جفت نیستند،
148
00:05:26,000 –> 00:05:28,960
بنابراین اگر به بمبئی و پاریس فکر می کنید
149
00:05:28,960 –> 00:05:30,000
150
00:05:30,000 –> 00:05:32,560
، اساساً اتصال یک جفت
151
00:05:32,560 –> 00:05:34,479
بین بمبئی و پاریس است،
152
00:05:34,479 –> 00:05:36,240
به طور مشابه گلابی داریم که می
153
00:05:36,240 –> 00:05:38,000
گوید بمبئی و دبی و
154
00:05:38,000 –> 00:05:41,520
هر یک از این جفت ها مسیرهایی هستند. در
155
00:05:41,520 –> 00:05:45,120
واقع یکی از راه هایی که می توانید به آن فکر کنید
156
00:05:45,120 –> 00:05:48,479
استفاده از تاپل است تا بتوانید لیستی از
157
00:05:48,479 –> 00:05:49,199
تاپل ها را
158
00:05:49,199 –> 00:05:53,039
به این صورت ارائه دهید و هر تاپل
159
00:05:53,039 –> 00:05:55,919
یک مسیر را نشان می دهد در اینجا شما
160
00:05:55,919 –> 00:05:58,000
شهر شروع خود را دارید،
161
00:05:58,000 –> 00:06:01,039
شهر پایان خود را دارید و این دراگر با استفاده از
162
00:06:01,039 –> 00:06:02,160
این تاپل
163
00:06:02,160 –> 00:06:06,000
i یک کلاس پایتون می نویسد
164
00:06:06,000 –> 00:06:11,039
کلاس پایتون graph نامیده می شود
165
00:06:11,520 –> 00:06:14,479
و اینجا در پایتون اولین تابعی
166
00:06:14,479 –> 00:06:15,840
که در هر کلاس می نویسید
167
00:06:15,840 –> 00:06:19,360
init است و من چه کار خواهم کرد آیا
168
00:06:19,360 –> 00:06:22,720
169
00:06:22,720 –> 00:06:25,759
این مسیرها را
170
00:06:25,759 –> 00:06:28,800
به عنوان ورودی
171
00:06:28,800 –> 00:06:31,520
یا آرگومان به این تابع init ارسال میکنم و
172
00:06:31,520 –> 00:06:33,680
اینها لبه نامیده میشوند، من در اینجا از یک
173
00:06:33,680 –> 00:06:35,759
اصطلاح عمومی استفاده میکنم، به همین دلیل
174
00:06:35,759 –> 00:06:37,440
است که آن را مسیرها نمینامم، بلکه آن را ages میخوانم
175
00:06:37,440 –> 00:06:39,280
176
00:06:39,280 –> 00:06:44,560
و سپس self.ages برابر است با یال ها،
177
00:06:44,560 –> 00:06:46,720
بنابراین من فقط آن یال ها را در اینجا ذخیره می کنم و
178
00:06:46,720 –> 00:06:48,880
وقتی
179
00:06:48,880 –> 00:06:51,919
یک شی از این کلاس
180
00:06:51,919 –> 00:06:57,759
ایجاد می کنم نامیده
181
00:06:57,840 –> 00:07:01,599
182
00:07:01,599 –> 00:07:04,800
می شود.
183
00:07:04,800 –> 00:07:06,880
سناریوهای ممکن که
184
00:07:06,880 –> 00:07:09,360
یافتن تمام مسیرهای بین دو
185
00:07:09,360 –> 00:07:10,240
شهر
186
00:07:10,240 –> 00:07:13,520
و یافتن کوتاه ترین مسیر است، بنابراین در اینجا
187
00:07:13,520 –> 00:07:16,800
دیدیم که بین بمبئی و
188
00:07:16,800 –> 00:07:18,160
نیویورک این سه
189
00:07:18,160 –> 00:07:21,199
مسیر ممکن وجود دارد که شما دارید و
190
00:07:21,199 –> 00:07:23,360
می خواهید کوتاه ترین مسیر را بر اساس
191
00:07:23,360 –> 00:07:25,199
حداقل تعداد توقف خود پیدا
192
00:07:25,199 –> 00:07:27,440
کنید. ممکن است وب سایت های مختلفی را دیده باشید
193
00:07:27,440 –> 00:07:29,360
که به شما امکان رزرو پرواز را می دهد
194
00:07:29,360 –> 00:07:32,319
که در آن می توانید حداقل تعداد
195
00:07:32,319 –> 00:07:33,360
توقف ها
196
00:07:33,360 –> 00:07:35,360
را مشخص کنید یا شاید بتوانید دو شهر را مشخص کنید و
197
00:07:35,360 –> 00:07:36,960
همه مسیرهای ممکن را به شما بگوید
198
00:07:36,960 –> 00:07:37,919
بنابراین این
199
00:07:37,919 –> 00:07:40,160
برنامه خروجی است که ما انجام خواهیم داد.
200
00:07:40,160 –> 00:07:41,039
پیاده سازی کنید
201
00:07:41,039 –> 00:07:43,120
تا بدانید وقتی این تئوری را یاد گرفتید،
202
00:07:43,120 –> 00:07:45,199
شاید بتوانید در
203
00:07:45,199 –> 00:07:48,400
پروازهای گوگل یا ممکن است قیمت گذاری شغلی پیدا کنید،
204
00:07:48,400 –> 00:07:51,599
بنابراین از نظر
205
00:07:51,599 –> 00:07:53,360
دستکاری این اطلاعات به
206
00:07:53,360 –> 00:07:56,080
روشی مناسب، کاری که باید انجام دهید این است
207
00:07:56,080 –> 00:08:00,160
که باید این لبه ها را از
208
00:08:00,160 –> 00:08:03,280
لیستی که به
209
00:08:03,280 –> 00:08:06,639
ساختار داده های بهتر دیگری افزوده می شود، زیرا
210
00:08:06,639 –> 00:08:07,199
211
00:08:07,199 –> 00:08:10,160
هر بار
212
00:08:10,160 –> 00:08:10,879
213
00:08:10,879 –> 00:08:14,319
که می خواهید مسیری را پیدا کنید، یک به یک از این لبه ها عبور کنید،
214
00:08:14,319 –> 00:08:18,160
اغلب بسیار گران است، اما اگر
215
00:08:18,160 –> 00:08:21,280
ما بتوانیم این نوع فرهنگ لغت را ایجاد کنیم
216
00:08:21,280 –> 00:08:24,560
که در آن از بمبئی می دانیم چه
217
00:08:24,560 –> 00:08:26,960
چیزی وجود دارد. دو مسیر ممکن
218
00:08:26,960 –> 00:08:31,120
است، یکی پاریس، دیگری دبی است،
219
00:08:31,440 –> 00:08:34,640
بنابراین تصور کنید که ما یک
220
00:08:34,640 –> 00:08:38,640
دیکشنری مانند این داریم، خوب
221
00:08:38,640 –> 00:08:41,039
و به طور مشابه از پاریس، یک
222
00:08:41,039 –> 00:08:42,640
دبی در نیویورک
223
00:08:42,640 –> 00:08:46,160
وجود دارد، بنابراین از پاریس، دبی و نیویورک وجود خواهد داشت،
224
00:08:46,160 –> 00:08:49,360
225
00:08:49,600 –> 00:08:52,160
بنابراین این نوع ارائه ممکن است باشد. کمی
226
00:08:52,160 –> 00:08:52,959
227
00:08:52,959 –> 00:08:56,720
موثرتر است و دقیقاً خواهیم دید که چگونه
228
00:08:56,720 –> 00:08:58,640
میتوانیم از این نمایش مؤثر استفاده کنیم،
229
00:08:58,640 –> 00:09:02,080
بنابراین اولین قدمی که
230
00:09:02,080 –> 00:09:03,200
میخواهیم انجام دهیم این
231
00:09:03,200 –> 00:09:06,320
است که از این ساختار داده به
232
00:09:06,320 –> 00:09:08,320
این ساختار داده تبدیل شویم
233
00:09:08,320 –> 00:09:10,560
و چگونه این کار را انجام دهیم. شما این کار را به خوبی انجام می دهید، یک
234
00:09:10,560 –> 00:09:13,279
حلقه for ساده است که می توانید در اینجا اجرا کنید،
235
00:09:13,279 –> 00:09:16,480
بنابراین من
236
00:09:16,640 –> 00:09:19,200
ابتدا یک فرهنگ لغت گراف ایجاد می کنم که خالی خواهد بود،
237
00:09:19,200 –> 00:09:20,480
238
00:09:20,480 –> 00:09:23,760
سپس از تمام لبه ها عبور می کنم، بنابراین
239
00:09:23,760 –> 00:09:28,480
از تمام لبه ها عبور می
240
00:09:28,480 –> 00:09:30,000
کنم، اینگونه است که ما از تمام یال ها عبور می کنیم، بسیار
241
00:09:30,000 –> 00:09:32,880
خوب
242
00:09:32,880 –> 00:09:35,600
وقتی تاپل است، میتوانید بستهبندی تاپل را
243
00:09:35,600 –> 00:09:37,279
به این ترتیب باز کنید تا
244
00:09:37,279 –> 00:09:40,399
در دو متغیر مختلف شروع کنید و به پایان برسانید
245
00:09:40,399 –> 00:09:41,920
و سپس وقتی این
246
00:09:41,920 –> 00:09:43,760
را در نمودار وارد میکنید،
247
00:09:43,760 –> 00:09:46,640
کلید شما همیشه نقطه شروع است، بنابراین
248
00:09:46,640 –> 00:09:48,959
اگر این تاپل باشد، کلید شما بمبئی خواهد بود.
249
00:09:48,959 –> 00:09:53,360
اگر این کلید تاپلی باشد،
250
00:09:53,360 –> 00:09:56,240
اکنون اولین باری که بمبئی
251
00:09:56,240 –> 00:09:58,160
در حال پردازش این رکورد هستیم، اولین
252
00:09:58,160 –> 00:10:00,640
بار خواهد بود که فرهنگ لغت ما
253
00:10:00,640 –> 00:10:01,519
خالی
254
00:10:01,519 –> 00:10:04,079
255
00:10:04,079 –> 00:10:04,640
256
00:10:04,640 –> 00:10:08,079
خواهد
257
00:10:08,079 –> 00:10:11,760
بود. گرافیک، یعنی
258
00:10:11,760 –> 00:10:13,200
بمبئی قبلاً در فرهنگ لغت وجود دارد،
259
00:10:13,200 –> 00:10:15,519
خوب، وجود ندارد، فعلاً
260
00:10:15,519 –> 00:10:17,279
نمیخواهم به آن فکر کنم،
261
00:10:17,279 –> 00:10:19,760
پس بیایید به چیز دیگری فکر کنیم، بنابراین اینجا
262
00:10:19,760 –> 00:10:21,680
جایی است که شما در حال پردازش اولین
263
00:10:21,680 –> 00:10:24,480
رکورد هستید که فرهنگ لغت در آن خالی
264
00:10:24,480 –> 00:10:28,560
است. موردی که شما می خواهید t o
265
00:10:28,560 –> 00:10:31,200
mumbai را در فرهنگ لغت وارد کنید و روشی
266
00:10:31,200 –> 00:10:32,079
که این کار را انجام می دهید
267
00:10:32,079 –> 00:10:35,760
با استفاده از این کروشه است
268
00:10:35,760 –> 00:10:38,959
و سپس مقدار شما آرایه ای
269
00:10:38,959 –> 00:10:42,800
با مقدار مقصد
270
00:10:42,800 –> 00:10:46,000
ok است و هنگامی که
271
00:10:46,000 –> 00:10:47,920
بمبئی را در پاریس پر کردید، می دانید که
272
00:10:47,920 –> 00:10:50,320
فرهنگ لغت شما
273
00:10:50,320 –> 00:10:52,320
چیزی شبیه به این خواهد شد. بعد از
274
00:10:52,320 –> 00:10:54,399
اینکه اولین رکورد را پردازش
275
00:10:54,399 –> 00:10:57,279
کردید وقتی دومین تاپل بمبئی را دریافت کردید در
276
00:10:57,279 –> 00:10:59,440
حال حاضر وجود دارد، بنابراین شما به اینجا میآیید
277
00:10:59,440 –> 00:11:02,399
که میخواهید چه کاری انجام دهید، خوب میخواهید
278
00:11:02,399 –> 00:11:02,720
279
00:11:02,720 –> 00:11:06,079
دبی را در مقدار خود وارد کنید
280
00:11:06,079 –> 00:11:10,079
که لیستی از مقصد نهایی شما است،
281
00:11:10,079 –> 00:11:14,160
بنابراین این به شما میدهد که ارزش و
282
00:11:14,160 –> 00:11:15,360
تنها کاری که انجام می دهید این است
283
00:11:15,360 –> 00:11:19,600
که مقصد را اضافه کنید
284
00:11:19,600 –> 00:11:22,720
و من اکنون فرهنگ لغت نمودار را چاپ می
285
00:11:22,720 –> 00:11:23,440
286
00:11:23,440 –> 00:11:29,839
کنم تا ببینم چگونه به نظر می رسد،
287
00:11:34,399 –> 00:11:36,399
می توانید کلیک راست کرده و اجرا کنید و می بینید
288
00:11:36,399 –> 00:11:38,240
که فرهنگ لغت عالی به نظر می رسد بنابراین
289
00:11:38,240 –> 00:11:40,000
از بمبئی شما مسیرهایی به پاریس
290
00:11:40,000 –> 00:11:40,880
دبی
291
00:11:40,880 –> 00:11:42,880
از پاریس دارید. این دو مسیر
292
00:11:42,880 –> 00:11:44,640
از نیویورک تا تورنتو شما
293
00:11:44,640 –> 00:11:47,120
فقط یک مسیر دارید پس فرهنگ لغت من
294
00:11:47,120 –> 00:11:48,480
آماده شده است
295
00:11:48,480 –> 00:11:50,880
این دیکشنری در
296
00:11:50,880 –> 00:11:52,720
دو روش دیگری که قرار
297
00:11:52,720 –> 00:11:54,560
است بنویسیم و اولی ملاقات کردیم بسیار مفید خواهد بود.
298
00:11:54,560 –> 00:11:58,320
hod دریافت قطعات است بنابراین کاری که این روش
299
00:11:58,320 –> 00:11:59,760
انجام می دهد این است
300
00:11:59,760 –> 00:12:03,760
که شروع و پایان را به عنوان ورودی دریافت می کند
301
00:12:03,760 –> 00:12:07,120
و تمام مسیرهای اینجا را به شما برمی گرداند
302
00:12:07,120 –> 00:12:09,600
در این مورد بین بمبئی
303
00:12:09,600 –> 00:12:10,320
و نیویورک
304
00:12:10,320 –> 00:12:12,639
سه مسیر ممکن وجود دارد بنابراین برای ما
305
00:12:12,639 –> 00:12:14,160
نوشته خواهد شد
306
00:12:14,160 –> 00:12:17,519
که این سه قسمت را دریافت می کنیم. به عنوان یک مقدار بازگشتی
307
00:12:17,519 –> 00:12:18,000
308
00:12:18,000 –> 00:12:22,000
از این تابع، خوب
309
00:12:22,000 –> 00:12:25,279
حالا نمودار و درخت یک ساختار داده بازگشتی
310
00:12:25,279 –> 00:12:26,880
است، بنابراین منطقی است
311
00:12:26,880 –> 00:12:30,160
که در اینجا از بازگشت استفاده کنید زیرا
312
00:12:30,160 –> 00:12:34,240
اگر در مورد آن فکر کنید، ابتدا مسیرهای بین
313
00:12:34,240 –> 00:12:38,079
مومبای و نیویورک را می توان
314
00:12:38,079 –> 00:12:40,880
با پیدا کردن مسیرهای بین پاریس و نیویورک پیدا کرد.
315
00:12:40,880 –> 00:12:42,160
نیویورک
316
00:12:42,160 –> 00:12:44,800
سپس مسیرهایی را بین دبی و نیویورک پیدا می کنید
317
00:12:44,800 –> 00:12:45,600
318
00:12:45,600 –> 00:12:48,079
و در آن مسیر اضافه می کنید یا
319
00:12:48,079 –> 00:12:50,639
پیشوند mumbai را
320
00:12:50,639 –> 00:12:52,959
در حال حاضر ما فقط یک مسیر
321
00:12:52,959 –> 00:12:54,639
بین این دو داریم یا در واقع
322
00:12:54,639 –> 00:12:56,079
دو قسمت وجود دارد بنابراین بین پاریس و
323
00:12:56,079 –> 00:12:57,360
نیویورک یک مسیر مستقیم وجود دارد
324
00:12:57,360 –> 00:13:00,240
و مسیر پاریس دبی نیویورک وجود دارد،
325
00:13:00,240 –> 00:13:01,920
بنابراین
326
00:13:01,920 –> 00:13:05,600
ابتدا بیایید آن مسیرها را پیدا کنیم تا
327
00:13:05,600 –> 00:13:07,360
پاریس نیویورک را پیدا کنم سپس پاریس دبی نیویورک
328
00:13:07,360 –> 00:13:08,800
این دو قسمت هستند
329
00:13:08,800 –> 00:13:11,360
و سپس بمبئی را اضافه می کنم یا پیشوند
330
00:13:11,360 –> 00:13:12,560
بمبئی را در واقع
331
00:13:12,560 –> 00:13:16,079
اتفاق نمی افتد n و این یک
332
00:13:16,079 –> 00:13:16,959
رویکرد بازگشتی است،
333
00:13:16,959 –> 00:13:20,000
بنابراین باید مطمئناً از بازگشت استفاده کنیم و
334
00:13:20,000 –> 00:13:22,160
هر زمان که از بازگشت استفاده می کنید
335
00:13:22,160 –> 00:13:25,279
یک چیز را به خاطر بسپارید که باید
336
00:13:25,279 –> 00:13:28,560
ابتدا در مورد ساده ترین حالت فکر کنید
337
00:13:28,560 –> 00:13:30,639
هر زمان که تابع بازگشتی می
338
00:13:30,639 –> 00:13:31,920
339
00:13:31,920 –> 00:13:34,079
نویسید باید به ساده ترین
340
00:13:34,079 –> 00:13:36,480
حالت فکر کنید. سادهترین حالت
341
00:13:36,480 –> 00:13:39,760
سادهترین حالت میتواند
342
00:13:40,000 –> 00:13:42,880
شروع من باشد با پایان من، بنابراین فرض کنید من
343
00:13:42,880 –> 00:13:44,800
344
00:13:44,800 –> 00:13:46,720
به عنوان شروع و پایان عرضه میکنم اگر در بمبئی کمتر عرضه
345
00:13:46,720 –> 00:13:48,079
کنم،
346
00:13:48,079 –> 00:13:51,040
مسیری که پیدا خواهم کرد همان خواهد
347
00:13:51,040 –> 00:13:52,160
بود، پس میخواهم
348
00:13:52,160 –> 00:13:55,839
بمبئی را به عنوان مسیر خود
349
00:13:55,839 –> 00:14:00,079
برگردانم، خوب است. بنابراین بیایید آن مورد را مدیریت کنیم، بنابراین اگر
350
00:14:00,079 –> 00:14:03,600
شروع، پایان است، شروع برابر باشد
351
00:14:03,600 –> 00:14:07,920
و سپس
352
00:14:07,920 –> 00:14:11,199
مسیر را برگردانیم، مسیر من چیست، خوب است،
353
00:14:11,199 –> 00:14:14,320
بنابراین مسیری که باید به
354
00:14:14,320 –> 00:14:17,040
عنوان آرگومان ورودی در نظر بگیرم، زیرا این یک
355
00:14:17,040 –> 00:14:18,639
تابع بازگشتی است
356
00:14:18,639 –> 00:14:20,240
زمانی که این تابع بازگشتی به
357
00:14:20,240 –> 00:14:22,320
نام
358
00:14:22,320 –> 00:14:24,800
uh بین paris و نیویورک بازخواهد
359
00:14:24,800 –> 00:14:26,880
گشت پاریس نیویورک پاریس دبی
360
00:14:26,880 –> 00:14:27,440
نیویورک
361
00:14:27,440 –> 00:14:29,839
و وقتی باز شد یا وقتی پشته
362
00:14:29,839 –> 00:14:32,399
363
00:14:33,040 –> 00:14:36,240
در تماس برای والدین باز شد، انتظار دارم
364
00:14:36,240 –> 00:14:37,680
پاریس نیویورک و پاریس دبی نیویورک و
365
00:14:37,680 –> 00:14:38,639
می خواهم مو را اضافه کنم
366
00:14:38,639 –> 00:14:40,959
mbai در جلوی آن است، به همین دلیل
367
00:14:40,959 –> 00:14:42,480
من باید مسیر را
368
00:14:42,480 –> 00:14:45,839
به عنوان یک آرگومان ورودی انتخاب کنم
369
00:14:46,160 –> 00:14:49,920
و مسیر چیزی نیست جز مسیر به اضافه شروع،
370
00:14:49,920 –> 00:14:53,760
بنابراین مسیر، مسیر است به علاوه
371
00:14:53,760 –> 00:14:58,480
شروع، بسیار خوب،
372
00:14:58,480 –> 00:15:00,160
بنابراین اگر آن را فقط برای
373
00:15:00,160 –> 00:15:01,760
بمبئی بمبئی صدا می زنم،
374
00:15:01,760 –> 00:15:03,839
بیایید آن را صدا بزنیم و ببینید چه
375
00:15:03,839 –> 00:15:04,880
اتفاقی میافتد،
376
00:15:04,880 –> 00:15:10,079
بنابراین اینجا میگویم چاپ
377
00:15:10,839 –> 00:15:15,199
خوب است، بگذارید بگویم
378
00:15:15,839 –> 00:15:20,880
شروع بمبئی است و بمبئی است
379
00:15:23,440 –> 00:15:27,440
و مسیرهای بین
380
00:15:27,440 –> 00:15:31,120
شروع