در این مطلب، ویدئو پشته ها و صف ها (پایتون) – ساختارهای داده و الگوریتم ها با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:14:54
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,920
سلام به همه خوش آمدید در این قسمت
2
00:00:01,920 –> 00:00:04,110
ما می خواهیم به صورت دستی با پشته ها
3
00:00:04,110 –> 00:00:06,330
و صف ها فقط با مرور چند
4
00:00:06,330 –> 00:00:08,280
نمونه از
5
00:00:08,280 –> 00:00:10,469
زبان برنامه نویسی پایتون استفاده کنیم تا بتوانید
6
00:00:10,469 –> 00:00:12,210
از هر زبانی که می خواهید استفاده کنید و
7
00:00:12,210 –> 00:00:14,490
آن را با نیازهای خود تطبیق دهید. بنابراین، ابتدا
8
00:00:14,490 –> 00:00:16,980
نگاهی به استفاده از آنچه در داخل به
9
00:00:16,980 –> 00:00:20,279
نفع ما است میاندازیم، بنابراین برای ایجاد یک
10
00:00:20,279 –> 00:00:24,330
پشته، فقط از یک لیست استفاده
11
00:00:24,330 –> 00:00:27,029
میکنیم تا بگوییم دادهها اجازه دهید
12
00:00:27,029 –> 00:00:29,730
کمی برای شما بزرگنمایی کنم و برای
13
00:00:29,730 –> 00:00:32,070
ایجاد آن لیست، میتوانیم
14
00:00:32,070 –> 00:00:35,160
برخی از عناصر را بهطور پیشفرض در اینجا قرار دهیم، اما برای
15
00:00:35,160 –> 00:00:37,680
اینکه رفتار را به بهترین شکل نشان دهیم، احتمالاً
16
00:00:37,680 –> 00:00:40,260
بهتر است فقط به چند عملیات محدود شود
17
00:00:40,260 –> 00:00:44,070
که 4 پشته هستند که
18
00:00:44,070 –> 00:00:46,649
توانایی فشار دادن یک عنصر به پشته
19
00:00:46,649 –> 00:00:49,289
و توانایی بیرون آوردن یک عنصر از
20
00:00:49,289 –> 00:00:53,280
پشته، بنابراین برای فشار دادن یک عنصر، در واقع
21
00:00:53,280 –> 00:00:56,820
از متد الحاق استفاده میکنید و
22
00:00:56,820 –> 00:01:00,629
دادهها را به عنوان آرگومان ارسال میکنید تا چیزی
23
00:01:00,629 –> 00:01:03,120
از پشته بیرون بیاید، در واقع pop را فراخوانی
24
00:01:03,120 –> 00:01:06,150
میکنید تا یکی خوب جا بیفتد و اینطور
25
00:01:06,150 –> 00:01:09,119
خواهد شد. بازگشت، بنابراین ما فقط با آن تماس می گیریم
26
00:01:09,119 –> 00:01:13,409
عنصر متغیر را برگردانیم و سپس می توانیم
27
00:01:13,409 –> 00:01:16,799
این کار را انجام دهیم این است که می توانیم عنصر را کمی با بزرگنمایی چاپ کنیم،
28
00:01:16,799 –> 00:01:18,270
بنابراین من کمی بزرگنمایی کردم
29
00:01:18,270 –> 00:01:21,210
این را اجرا کنید و یک سری زباله دریافت می کنیم
30
00:01:21,210 –> 00:01:22,920
فقط آن را نادیده بگیرید، اما نکته اصلی
31
00:01:22,920 –> 00:01:25,290
این 5 است که خروجی از این است.
32
00:01:25,290 –> 00:01:27,990
بیانیه چاپ و پس از آن وقتی
33
00:01:27,990 –> 00:01:33,210
داده را چاپ می کنیم متوجه خالی بودن آن می شویم، بنابراین
34
00:01:33,210 –> 00:01:36,180
وقتی روش pop را فراخوانی می کنیم، داده
35
00:01:36,180 –> 00:01:39,869
ها در واقع از آن لیست حذف می شوند
36
00:01:39,869 –> 00:01:42,479
، بنابراین لیست در اینجا ساختار داده است و
37
00:01:42,479 –> 00:01:45,990
ما از آن برای ایجاد یک
38
00:01:45,990 –> 00:01:49,259
پیاده سازی از داده های انتزاعی استفاده می کنیم. نوعی
39
00:01:49,259 –> 00:01:51,450
که به عنوان پشته شناخته می شود، ممکن
40
00:01:51,450 –> 00:01:52,979
است کمی تئوری باشد، اما اساساً
41
00:01:52,979 –> 00:01:57,570
ما از یک لیست به عنوان پشته استفاده می کنیم، بله، لیست
42
00:01:57,570 –> 00:01:59,880
ها عملیات دیگری دارند، به عنوان مثال،
43
00:01:59,880 –> 00:02:02,700
می توانیم به نقطه داده برویم و تقریباً هر چیزی
44
00:02:02,700 –> 00:02:05,729
در این لیست برای ما در دسترس است. استفاده کنید
45
00:02:05,729 –> 00:02:08,639
با این حال ما احتمالاً برای بهترین شیوهها
46
00:02:08,639 –> 00:02:10,550
میخواهیم فقط به چند مورد از این موارد
47
00:02:10,550 –> 00:02:12,610
احتمالاً پاپ محدود کنیم
48
00:02:12,610 –> 00:02:15,910
و احتمالاً اکنون اضافه میکنیم، ممکن است
49
00:02:15,910 –> 00:02:18,250
تعجب کنید که چرا از یک لیست استفاده میکنید و
50
00:02:18,250 –> 00:02:20,740
سپس عملکرد
51
00:02:20,740 –> 00:02:23,410
آن را فقط با استفاده از f محدود میکنید. یکی از روشهایی که
52
00:02:23,410 –> 00:02:26,230
در دسترس ما است، اساساً به
53
00:02:26,230 –> 00:02:29,530
خاطر ماست که اگر به یک پشته اعتماد داریم که به
54
00:02:29,530 –> 00:02:32,620
روش خاصی کار میکند، پس میخواهیم
55
00:02:32,620 –> 00:02:35,080
قوانین یک پشته را رعایت کنیم، اگر
56
00:02:35,080 –> 00:02:37,120
انتظار داریم که یک پشته فقط به ما اجازه دهد
57
00:02:37,120 –> 00:02:38,440
که چیزها را قرار دهیم. بالای پشته و
58
00:02:38,440 –> 00:02:40,270
چیزهایی را از بالای پشته حذف می کنم،
59
00:02:40,270 –> 00:02:43,300
اما بعد وارد اینجا می شوم و می گویم
60
00:02:43,300 –> 00:02:45,790
مقداری ایندکس را وارد کنید و ارسال کنید و مقداری داده را در
61
00:02:45,790 –> 00:02:47,950
اینجا قرار دهید که فقط
62
00:02:47,950 –> 00:02:50,290
یکپارچگی پشته ما را کاملا زیر
63
00:02:50,290 –> 00:02:52,330
سوال می برد، بنابراین احتمالاً بهترین کار این است که
64
00:02:52,330 –> 00:02:54,640
به عملیات اولیه فشار
65
00:02:54,640 –> 00:02:58,590
و پاپ پایبند بمانیم، خداییش کلر چرا همیشه
66
00:02:58,590 –> 00:03:01,900
من را عذاب میدهید، ممکن است
67
00:03:01,900 –> 00:03:03,850
عملیات زیرچشمی را نیز بخواهید که نگاه کردن به
68
00:03:03,850 –> 00:03:05,830
آخرین عنصر است و کاری
69
00:03:05,830 –> 00:03:07,180
که ما میخواهیم انجام دهیم بسیار آسان است. ما فقط
70
00:03:07,180 –> 00:03:09,400
آن داده ها را اضافه می کنیم و چیزی که می خواهیم
71
00:03:09,400 –> 00:03:12,820
چاپ کنیم داده است و برای شاخص فقط
72
00:03:12,820 –> 00:03:16,900
طول داده را بگویید و سپس یک را کم کنید
73
00:03:16,900 –> 00:03:19,150
تا طول داده
74
00:03:19,150 –> 00:03:22,239
همیشه یک بالاتر از بالاترین شاخص باشد
75
00:03:22,239 –> 00:03:25,120
تا نگاه کنید. در بالای پشته فقط
76
00:03:25,120 –> 00:03:27,519
باید به آن نگاه کنید آخرین عنصر
77
00:03:27,519 –> 00:03:30,400
که این را اجرا میکند و ما پنج میگیریم، اما توجه داشته باشید
78
00:03:30,400 –> 00:03:33,489
که پس از این، اگر دادهها را چاپ کنیم،
79
00:03:33,489 –> 00:03:37,180
همچنان پنج عدد در داخل آن خواهد بود،
80
00:03:37,180 –> 00:03:38,680
بنابراین در واقع آن را از
81
00:03:38,680 –> 00:03:40,900
پشته خارج نکردیم، اکنون اگر میخواهید به آن نگاه کردیم.
82
00:03:40,900 –> 00:03:42,220
کمی بیشتر
83
00:03:42,220 –> 00:03:43,900
در مورد نحوه کار یک پشته تجسم کنید و ممکن است
84
00:03:43,900 –> 00:03:46,420
به انجام چند عملیات کمک کند، پس بیایید ادامه دهیم
85
00:03:46,420 –> 00:03:49,090
و بگوییم داده اضافه می شود و 10 را انجام می دهیم
86
00:03:49,090 –> 00:03:55,150
و سپس نقطه داده اضافه می کنیم لغو 15
87
00:03:55,150 –> 00:04:01,030
نقطه داده اضافه می کنیم 20 و سپس داده نقطه پاپ داده را انجام می دهیم.
88
00:04:01,030 –> 00:04:04,930
آیا میتوانید پیشبینی
89
00:04:04,930 –> 00:04:07,120
کنید که وقتی میگویم دادهها را
90
00:04:07,120 –> 00:04:09,820
به خوبی چاپ کنید تا بفهمیم چگونه کار میکند، لیست چگونه خواهد بود،
91
00:04:09,820 –> 00:04:12,130
پنج را اضافه میکنیم و به خاطر داشته باشید که این
92
00:04:12,130 –> 00:04:15,130
عدد سمت چپترین عدد خواهد بود، بنابراین وقتی
93
00:04:15,130 –> 00:04:17,228
عدد دیگری را اضافه میکنیم نشان داده میشود. در
94
00:04:17,228 –> 00:04:20,560
سمت راست 5، بنابراین ما 5 کاما 10
95
00:04:20,560 –> 00:04:25,120
کاما 15 کاما 20 خواهیم داشت و سپس وقتی
96
00:04:25,120 –> 00:04:25,870
97
00:04:25,870 –> 00:04:27,669
دو عنصر بعدی را حذف کردیم، بدترین حالت را از شر آن
98
00:04:27,669 –> 00:04:30,130
20 خلاص می کنیم و سپس از شر آن 15 خلاص می شویم، بنابراین
99
00:04:30,130 –> 00:04:32,530
فقط با 5 کاما 10 می مانیم. ما
100
00:04:32,530 –> 00:04:34,900
این را اجرا می کنیم و این دقیقاً همان چیزی است که به دست می آوریم،
101
00:04:34,900 –> 00:04:36,790
بنابراین یک پشته چگونه کار می کند اکنون بیایید آن را بررسی کنیم
102
00:04:36,790 –> 00:04:39,780
و نگاهی به EQ داشته باشید،
103
00:04:41,910 –> 00:04:44,100
بنابراین اگر میخواهید
104
00:04:44,100 –> 00:04:47,820
به استفاده از یک لیست به عنوان ساختار داده
105
00:04:47,820 –> 00:04:49,800
انتخابی برای پیادهسازی یک صف ادامه دهید
106
00:04:49,800 –> 00:04:52,560
، تنها تفاوت اینجاست، تنها تفاوت در اینجا این است که به
107
00:04:52,560 –> 00:04:55,200
جای استفاده از پاپ بدون هیچ آرگومانهایی که در
108
00:04:55,200 –> 00:04:58,410
واقع میخواهید در یک صفحه ارسال کنید. صفر و در
109
00:04:58,410 –> 00:05:00,180
این مورد ما تقریباً
110
00:05:00,180 –> 00:05:02,700
سمت چپ لیست را در نظر می گیریم، بنابراین اگر به
111
00:05:02,700 –> 00:05:04,290
پایین اینجا در پایین نگاه کنید، سمت چپ
112
00:05:04,290 –> 00:05:06,930
جلوی صف خواهد بود، بنابراین
113
00:05:06,930 –> 00:05:09,150
وقتی ایندکس 0 را باز می کنیم، در واقع
114
00:05:09,150 –> 00:05:12,750
سمت چپ را حذف می کنیم. عنصر، بنابراین اکنون
115
00:05:12,750 –> 00:05:14,190
کاری که قرار است انجام دهد این است
116
00:05:14,190 –> 00:05:16,650
که 5 اضافه می کند، سپس در
117
00:05:16,650 –> 00:05:18,780
پشت آن 10 اضافه می کند که 15 اضافه می کند
118
00:05:18,780 –> 00:05:20,220
و بعد از آن، 20 اضافه می کند
119
00:05:20,220 –> 00:05:23,430
وقتی اولین عنصر را باز می
120
00:05:23,430 –> 00:05:24,600
کنیم که چه کاری انجام می دهد. آیا قرار است 5 حذف شود
121
00:05:24,600 –> 00:05:27,630
و سپس این پاپ بعدی
122
00:05:27,630 –> 00:05:30,870
10 را حذف می کند، بنابراین ما باید با 15
123
00:05:30,870 –> 00:05:34,020
کاما 20 باقی بمانیم، این را اجرا می کنیم و این دقیقاً همان
124
00:05:34,020 –> 00:05:35,760
چیزی است که به دست می آوریم و مثل همیشه این
125
00:05:35,760 –> 00:05:38,280
بازگردانده می شود، بنابراین اگر می خواستیم می توانیم
126
00:05:38,280 –> 00:05:40,470
آن را به یک اختصاص دهیم. متغیر و سپس آن را بعداً
127
00:05:40,470 –> 00:05:43,440
در کد ما به عنوان مثال استفاده کنیم ما فقط
128
00:05:43,440 –> 00:05:47,640
عنصر را چاپ می کنیم و این را اجرا می
129
00:05:47,640 –> 00:05:49,530
کنیم، مقدار 10 را در آنجا می گیریم، بنابراین این همان چیزی است
130
00:05:49,530 –> 00:05:51,570
که در همان جا ظاهر شده است، نام گذاری
131
00:05:51,570 –> 00:05:53,430
در اینجا کمی بد است، اما اگر می
132
00:05:53,430 –> 00:05:55,920
خواهید اساساً این نام ها را
133
00:05:55,920 –> 00:05:58,919
با عملیات یک داده انتزاعی صف مرتبط کنید
134
00:05:58,919 –> 00:06:02,730
تایپ کنید append قرار است در
135
00:06:02,730 –> 00:06:05,550
صف قرار گیرد و
136
00:06:05,550 –> 00:06:08,880
اگر می خواهید توانایی انجام
137
00:06:08,880 –> 00:06:11,340
عملیات پیک یا نگاه کردن به
138
00:06:11,340 –> 00:06:13,440
عنصری که قرار است DQ شود، این پاپ پایین DQ خواهد بود،
139
00:06:13,440 –> 00:06:15,419
در واقع همه چیزهایی که باید انجام دهید بسیار ساده است
140
00:06:15,419 –> 00:06:21,000
do این است که بگوییم شاخص داده 0 و این
141
00:06:21,000 –> 00:06:23,160
به سمت چپ ترین عنصر در این
142
00:06:23,160 –> 00:06:25,530
مورد 15 نگاه می کند، بنابراین وقتی این را اجرا می کنیم
143
00:06:25,530 –> 00:06:27,300
مقدار 15 را دریافت می کنیم اما در واقع
144
00:06:27,300 –> 00:06:30,780
آن را از صف حذف نمی کند، بنابراین این
145
00:06:30,780 –> 00:06:32,700
کار را با این کار انجام می دهید. یک لیست اما
146
00:06:32,700 –> 00:06:34,710
نکته منفی در اینجا این است که هر بار که
147
00:06:34,710 –> 00:06:36,600
یک عنصر را بیرون می آوریم، همه عناصر دیگر
148
00:06:36,600 –> 00:06:38,220
در لیست ها باید روی یک
149
00:06:38,220 –> 00:06:40,980
شاخص قرار بگیرند که
150
00:06:40,980 –> 00:06:43,320
اگر می خواهید یک
151
00:06:43,320 –> 00:06:45,419
لیست بسیار بزرگ داشته باشید روش دیگری برای فکر کردن در مورد آن یک عملیات زمان بر است.
152
00:06:45,419 –> 00:06:48,300
آیا این یک عملیات است که o از
153
00:06:48,300 –> 00:06:50,340
بنابراین بستگی به اندازه لیست
154
00:06:50,340 –> 00:06:51,479
دارد تا حد زیادی باید کل لیست
155
00:06:51,479 –> 00:06:53,689
را مرور کنیم و همه عناصر را به سمت بالا منتقل
156
00:06:53,689 –> 00:06:55,489
کنیم، ما می خواهیم در صورت امکان از آن جلوگیری کنیم،
157
00:06:55,489 –> 00:06:57,049
بنابراین در واقع گزینه دیگری وجود دارد که می توانیم
158
00:06:57,049 –> 00:06:59,209
از آن استفاده کنیم و آن نیاز به
159
00:06:59,209 –> 00:06:59,839
واردات دارد،
160
00:06:59,839 –> 00:07:00,919
بنابراین ما در اینجا خواهیم رفت. برای انجام این کار،
161
00:07:00,919 –> 00:07:03,169
ترمینال خود را پاک میکنیم و
162
00:07:03,169 –> 00:07:06,110
ابزاری را وارد میکنیم که
163
00:07:06,110 –> 00:07:09,369
میتوانیم از آن استفاده کنیم به نام deck،
164
00:07:11,580 –> 00:07:16,740
بنابراین از مجموعههای import deck
165
00:07:16,740 –> 00:07:19,590
در ویدیوی قبلی برای گفتن یک DQ تماس
166
00:07:19,590 –> 00:07:21,419
گرفتم، اما هر چه که من زیبا هستم. مطمئن باشید که
167
00:07:21,419 –> 00:07:25,110
یک عرشه تلفظ میشود و برای ایجاد یک عرشه، کاری که میتوانیم
168
00:07:25,110 –> 00:07:30,530
انجام دهیم این است که میتوانیم بگوییم داده یک عرشه و پرانتز جدید است
169
00:07:30,530 –> 00:07:33,180
و روشی که داد