در این مطلب، ویدئو صف – آموزش ساختارهای داده و الگوریتم ها در پایتون شماره 8 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:14:19
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,530
ما قصد داریم در این آموزش ساختار داده های صف را مورد بحث قرار
2
00:00:01,530 –> 00:00:03,720
دهیم و در
3
00:00:03,720 –> 00:00:05,520
اینجا لیستی از موضوعات به همراه خط زمانی آنها آمده است،
4
00:00:05,520 –> 00:00:07,410
بنابراین اگر می خواهید جلوتر بروید،
5
00:00:07,410 –> 00:00:09,900
ممکن است از پورتال هایی مانند
6
00:00:09,900 –> 00:00:12,960
yahoo finance یا money control.com یا برای
7
00:00:12,960 –> 00:00:15,030
ردیابی استفاده کرده باشید. قیمت سهام در حال حاضر، روشی که
8
00:00:15,030 –> 00:00:18,539
این پورتال ها قیمت سهام را دریافت می کنند، از
9
00:00:18,539 –> 00:00:21,449
بورس هایی مانند بورس نیویورک است
10
00:00:21,449 –> 00:00:23,460
و اگر به معماری فنی نگاه کنید،
11
00:00:23,460 –> 00:00:25,920
تیم مهندسی
12
00:00:25,920 –> 00:00:27,810
که در بورس نیویورک نشسته اند،
13
00:00:27,810 –> 00:00:30,990
قیمت ها
14
00:00:30,990 –> 00:00:32,640
را عرضه می کنند، فرض کنید این قیمت ها است. برای یک
15
00:00:32,640 –> 00:00:36,420
سهام والمارت در ساعت 11 یک
16
00:00:36,420 –> 00:00:40,230
دقیقه قیمت 131 بود و سپس در دقیقه 2
17
00:00:40,230 –> 00:00:44,070
قیمت 132 امتیاز بود خوب آنها
18
00:00:44,070 –> 00:00:47,700
این قیمت ها را به طور مداوم به پورتالی مانند
19
00:00:47,700 –> 00:00:50,700
Yahoo Finance ارائه می دهند و
20
00:00:50,700 –> 00:00:53,969
نمودارها و اطلاعات مختلفی را نمایش می دهند که اکنون
21
00:00:53,969 –> 00:00:56,280
به عمق معماری فنی می رود. یکی از
22
00:00:56,280 –> 00:00:59,399
راههای حل این مشکل این است که
23
00:00:59,399 –> 00:01:02,210
تیم مهندسی Yahoo Finance
24
00:01:02,210 –> 00:01:06,270
یک سرور HTTP ایجاد کند که میتواند
25
00:01:06,270 –> 00:01:09,600
درخواست HTTP POST را که از New
26
00:01:09,600 –> 00:01:11,850
Yo ارسال میشود بپذیرد. rk بورس اوراق بهادار، بنابراین تیم مهندسی
27
00:01:11,850 –> 00:01:16,770
که اینجا در NY SC نشسته است،
28
00:01:16,770 –> 00:01:20,310
تماس های HTTP POST را همراه با این اشیاء JSON انجام
29
00:01:20,310 –> 00:01:20,970
دهد،
30
00:01:20,970 –> 00:01:24,000
این می تواند یک معماری باشد و
31
00:01:24,000 –> 00:01:26,009
به این ترتیب کار می کند که می توانید
32
00:01:26,009 –> 00:01:29,970
قیمت سهام را به طرف دیگر عرضه کنید، اما چند مشکل وجود دارد.
33
00:01:29,970 –> 00:01:31,590
با این
34
00:01:31,590 –> 00:01:34,890
معماری اولین مشکل این است که
35
00:01:34,890 –> 00:01:38,280
اگر سرور HTTP انجام شود در این صورت
36
00:01:38,280 –> 00:01:40,020
این افراد تماس می گیرند
37
00:01:40,020 –> 00:01:44,430
و منجر به از دست دادن دو پیام می شود
38
00:01:44,430 –> 00:01:47,970
بنابراین قیمت ها در بازه زمانی
39
00:01:47,970 –> 00:01:51,659
که سرور HTTP از کار افتاده است از بین می رود.
40
00:01:51,659 –> 00:01:55,020
همه این قیمت ها از بین می رود و برای
41
00:01:55,020 –> 00:01:57,090
Yahoo Finance فرض کنید بعد از 5
42
00:01:57,090 –> 00:02:00,600
دقیقه سرور دوباره بالا می آید،
43
00:02:00,600 –> 00:02:03,119
راهی برای بازیابی آن قیمت های قدیمی وجود ندارد
44
00:02:03,119 –> 00:02:06,380
زیرا آنها این تماس های همزمان را انجام داده اند
45
00:02:06,380 –> 00:02:10,110
که بچه های Yahoo Finance نمی توانند
46
00:02:10,110 –> 00:02:12,000
پردازش کنند زیرا آن سرور از کار افتاده بود و
47
00:02:12,000 –> 00:02:13,830
اکنون اگر Google Finance بخواهد همان فید قیمت را دریافت کند، همه آن اطلاعات را از دست دادید،
48
00:02:13,830 –> 00:02:16,850
مشکل دیگر فردا است،
49
00:02:16,850 –> 00:02:19,740
50
00:02:19,740 –> 00:02:23,130
تیم مهندسی در
51
00:02:23,130 –> 00:02:27,080
& ysc باید کد خود را تغییر دهند و
52
00:02:27,080 –> 00:02:31,140
از Google استفاده کنند. آدرس اینترنتی برای ارائه
53
00:02:31,140 –> 00:02:34,350
قیمتها به این معماری بهطور محکم جفتشده نامیده میشود
54
00:02:34,350 –> 00:02:37,500
و مشکلات زیادی دارد،
55
00:02:37,500 –> 00:02:40,080
مثلاً هر بار که میخواهید روی
56
00:02:40,080 –> 00:02:42,300
یک مصرفکننده جدید وارد شوید، باید کد را
57
00:02:42,300 –> 00:02:46,290
تغییر دهید و اگر سیستم بهطور محکم
58
00:02:46,290 –> 00:02:48,330
جفت شده است، فرض کنید اگر تغییری وجود داشته باشد.
59
00:02:48,330 –> 00:02:51,540
در سمت مصرف کننده، سپس
60
00:02:51,540 –> 00:02:54,150
تولیدکننده نیز باید تغییر کند و این یک
61
00:02:54,150 –> 00:02:56,220
زیرساخت بد است، فقط
62
00:02:56,220 –> 00:03:01,140
مشکلات زیادی وجود دارد که اگر شما یک
63
00:03:01,140 –> 00:03:05,550
بافر حافظه مانند این داشته باشید که در آن NYSC می
64
00:03:05,550 –> 00:03:08,250
تواند قیمت ها را یکی یکی قرار دهد، بنابراین در ساعت 11
65
00:03:08,250 –> 00:03:11,570
یک بار. دقیقه ای که این قیمت را روی 2
66
00:03:11,570 –> 00:03:14,430
دقیقه گذاشتند، این قیمت را گذاشتند و فقط
67
00:03:14,430 –> 00:03:17,459
به این قیمت ها فشار می دهند و از
68
00:03:17,459 –> 00:03:19,890
طرف دیگر یاهو فاینانس یا گوگل
69
00:03:19,890 –> 00:03:23,310
فایننس می توانند این قیمت ها را
70
00:03:23,310 –> 00:03:26,370
به ترتیبی که به آنها فشار داده شده بود دریافت کنند، اکنون
71
00:03:26,370 –> 00:03:29,790
راه هایی وجود دارد که قبلا Yahoo Finance
72
00:03:29,790 –> 00:03:32,610
این قیمت خاص را مصرف میکند، شما میدانید که
73
00:03:32,610 –> 00:03:34,769
نشانگر آنها به اینجا حرکت میکند، به طوری که
74
00:03:34,769 –> 00:03:37,170
Google Finance همچنان میتواند این قیمت
75
00:03:37,170 –> 00:03:39,269
را مصرف کند، اینطور نیست که وقتی Yahoo Finance
76
00:03:39,269 –> 00:03:41,130
این قیمت را مصرف کرد Google Finance
77
00:03:41,130 –> 00:03:43,440
نمیتواند آن را مصرف کند. یک
78
00:03:43,440 –> 00:03:45,360
اشاره گر متفاوت داشته باشید،
79
00:03:45,360 –> 00:03:47,880
بنابراین نگران نباشید، اما این
80
00:03:47,880 –> 00:03:50,760
ساختار داده ای که در اینجا استفاده کردیم Q و Q نامیده می شود، به
81
00:03:50,760 –> 00:03:55,650
شما امکان می دهد اتصال شل ایجاد کنید
82
00:03:55,650 –> 00:03:57,450
تا زمانی که یک
83
00:03:57,450 –> 00:03:59,820
جفت سست بین این سیستم ها وجود داشته باشد فردا
84
00:03:59,820 –> 00:04:03,390
کنترل پول کمتر مطمئنی وجود دارد. اوراق قرضه .com برای استفاده از
85
00:04:03,390 –> 00:04:06,720
این قیمتها و ysc نیازی به ایجاد
86
00:04:06,720 –> 00:04:09,420
هیچ تغییری ندارد، در واقع آنها فقط میتوانند
87
00:04:09,420 –> 00:04:11,850
قیمتها را به همان بافر حافظه فشار دهند
88
00:04:11,850 –> 00:04:14,910
و کنترل پول فقط میتواند
89
00:04:14,910 –> 00:04:18,380
آن را مصرف کند، بنابراین این یک زیرساخت بسیار انعطافپذیر
90
00:04:18,380 –> 00:04:21,060
با حداقل میزان
91
00:04:21,060 –> 00:04:23,850
انتشار است. به این مشکل، مشکل مصرف کننده تولیدکننده نیز گفته می شود
92
00:04:23,850 –> 00:04:26,370
که در آن یک
93
00:04:26,370 –> 00:04:27,480
نهاد با
94
00:04:27,480 –> 00:04:30,360
انجام برخی اطلاعات تولید می کند و یک
95
00:04:30,360 –> 00:04:33,930
نهاد دیگر اطلاعات
96
00:04:33,930 –> 00:04:37,020
تولید شده توسط یک تولید کننده را مصرف می کند به گونه ای
97
00:04:37,020 –> 00:04:39,630
که در اینجا به طور محکم جفت نشده اند،
98
00:04:39,630 –> 00:04:42,420
هر چیزی که ابتدا در بافر فشار داده
99
00:04:42,420 –> 00:04:45,090
می شود، ابتدا مصرف می شود، بنابراین نامیده می شود.
100
00:04:45,090 –> 00:04:48,090
FIFO یا اولین در اولین خروجی
101
00:04:48,090 –> 00:04:51,440
ساختار داده اگر به خاطر دارید از آخرین
102
00:04:51,440 –> 00:04:55,140
ساختار داده پشته ما آخرین ورودی
103
00:04:55,140 –> 00:04:59,250
اولین خروجی بود در مقابل شما اولین ورودی اول
104
00:04:59,250 –> 00:05:02,070
بود و شما باید قبلاً در
105
00:05:02,070 –> 00:05:03,810
زندگی واقعی متوجه شما شدهام، فرض کنید اگر در
106
00:05:03,810 –> 00:05:06,390
سالن سینما هستید و بلیط میخرید، هر کسی
107
00:05:06,390 –> 00:05:09,660
که اول ایستاده باشد، اولین نوبت را میگیرد،
108
00:05:09,660 –> 00:05:12,480
بنابراین مثل این است که اولین بار در ابتدا،
109
00:05:12,480 –> 00:05:15,000
این قطعه کد در
110
00:05:15,000 –> 00:05:18,420
زبانهای برنامهنویسی مختلف برای cue به
111
00:05:18,420 –> 00:05:21,090
همراه کلاسهای نشانه هستند. به عنوان مثال جاوا از
112
00:05:21,090 –> 00:05:23,850
لیست های پیوندی به عنوان یک پیاده سازی نشانه استفاده می کند، بنابراین
113
00:05:23,850 –> 00:05:25,500
این یک اشتباه تایپی نیست، بلکه در واقع از
114
00:05:25,500 –> 00:05:28,530
لیست های پیوندی به عنوان پیاده سازی برای Q استفاده می کند،
115
00:05:28,530 –> 00:05:30,270
بنابراین Q یک رابط است
116
00:05:30,270 –> 00:05:32,250
که توسط ساختار داده لیست پیوندی پیاده سازی شده
117
00:05:32,250 –> 00:05:35,250
است در اینجا مشاهده می کنید که
118
00:05:35,250 –> 00:05:37,290
Phi و 89 را اضافه می کنید و زمانی که شما می گویید
119
00:05:37,290 –> 00:05:39,300
حذف کنید یا Phi را
120
00:05:39,300 –> 00:05:41,460
به طور مشابه در پایتون برمی گردانید، می توانید از یکی از
121
00:05:41,460 –> 00:05:44,820
این سه رویکرد برای پیاده سازی Q استفاده کنید،
122
00:05:44,820 –> 00:05:48,420
اکنون خواهیم دید که چگونه از Q در پایتون
123
00:05:48,420 –> 00:05:51,510
استفاده کنیم، می توانید از لیست ها به عنوان صف در پایتون استفاده
124
00:05:51,510 –> 00:05:53,550
کنید در اینجا من یک لیست به نام Walmart ایجاد کرده ام.
125
00:05:53,550 –> 00:05:56,100
صف قیمت سهام و هر زمان
126
00:05:56,100 –> 00:05:58,410
که می خواهید عنصری را در
127
00:05:58,410 –> 00:06:00,930
صف وارد کنید، می توانید از این عملیات درج استفاده
128
00:06:00,930 –> 00:06:02,910
کنید که همیشه در
129
00:06:02,910 –> 00:06:05,640
موقعیت 0 قرار می دهید، بنابراین اولین قیمتی که
130
00:06:05,640 –> 00:06:09,260
داشتید این بود و قیمت دومی
131
00:06:09,260 –> 00:06:16,740
که داشتید این بود، فرض کنید و اجازه دهید
132
00:06:16,740 –> 00:06:20,670
هر
133
00:06:20,670 –> 00:06:23,400
بار که عنصری را در موقعیت 0 وارد می کنم، یک تماس قیمت دیگر را وارد کنم 1:35،
134
00:06:23,400 –> 00:06:27,360
135
00:06:27,360 –> 00:06:32,610
وقتی این کار را انجام می دهید و وقتی
136
00:06:32,610 –> 00:06:38,010
من به صف خود نگاه می کنم، عناصر باقی مانده به جلو رانده می شوند، خوب است. صف
137
00:06:38,010 –> 00:06:40,030
به این شکل خواهد بود،
138
00:06:40,030 –> 00:06:44,470
بنابراین می بینید که شما ابتدا 131 را وارد کرده اید، بنابراین 131
139
00:06:44,470 –> 00:06:47,920
اینجاست، سپس صد 3235 اکنون وقتی شما
140
00:06:47,920 –> 00:06:51,100
pop را انجام می دهید، Q اولین است که اولین خروجی است
141
00:06:51,100 –> 00:06:54,430
ساختار داده آخرین است که اولین خروجی است، بنابراین
142
00:06:54,430 –> 00:06:57,850
وقتی من pop را انجام می دهم فقط به من می گویم ش