در این مطلب، ویدئو پایتون: استفاده از آرایه برای نمایش یک پشته، صف و صف دایره ای با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:07,700 –> 00:00:09,810
سلام به همه شما خیلی خوش آمدید این
2
00:00:09,810 –> 00:00:11,220
نوعی برنامه نویسی در الگوریتم ها
3
00:00:11,220 –> 00:00:12,960
در این قسمت ما می خواهیم
4
00:00:12,960 –> 00:00:15,450
ببینیم پایتون چگونه پشته ها و صف ها را
5
00:00:15,450 –> 00:00:20,850
به عنوان یک آرایه پیاده سازی می کند، بنابراین ما در
6
00:00:20,850 –> 00:00:22,290
شبه کد نگاه کردیم و اکنون اجازه دهید آن را در
7
00:00:22,290 –> 00:00:25,470
پایتون بررسی کنیم. ما با پشته ها شروع می کنیم و به خود یادآوری می
8
00:00:25,470 –> 00:00:27,000
کنیم که یک پشته انبوهی از
9
00:00:27,000 –> 00:00:29,460
مواد است و به اصل
10
00:00:29,460 –> 00:00:31,830
ایفل دهانی lastin first-out پایبند است، به این
11
00:00:31,830 –> 00:00:33,720
معنی که آخرین عنصری که به پشته اضافه می
12
00:00:33,720 –> 00:00:36,500
شود اولین عنصری است که سرو می
13
00:00:36,500 –> 00:00:39,390
کنیم، بالا را اضافه می کنیم و از
14
00:00:39,390 –> 00:00:41,640
بالا جدا می کنیم این تنها راهی است که می توانیم
15
00:00:41,640 –> 00:00:44,399
از بالا به عناصر دسترسی پیدا کنیم، اما نمی توانیم از وسط به آنها دسترسی داشته باشیم
16
00:00:44,399 –> 00:00:49,440
، بنابراین در پایتون مانند
17
00:00:49,440 –> 00:00:51,750
کد شبه، ساک را با
18
00:00:51,750 –> 00:00:54,540
ایجاد آرایه ای به نام پشته پیاده سازی می کنیم و
19
00:00:54,540 –> 00:00:56,790
حداکثر طول آرایه را داریم. حداکثر
20
00:00:56,790 –> 00:00:58,829
اندازه یک متغیر نامیده می شود و ما متغیری
21
00:00:58,829 –> 00:01:01,379
به نام جدول پشته داریم که به ما می گوید
22
00:01:01,379 –> 00:01:03,000
در حال حاضر چه مقداری در بالای
23
00:01:03,000 –> 00:01:07,200
پشته است، بنابراین این یک
24
00:01:07,200 –> 00:01:11,579
نمایش تصویری از ما است در اینجا مقداری پایتون
25
00:01:11,579 –> 00:01:13,889
برای اعلام پشته وجود دارد، بنابراین در این مورد
26
00:01:13,889 –> 00:01:16,679
ما cr را داریم. پشته ای را خوردم که هفت
27
00:01:16,679 –> 00:01:19,590
عنصر در آن وجود دارد، چهار عنصر اول دارای
28
00:01:19,590 –> 00:01:21,869
مقادیر هستند و سه تای آخری که من
29
00:01:21,869 –> 00:01:23,490
فقط صفر گرفتم و به شما نشان می دهم
30
00:01:23,490 –> 00:01:24,979
که در حال حاضر هیچ مقداری در آنها وجود ندارد،
31
00:01:24,979 –> 00:01:28,609
بنابراین گفتم stack top همان مقدار است. 3
32
00:01:28,609 –> 00:01:31,979
که به معنای عنصر آرایه شماره 3
33
00:01:31,979 –> 00:01:33,420
است که چهارمین عنصر در امتداد است، بنابراین
34
00:01:33,420 –> 00:01:35,159
به عدد 26 اشاره می کند در این مورد
35
00:01:35,159 –> 00:01:39,509
31 41 59 و 26 که عنصر شماره
36
00:01:39,509 –> 00:01:40,829
3 آرایه است که عنصر چهارم است
37
00:01:40,829 –> 00:01:43,319
و بقیه چیزها تا اینجا در پشته خالی است.
38
00:01:43,319 –> 00:01:46,740
بنابراین امیدوارم که منطقی باشد
39
00:01:46,740 –> 00:01:48,149
40
00:01:48,149 –> 00:01:50,759
41
00:01:50,759 –> 00:01:52,829
که وقتی به سه عنصر
42
00:01:52,829 –> 00:01:55,439
اضافه شده یا فشار دادن کاری که انجام میدهیم میتوانیم چند عنصر را به پشته اضافه کنیم، یک دو سه سه عنصر دیگر اضافه کنیم، سپس
43
00:01:55,439 –> 00:01:58,560
فقط زمانی میتوانیم پاپ کنیم که شما در حال فشار دادن آن هستید.
44
00:01:58,560 –> 00:02:01,950
مقادیر را دوباره پایین میآوریم، بنابراین ما
45
00:02:01,950 –> 00:02:05,009
میخواهیم نحوه پیادهسازی ماژولها یا
46
00:02:05,009 –> 00:02:07,349
روشهای زیر را که ممکن است در پایتون نامیده
47
00:02:07,349 –> 00:02:11,550
میشود بررسی کنیم. پر است، فشار پاپ و بالا خالی است،
48
00:02:11,550 –> 00:02:13,680
بنابراین بیایید به آکورد نگاه کنیم تا بررسی
49
00:02:13,680 –> 00:02:16,050
کنیم که آیا خوب افتاده است یا خیر، دو راه وجود دارد.
50
00:02:16,050 –> 00:02:18,840
چک کردن اینکه آیا پاییز است یا خیر، این است که بررسی کنید آیا
51
00:02:18,840 –> 00:02:21,000
پشته بالا است یا خیر به علاوه یک برابر است با حداکثر اندازه،
52
00:02:21,000 –> 00:02:24,330
سپس میتوانیم یک پشته بولی کاملاً
53
00:02:24,330 –> 00:02:26,760
برابر درست را برگردانیم، همانطور که میتوانیم یک
54
00:02:26,760 –> 00:02:29,220
بولی مانند چهار برابر نادرست را برگردانیم، فکر میکنم
55
00:02:29,220 –> 00:02:30,510
آنچه مهم است در اینجا در پایتون توجه داشته باشیم این
56
00:02:30,510 –> 00:02:33,030
است که متغیری داریم به نام
57
00:02:33,030 –> 00:02:35,910
stack top که قرار است به آن استفاده شود، به ما می گوید
58
00:02:35,910 –> 00:02:38,190
که بالای پشته
59
00:02:38,190 –> 00:02:40,050
چیست زیرا در چندین روش
60
00:02:40,050 –> 00:02:43,050
یا ماژول های مختلف استفاده می شود که ما برای هر ماژولی که از
61
00:02:43,050 –> 00:02:46,500
آن استفاده می کنیم باید به پایتون بگوییم که یک
62
00:02:46,500 –> 00:02:49,530
متغیر سراسری است، بنابراین
63
00:02:49,530 –> 00:02:51,900
قبل از این ایده به متغیر جهانی نگاه کردیم.
64
00:02:51,900 –> 00:02:55,710
متغیر جهانی متغیری است که همه متدها
65
00:02:55,710 –> 00:02:58,170
یا ماژولها میتوانند ببینند اگر من اعلام نکنم
66
00:02:58,170 –> 00:03:02,990
که به عنوان جهانی
67
00:03:02,990 –> 00:03:06,540
اگر آن را کامل تغییر دهم، برنامه بیشتر نمیداند اگر آن را تغییر دهم، در
68
00:03:06,540 –> 00:03:12,900
سطح جهانی تغییر نمیکند، در حالی که اگر اگر من آن
69
00:03:12,900 –> 00:03:15,150
را تغییر دهم آن را به عنوان جهانی اعلام نکنیم، اگر آن را جهانی اعلام کنم،
70
00:03:15,150 –> 00:03:16,770
نمیداند که چه
71
00:03:16,770 –> 00:03:18,570
72
00:03:18,570 –> 00:03:20,700
73
00:03:20,700 –> 00:03:22,740
74
00:03:22,740 –> 00:03:25,350
مقداری دارد. پشته boolean
75
00:03:25,350 –> 00:03:29,360
full یک محدوده محلی است که در آن
76
00:03:29,360 –> 00:03:33,560
متغیر sta است ck top یک دامنه جهانی دارد
77
00:03:33,560 –> 00:03:36,570
و ما میتوانیم این کار را خیلی سریعتر انجام دهیم فقط با
78
00:03:36,570 –> 00:03:38,730
بررسی stack top که یک
79
00:03:38,730 –> 00:03:43,920
متغیر جهانی برابر با حداکثر اندازه کامل است اگر
80
00:03:43,920 –> 00:03:44,970
میخواهیم بررسی کنیم که پشته خالی است یا خیر،
81
00:03:44,970 –> 00:03:47,130
فقط بررسی کنیم که آیا stack top هست یا خیر.
82
00:03:47,130 –> 00:03:48,600
تلفن ذهنی و من انباشته کرده ام
83
00:03:48,600 –> 00:03:51,170
منهای 1 است، سپس می توانیم یک پشته بولی را خالی اعلام کنیم
84
00:03:51,170 –> 00:03:55,320
درست است، زیرا می توانیم
85
00:03:55,320 –> 00:03:57,630
پشته بولی را خالی جستجو کنیم تا نادرست باشد و سپس
86
00:03:57,630 –> 00:03:59,400
دوباره خالی شدیم و دوباره
87
00:03:59,400 –> 00:04:03,180
به خود یادآوری می کنیم که پشته متغیر
88
00:04:03,180 –> 00:04:05,790
top باید به عنوان متغیر
89
00:04:05,790 –> 00:04:09,330
جهانی در این متد اعلان شود و
90
00:04:09,330 –> 00:04:10,680
راه کوتاهتر برای انجام آن فقط با
91
00:04:10,680 –> 00:04:13,110
گفتن ساده global stacked up است
92
00:04:13,110 –> 00:04:16,769
که اگر برابر با منهای 1 باشد،
93
00:04:16,769 –> 00:04:18,930
پشته خالی است اگر
94
00:04:18,930 –> 00:04:20,820
برابر با منهای 1 نباشد، پس پشته دارای مقادیری
95
00:04:20,820 –> 00:04:24,620
است که چگونه یک مقدار را دوباره فشار دهیم
96
00:04:24,620 –> 00:04:27,169
تا به برنامه یادآوری کنیم که stack top
97
00:04:27,169 –> 00:04:29,750
جهانی است، بررسی می کنیم اگر
98
00:04:29,750 –> 00:04:31,430
پشته پر است یا نه، فقط یک پیام را چاپ می کنیم
99
00:04:31,430 –> 00:04:33,919
که وضعیت کامل است، در غیر این صورت
100
00:04:33,919 –> 00:04:36,530
یک stack top اضافه می کنیم و سپس
101
00:04:36,530 –> 00:04:40,040
مقدار n را در wha می نویسیم اگر آرایه
102
00:04:40,040 –> 00:04:42,740
بالای پشته به مرحله اشاره میکند، مقدار
103
00:04:42,740 –> 00:04:46,160
بالای پشته و پشته آرایه، بیایید به
104
00:04:46,160 –> 00:04:47,960
ظاهر کردن مقداری که در متغیر
105
00:04:47,960 –> 00:04:51,229
int با صفر گفتیم نگاه کنیم، مجدداً به سیستم یادآوری میکنیم
106
00:04:51,229 –> 00:04:53,660
که اگر این نشانگر stack top
107
00:04:53,660 –> 00:04:57,740
باید برای همه روشها در دسترس باشد اگر خالی شود.
108
00:04:57,740 –> 00:04:59,720
پشته را به طور تصادفی چاپ می کنیم،
109
00:04:59,720 –> 00:05:01,430
در غیر این صورت،
110
00:05:01,430 –> 00:05:05,870
مقدار را می نویسیم و با مقداری که در
111
00:05:05,870 –> 00:05:07,970
حال حاضر توسط بالای پشته مشخص شده است، می نویسیم
112
00:05:07,970 –> 00:05:10,220
و سپس یکی را از مقدار
113
00:05:10,220 –> 00:05:13,010
انباشته شده در حال حاضر حذف می کنیم، در غیر این صورت، یکی را از مقدار
114
00:05:13,010 –> 00:05:15,530
انباشته برمی داریم، زیرا من
115
00:05:15,530 –> 00:05:17,720
این متغیر انباشته شده را جهانی اعلام کردهاید،
116
00:05:17,720 –> 00:05:19,940
همه برنامههای دیگر میدانند که
117
00:05:19,940 –> 00:05:21,770
زن از آن حذف شده است، اگر من
118
00:05:21,770 –> 00:05:23,840
آن را به عنوان جهانی اعلام نکنم، اگر
119
00:05:23,840 –> 00:05:26,479
در این متد یا ماژول یکی را از آن جدا کنم،
120
00:05:26,479 –> 00:05:29,330
روشهای دیگر ماژولها هستند.
121
00:05:29,330 –> 00:05:31,250
که این تخمیر اتفاق افتاده است،
122
00:05:31,250 –> 00:05:33,200
بنابراین من باید به بقیه بگویم بچه ها نگاه کنید،
123
00:05:33,200 –> 00:05:35,270
من یکی را از این پسر
124
00:05:35,270 –> 00:05:40,460
در اینجا می گیرم و شما باید از آن آگاه باشید اگر
125
00:05:40,460 –> 00:05:42,470
ما فقط می خواهیم تاپ را انجام دهیم، یعنی فقط به
126
00:05:42,470 –> 00:05:43,910
من نشان دهید که بالاترین ارزش من چیست؟ اما
127
00:05:43,910 –> 00:05:46,070
یکی را حذف نکنید، دقیقاً مشابه
128
00:05:46,070 –> 00:05:48,530
پاپ است، با این تفاوت که ما پشته را یک به یک کاهش نمی دهیم،
129
00:05:48,530 –> 00:05:50,930
بنابراین از نظر فنی،
130
00:05:50,930 –> 00:05:54,050
احتمالاً نیازی نیست که اعلام کنیم stack
131
00:05:54,050 –> 00:05:55,550
top جهانی است، اما به
132
00:05:55,550 –> 00:05:58,460
هر حال اینطور است زیرا ما با استفاده از مقدار
133
00:05:58,460 –> 00:06:01,400
stack top در هر زمان، متغیری
134
00:06:01,400 –> 00:06:03,470
دارم که به روشهای مختلف
135
00:06:03,470 –> 00:06:06,139
برای پایتون خواهد بود، باید آن را به عنوان جهانی اعلام کنم،
136
00:06:06,139 –> 00:06:09,710
در غیر این صورت نمیداند
137
00:06:09,710 –> 00:06:11,660
جهانی است و ما نیز فقط به خودمان یادآوری میکنیم
138
00:06:11,660 –> 00:06:13,610
که ناشنوا
139
00:06:13,610 –> 00:06:17,000
در بالای صفحه وقتی روشی را اعلام میکنیم،
140
00:06:17,000 –> 00:06:19,669
آن را با استفاده از vef برای تعریف آن
141
00:06:19,669 –> 00:06:25,340
متد اعلام میکنیم تا این همان پشته ما
142
00:06:25,340 –> 00:06:27,830
143
00:06:27,830 –> 00:06:30,710
144
00:06:30,710 –> 00:06:32,120
باشد.
145
00:06:32,120 –> 00:06:37,370
با آن برخورد می شود بنابراین یک کلمه از
146
00:06:37,370 –> 00:06:38,210
پشت می
147
00:06:38,210 –> 00:06:40,619
گیریم یا به پشت اضافه می کنیم عذرخواهی می کنم
148
00:06:40,619 –> 00:06:43,229
و سپس از جلو بردارید بنابراین
149
00:06:43,229 –> 00:06:44,639
به پشت اضافه می شود که از
150
00:06:44,639 –> 00:06:48,029
جلو بردارید تا صف انجام دهید دقیقاً همان چیزی است
151
00:06:48,029 –> 00:06:50,369
که در شبه کد اعلام می کنیم از آرایه ای
152
00:06:50,369 –> 00:06:52,770
به نام صف ما حداکثر داریم طول
153
00:06:52,770 –> 00:06:54,809
به نام حداکثر اندازه جلوی
154
00:06:54,809 –> 00:06:56,699
صف را سر و پشت
155
00:06:56,699 –> 00:06:57,919
انسان را دم می نامند،
156
00:06:57,919 –> 00:07:01,559
بنابراین
157
00:07:01,559 –> 00:07:05,159
اگر
158
00:07:05,159 –> 00:07:07,080
در پایتون آن را در پایتون اعلام
159
00:07:07,080 –> 00:07:10,289
کنیم در این مورد به چه صورت است، این نمایش مفهومی از یک سر آرایه صف و حداکثر اندازه دم است. نشانه
160
00:07:10,289 –> 00:07:13,080
ای به طول 7 اعلام کرد، سر صف
161
00:07:13,080 –> 00:07:14,399
در این مورد به این صورت است که عنصر سوم
162
00:07:14,399 –> 00:07:19,349
یا سر صف در 2 و دم نشانه در
163
00:07:19,349 –> 00:07:22,110
5 است، بنابراین عنصر ششم به این معنی است که
164
00:07:22,110 –> 00:07:24,659
عنصر هفتم آخرین عنصر به 0 و
165
00:07:24,659 –> 00:07:27,029
اولین است. دو عنصر 0 و 1 0
166
00:07:27,029 –> 00:07:32,099
هستند و من در شبه کد می دانم که ما
167
00:07:32,099 –> 00:07:34,589
به این متغیرها می گوییم head و tail اما
168
00:07:34,589 –> 00:07:37,199
در پایتون آنها را Hugh head در صف نامیده ام و
169
00:07:37,199 –> 00:07:39,689
بگو که
170
00:07:39,689 –> 00:07:41,399
دلیل خاصی برای آن وجود ندارد جز اینکه من عصبی هستم.
171
00:07:41,399 –> 00:07:43,949
ممکن است سر و دم
172
00:07:43,949 –> 00:07:47,309
در پایتون معنای خاصی داشته باشند یا
173
00:07:47,309 –> 00:07:49,439
ممکن است دقیقاً واضح
174
00:07:49,439 –> 00:07:51,479
نباشند که چگونه هستند، حتی اگر ما
175
00:07:51,479 –> 00:07:53,849
بالای پشته را پشته می
176
00:07:53,849 –> 00:07:56,189
نامیم، بیایید به جای head در Vail، اشاره گرها را head in queue tail
177
00:07:56,189 –> 00:07:58,349
بنامیم. فقط به
178
00:07:58,349 –> 00:07:59,580
خودمان یادآوری کنیم که ما در اینجا دوباره به صفها نگاه
179
00:07:59,580 –> 00:08:02,249
میکنم، این است که وقتی
180
00:08:02,249 –> 00:08:06,990
الگوریتمها را در شبه کد پیادهسازی میکنم، خیلی شلختهتر هستم،
181
00:08:06,990 –> 00:08:07,559
182
00:08:07,559 –> 00:08:09,509
زیرا این یک زبان طراحی یا یک
183
00:08:09,509 –> 00:08:10,919
پیادهسازی از یک زبان برنامهنویسی تبر است،
184
00:08:10,919 –> 00:08:12,839
من واقعاً روی
185
00:08:12,839 –> 00:08:15,059
نام متغیرم سام سختتر میشوم. معمار
186
00:08:15,059 –> 00:08:17,399
من میتوانم اتاقها را روی نقشههایی بکشم
187
00:08:17,399 –> 00:08:19,319
که خیلی مهم هستند یا همانطور که صورتحسابها
188
00:08:19,319 –> 00:08:22,439
در حال ساخت صورتحساب اتاقها بودند،
189
00:08:22,439 –> 00:08:24,389
باید مطمئن باشم که اتاقها ثابت
190
00:08:24,389 –> 00:08:26,430
خواهند ماند و به همان روشی
191
00:08:26,430 –> 00:08:29,129
که من هنگام طراحی کد و طراحی رفتم، رفتم. شبه کد من
192
00:08:29,129 –> 00:08:30,389
میتوانم کمی شل باشم در حالی که وقتی
193
00:08:30,389 –> 00:08:32,669
در پایتون پیادهسازی میکنم میخواهم بسیار
194
00:08:32,669 –> 00:08:34,799
دقیق باشم و همچنین میخواهم کدهایم را زیاد آزمایش کنم،
195
00:08:34,799 –> 00:08:38,159
بنابراین نحوه
196
00:08:38,159 –> 00:08:40,769
پیادهسازی را بررسی میکنیم خالی است اضافه کردن به صف
197
00:08:40,769 –> 00:08:44,510
حذف از صف و پاک کردن صف
198
00:08:44,990 –> 00:08:47,490
چگونه بررسی کنیم که
199
00:08:47,490 –> 00:08:50,189
ابتدا صف پر است، اگر صف
200
00:08:50