در این مطلب، ویدئو پشته – آموزش ساختارهای داده و الگوریتم ها در پایتون شماره 7 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:05
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,740
ما
2
00:00:01,740 –> 00:00:04,170
امروز یک ساختار داده بسیار مهم به نام پشته را بررسی خواهیم کرد در
3
00:00:04,170 –> 00:00:06,509
اینجا لیستی از موضوعات وجود دارد که طبق معمول ابتدا به بررسی
4
00:00:06,509 –> 00:00:08,639
برخی از تئوری ها می پردازیم سپس
5
00:00:08,639 –> 00:00:10,920
stack را در پایتون پیاده سازی می کنیم و در پایان
6
00:00:10,920 –> 00:00:13,799
تمرین های بسیار مهمی برای شما داریم که
7
00:00:13,799 –> 00:00:15,839
ابتدا می خواهم حل کنید. برای نشان دادن یک
8
00:00:15,839 –> 00:00:18,090
مورد استفاده که ما از ساختار داده پشته استفاده
9
00:00:18,090 –> 00:00:21,330
می کنیم می تواند مفید باشد. من در این وب سایت هستم
10
00:00:21,330 –> 00:00:23,760
و در این وب سایت می توانم
11
00:00:23,760 –> 00:00:27,570
در صفحات مختلف جستجو کنم، فرض کنید من اخبار اخبار جهانی را می خوانم،
12
00:00:27,570 –> 00:00:31,380
سپس می خواهم
13
00:00:31,380 –> 00:00:34,290
اخباری را در هند بخوانم. من میخواهم
14
00:00:34,290 –> 00:00:37,469
اخبار را در چین بخوانم، وقتی همه
15
00:00:37,469 –> 00:00:39,600
این صفحات را مرور میکنم، مرورگر
16
00:00:39,600 –> 00:00:41,820
تاریخچه آن را نگه میدارد و وقتی دکمه بازگشت
17
00:00:41,820 –> 00:00:44,370
را فشار میدهم آخرین صفحهای را
18
00:00:44,370 –> 00:00:46,399
که بازدید کردهام به من نشان میدهد ببینید
19
00:00:46,399 –> 00:00:49,350
قبل از بازدید از صفحه جهانی و قبل از آن از هند بازدید کردم.
20
00:00:49,350 –> 00:00:52,379
که من در یک صفحه اصلی بودم، بنابراین فقط
21
00:00:52,379 –> 00:00:54,329
تصور کنید اگر یک توسعه دهنده مرورگر هستید
22
00:00:54,329 –> 00:00:56,340
چگونه این تاریخچه
23
00:00:56,340 –> 00:00:58,350
را از نظر ساختار داده مدیریت می کنید، این یک
24
00:00:58,350 –> 00:01:00,809
نمایش تصویری از پیوندهایی است که من
25
00:01:00,809 –> 00:01:03,000
به این ترتیب بازدید کردم و وقتی
26
00:01:03,000 –> 00:01:06,960
روی دکمه برگشت کلیک می کنم واقعاً من به
27
00:01:06,960 –> 00:01:09,330
آخرین صفحه ای که از آن بازدید کردم می روم بسیار خوب، بنابراین
28
00:01:09,330 –> 00:01:12,750
اکنون این پیوندها را به ترتیب به عقب طی
29
00:01:12,750 –> 00:01:15,810
می کنم یکی از گزینه هایی که دارم این است که می توانم از
30
00:01:15,810 –> 00:01:19,409
یک آرایه برای ذخیره همه این پیوندها
31
00:01:19,409 –> 00:01:21,630
استفاده کنم و هر زمان که بخواهم آخرین
32
00:01:21,630 –> 00:01:24,270
عنصر را دریافت کنم باید بروم. تا انتهای
33
00:01:24,270 –> 00:01:26,880
آرایه و پاپ آن عنصر به بیرون
34
00:01:26,880 –> 00:01:28,619
گزینه دیگری است که البته می توانید از لیست های پیوندی استفاده کنید
35
00:01:28,619 –> 00:01:31,110
اما مشکل این دو
36
00:01:31,110 –> 00:01:32,970
ساختار داده این است که برای مثال اگر
37
00:01:32,970 –> 00:01:35,130
از لیست های پیوندی استفاده می کنید باید
38
00:01:35,130 –> 00:01:37,560
لیست پیوندی را طی کنید تا به پایان و
39
00:01:37,560 –> 00:01:41,070
آن پایان آخرین پیوندی را
40
00:01:41,070 –> 00:01:43,020
که بازدید کرده اید به شما می دهد، بنابراین هر بار
41
00:01:43,020 –> 00:01:45,540
که دستور عملیاتی را به طور مشابه
42
00:01:45,540 –> 00:01:48,600
با آرایه انجام می دهید، مشکل این است که باید
43
00:01:48,600 –> 00:01:50,490
از آرایه پویا استفاده کنید زیرا نمی
44
00:01:50,490 –> 00:01:51,899
توانید از آرایه ایستا استفاده کنید زیرا می تواند فقط
45
00:01:51,899 –> 00:01:54,030
ادامه داشته باشد. همچنین با رشد آرایه پویا
46
00:01:54,030 –> 00:01:55,729
، مسائلی مانند
47
00:01:55,729 –> 00:01:58,920
جابجایی حافظه و کپی کردن عناصر و غیره وجود دارد
48
00:01:58,920 –> 00:02:01,409
در این شرایط تصور کنید که شما یک
49
00:02:01,409 –> 00:02:04,710
ساختار داده مانند این دارید که در آن به محض
50
00:02:04,710 –> 00:02:07,799
بازدید از یک پیوند، همچنان
51
00:02:07,799 –> 00:02:10,348
عناصر را به آن ساختار داده خاص فشار می دهید.
52
00:02:10,348 –> 00:02:13,630
پس از
53
00:02:13,630 –> 00:02:17,020
کلیک بر روی دکمه بازگشت،
54
00:02:17,020 –> 00:02:19,660
آخرین عنصری را که فشار داده اید بازیابی می کنید، بنابراین
55
00:02:19,660 –> 00:02:21,490
عملیات فشار وجود دارد و
56
00:02:21,490 –> 00:02:25,510
عملیات پاپ آخرین عنصر را بیرون می زند،
57
00:02:25,510 –> 00:02:29,440
بنابراین در اینجا شما آخرین عملیات اولین خروجی را
58
00:02:29,440 –> 00:02:33,940
انجام می دهید که به عنوان کشنده و این داده نیز شناخته می شود.
59
00:02:33,940 –> 00:02:36,340
ساختار پشته نامیده میشود پشته خوب
60
00:02:36,340 –> 00:02:38,800
، آخرین
61
00:02:38,800 –> 00:02:41,140
ساختار دادهای است که در آن به فشار دادن
62
00:02:41,140 –> 00:02:43,510
عناصر ادامه میدهید و زمانی که میگویید
63
00:02:43,510 –> 00:02:46,060
پاپ آخرین عنصری را که فشار
64
00:02:46,060 –> 00:02:50,980
دادهاید بیرون میآید اگر در آشپزخانه خود پشتهای از ظروف
65
00:02:50,980 –> 00:02:52,720
داشته باشید. با توجه به اینکه
66
00:02:52,720 –> 00:02:55,600
این زمانی است که وقتی میخواهید
67
00:02:55,600 –> 00:02:59,200
ظرف را از پشته جدا
68
00:02:59,200 –> 00:03:01,390
کنید، یک پشته ایجاد میکنید، آخرین ظرفی را
69
00:03:01,390 –> 00:03:03,550
که روی پشته فشار دادهاید برمیدارید بسیار خوب، بنابراین
70
00:03:03,550 –> 00:03:05,350
پشته دقیقاً همان ساختار دادهای است
71
00:03:05,350 –> 00:03:07,930
که عنصر هل دادن و باز کردن آن مرتبه
72
00:03:07,930 –> 00:03:12,130
یک یا است. یک عملیات زمان ثابت اگر
73
00:03:12,130 –> 00:03:14,620
بخواهید عنصری را در پشته
74
00:03:14,620 –> 00:03:18,280
بر اساس مقداری جستجو کنید، مرتبه ای از پیچیدگی بزرگ O خواهد بود،
75
00:03:18,280 –> 00:03:19,960
زیرا باید
76
00:03:19,960 –> 00:03:21,310
از هر یک از عناصر عبور کنید و
77
00:03:21,310 –> 00:03:23,220
باید به آن خاص نگاه کنید.
78
00:03:23,220 –> 00:03:26,830
79
00:03:26,830 –> 00:03:29,020
هنگامی که
80
00:03:29,020 –> 00:03:31,270
شما در حال فراخوانی یک تابع هستید، برخی از موارد استفاده برای پشته در هر زبان برنامه نویسی است و سپس آن
81
00:03:31,270 –> 00:03:33,060
تابع تابع دیگری را فراخوانی می
82
00:03:33,060 –> 00:03:37,300
83
00:03:37,300 –> 00:03:40,180
84
00:03:40,180 –> 00:03:42,220
85
00:03:42,220 –> 00:03:44,440
کند. میگویند مایکروسافت
86
00:03:44,440 –> 00:03:48,640
پینت یا ورد یا مایکروسافت اکسل دارید،
87
00:03:48,640 –> 00:03:50,950
آنها این قابلیت واگرد را دارند، بنابراین
88
00:03:50,950 –> 00:03:52,630
عملکرد لغو آخرین عملیات را خنثی میکند،
89
00:03:52,630 –> 00:03:55,360
همچنین از
90
00:03:55,360 –> 00:03:58,900
پشتهای که ذکر کردم استفاده میکنند که کامپایلر یا
91
00:03:58,900 –> 00:04:00,970
زبان برنامهنویسی از پشته و زیر آن استفاده میکند،
92
00:04:00,970 –> 00:04:03,100
بنابراین در اینجا میخواهم یک مثال را به شما نشان دهم.
93
00:04:03,100 –> 00:04:05,860
جایی که ببینید در این کد من
94
00:04:05,860 –> 00:04:07,480
این تابع را به نام مقادیر درج صدا میزنم
95
00:04:07,480 –> 00:04:10,360
و تابع مقدار درج
96
00:04:10,360 –> 00:04:12,850
در نهایت insert را در پایان فراخوانی میکند، بنابراین
97
00:04:12,850 –> 00:04:16,120
وقتی نقطه شکست را در اینجا قرار میدهم، میبیند
98
00:04:16,120 –> 00:04:19,959
که در اینجا متوقف میشود اما فراخوانی برای
99
00:04:19,959 –> 00:04:23,380
درج در n از مقادیر درج شده است و
100
00:04:23,380 –> 00:04:26,140
مقادیر درج از این تابع اصلی آمده
101
00:04:26,140 –> 00:04:27,310
است، بنابراین
102
00:04:27,310 –> 00:04:28,810
این چیز خاصی که در اینجا مشاهده می
103
00:04:28,810 –> 00:04:31,060
کنید، اساساً تابع پشته نامیده می شود.
104
00:04:31,060 –> 00:04:33,520
یکی یکی آن را صدا
105
00:04:33,520 –> 00:04:36,310
می زند شما می توانید f10 را انجام دهید یا فقط این
106
00:04:36,310 –> 00:04:38,500
دکمه را فشار دهید و متوجه خواهید شد که
107
00:04:38,500 –> 00:04:40,510
برمی گردد ببینید اکنون من دو عملکرد
108
00:04:40,510 –> 00:04:42,850
دارم بنابراین فقط به آخرین عملکردی
109
00:04:42,850 –> 00:04:44,740
که شما فراخوانی می کنید می رود بنابراین این مثال استانداردی است
110
00:04:44,740 –> 00:04:48,490
که چگونه stack را می توان در
111
00:04:48,490 –> 00:04:51,010
زبان های برنامه نویسی برای مدیریت
112
00:04:51,010 –> 00:04:53,020
فراخوانی های تابع استفاده کرد در اینجا
113
00:04:53,020 –> 00:04:54,820
پیاده سازی پشته در
114
00:04:54,820 –> 00:04:58,150
زبان های برنامه نویسی مختلف Python در پایتون می
115
00:04:58,150 –> 00:05:00,669
توانید پشته را با استفاده از مجموعه لیست یا
116
00:05:00,669 –> 00:05:03,400
DQ یا leaf
117
00:05:03,400 –> 00:05:06,639
oq پیاده سازی کنید
118
00:05:06,639 –> 00:05:08,380
. من به شما نشان خواهم داد که چگونه
119
00:05:08,380 –> 00:05:10,690
120
00:05:10,690 –> 00:05:14,020
با استفاده از یک لیست در پایتون، عملکرد بازگشت سابقه مرورگر را مدیریت کنید،
121
00:05:14,020 –> 00:05:17,620
بنابراین لیست پایتون می تواند به عنوان پشته
122
00:05:17,620 –> 00:05:20,260
در اینجا
123
00:05:20,260 –> 00:05:22,690
124
00:05:22,690 –> 00:05:24,490
125
00:05:24,490 –> 00:05:27,400
استفاده شود. -enter لیست را ایجاد می کند
126
00:05:27,400 –> 00:05:29,710
و همه این پیوندها را اضافه می کند اکنون وقتی
127
00:05:29,710 –> 00:05:33,580
می خواهید آخرین چیزی را که
128
00:05:33,580 –> 00:05:36,450
اضافه کرده اید دریافت کنید، می توانید تابع pop را فراخوانی کنید و
129
00:05:36,450 –> 00:05:40,390
pop آخرین پیوندی را که بازدید کرده اید به شما می دهد
130
00:05:40,390 –> 00:05:42,850
. s cnn.com چین را بریده بریده می کند
131
00:05:42,850 –> 00:05:46,750
و حالا وقتی به s نگاه می کنم
132
00:05:46,750 –> 00:05:49,510
فقط سه چیز دارد که می بینید و
133
00:05:49,510 –> 00:05:54,520
سپس می توانید دوباره پاپ را صدا بزنید تا به شما این امکان را بدهد که
134
00:05:54,520 –> 00:06:03,010
دوباره هند پاپ کنید جهان خوب و سپس
135
00:06:03,010 –> 00:06:07,120
دوباره pop دوباره cnn.com
136
00:06:07,120 –> 00:06:09,190
و وقتی پاپ پس از آن انجام دهید. می
137
00:06:09,190 –> 00:06:12,220
گوید که شما نمی توانید از یک
138
00:06:12,220 –> 00:06:15,760
لیست خالی بیرون بیایید بنابراین عملیات pop در پشته
139
00:06:15,760 –> 00:06