1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [قطار] 2 00:00:02,000 --> 00:00:05,000 [کرس Gerber، ہارورڈ یونیورسٹی] 3 00:00:05,000 --> 00:00:07,000 یہ CS50 ہے، CS50.TV] 4 00:00:07,000 --> 00:00:11,000 عناصر میں سے ایک کا حکم دیا مجموعہ کو ذخیرہ کرنے کے لئے ایک مفید آنکڑا ڈھانچہ ایک قطار ہے. 5 00:00:11,000 --> 00:00:14,000 استعمال کیا جاتا ہے جب عناصر کو ہٹا دیا جائے گا کی ضرورت ہے 6 00:00:14,000 --> 00:00:16,000 اسی ترتیب میں انہیں شامل کیا گیا ہے. 7 00:00:16,000 --> 00:00:20,000 اس تصور FIFO، جس میں میں، سب سے پہلے باہر پہلی کے لئے مخفف ہے کے طور پر کہا جاتا ہے. 8 00:00:20,000 --> 00:00:23,000 یہ دیکھ کرنے میں مدد کرنے کے لئے، اس تصویر کے لئے مفید ہو سکتے ہیں 9 00:00:23,000 --> 00:00:25,000 ایک سٹور میں چیک آؤٹ لائن. 10 00:00:25,000 --> 00:00:28,000 کے طور پر لوگ آتے ہیں، وہ لائن کے آخر تک انتظار کریں. 11 00:00:28,000 --> 00:00:31,000 کوشپال تو موڑ لیتا ہے سامنے گاہکوں کی خدمت کر رہا ہے، 12 00:00:31,000 --> 00:00:34,000 جو اس وقت ایک وقت میں ایک سے باہر نکلنے کے. 13 00:00:34,000 --> 00:00:37,000 کمپیوٹر سائنس میں، ہم سربراہ کے طور پر قطار کے سامنے کا حوالہ دیتے ہیں 14 00:00:37,000 --> 00:00:39,000 اور پونچھ کے کے طور پر واپس. 15 00:00:39,000 --> 00:00:41,000 جب ہم نے ایک درخواست میں یہ استعمال کر سکتے ہیں کی ایک مثال 16 00:00:41,000 --> 00:00:44,000 کلاس enrollments کے لئے ایک waitlist ہے. 17 00:00:44,000 --> 00:00:46,000 جیسے جیسے نشستوں کلاس میں دستیاب ہونے پر، 18 00:00:46,000 --> 00:00:50,000 انتظار کی فہرست کے سربراہ شخص کلاس میں اندراج کرنے کا موقع فراہم کیا گیا ہے. 19 00:00:50,000 --> 00:00:53,000 >> ایک قطار کو کسی بھی مجموعہ کا استعمال کرتے ہوئے تعمیر کیا جا سکتا ہے 20 00:00:53,000 --> 00:00:57,000 کہ اس طرح کے لئے ایک صف یا ایک لنک کی فہرست کے طور پر میں ڈیٹا ذخیرہ،. 21 00:00:57,000 --> 00:01:00,000 ساتھ قطار میں اشیاء کی ذخیرہ کی وصولی کے ساتھ، 22 00:01:00,000 --> 00:01:02,000 ہم بھی قطار کے آخر میں اشیاء شامل کرنے کا طریقہ کی ضرورت ہے، 23 00:01:02,000 --> 00:01:04,000 جس enqueuing کہا جاتا ہے، 24 00:01:04,000 --> 00:01:07,000 اور ایک اور قطار کے سربراہ کی جانب سے ایک آئٹم کو دور کرنے کے لئے، 25 00:01:07,000 --> 00:01:09,000 جس dequeuing کہا جاتا ہے. 26 00:01:09,000 --> 00:01:14,000 یہ اکثر فائدہ مند ہوتا ہے دوسرا طریقہ قطار کی موجودہ لمبائی واپس شامل 27 00:01:14,000 --> 00:01:17,000 کے ساتھ ساتھ اگر قطار خالی ہے چیک کرنے کے لیے طریقہ کار کے طور پر. 28 00:01:17,000 --> 00:01:20,000 ، چلو کو دیکھو کہ ہم کس طرح سی integers کے ایک قطار کو لاگو کر سکتے ہیں 29 00:01:20,000 --> 00:01:23,000 عناصر کے جمع کرنے کے لئے ایک صف کا استعمال کرتے ہوئے. 30 00:01:23,000 --> 00:01:27,000 سب سے پہلے، ہم ایک ہمارے متغیر کو منعقد کرنے قطار نامی ڈھانچے کی تشکیل ہے. 31 00:01:27,000 --> 00:01:30,000 ہم integers کی ایک مقررہ سائز 0 انڈیکس صف استعمال کریں گے 32 00:01:30,000 --> 00:01:33,000 عناصر جمع. 33 00:01:33,000 --> 00:01:35,000 ہم نامی ایک متغیر سر بھی شامل ہوں گے 34 00:01:35,000 --> 00:01:39,000 کہ عنصر جو قطار کے سربراہ اس وقت ہے کے سوچکانک میں ذخیرہ. 35 00:01:39,000 --> 00:01:42,000 ایک تیسری متغیر، استعمال کیا جاتا ہے کہا جاتا طوالت رکھا جائے گا 36 00:01:42,000 --> 00:01:45,000 صف میں عناصر کی تعداد کا ٹریک رکھنے کے لئے. 37 00:01:45,000 --> 00:01:48,000 ایک متبادل کے طور پر، آپ کو نامی ایک متغیر دم کا استعمال کرتے ہوئے کے بارے میں غور کر سکتے ہیں 38 00:01:48,000 --> 00:01:51,000 صف میں آخری میدان عنصر کی طرف اشارہ ہے. 39 00:01:51,000 --> 00:01:53,000 اس سے پہلے کہ ہم کوئی کوڈ لکھنا، 40 00:01:53,000 --> 00:01:55,000 چلو ہمارے ڈیزائن کی کوشش کریں. 41 00:01:55,000 --> 00:01:58,000 0 لمبائی کے ایک خالی صف سے شروع 42 00:01:58,000 --> 00:02:02,000 سر 0 پر مقرر کیا ہے. 43 00:02:02,000 --> 00:02:11,000 اب چلو enqueue 4 اقدار - 6، 2، 3، اور 1. 44 00:02:11,000 --> 00:02:14,000 لمبائی 4 اب ہو جائے گا، 45 00:02:14,000 --> 00:02:17,000 اور سر 0 میں رہیں گے. 46 00:02:17,000 --> 00:02:20,000 >> اگر ہم ایک قدر dequeue تو کیا ہوتا ہے؟ 47 00:02:20,000 --> 00:02:24,000 ہم نے 3 کی لمبائی کم ہو جائے گا، 48 00:02:24,000 --> 00:02:28,000 1 سربراہ مقرر کریں، 49 00:02:28,000 --> 00:02:33,000 اور 6 قیمت واپس. 50 00:02:33,000 --> 00:02:36,000 یہ کوڈ اس طرح دیکھ سکتا ہے. 51 00:02:36,000 --> 00:02:38,000 یہاں ہم dequeue تقریب ہے، 52 00:02:38,000 --> 00:02:41,000 Q - - جو قطار میں ایک پوائنٹر لیتا ہے اور عنصر پوائنٹر 53 00:02:41,000 --> 00:02:44,000 جو کہ ایک قسم int ہے. 54 00:02:44,000 --> 00:02:47,000 سب سے پہلے ہم قطار کی لمبائی اس بات کا یقین کر لیں کہ یہ 0 سے زیادہ ہے چیک کرنے کے لیے، 55 00:02:47,000 --> 00:02:50,000 اس بات کا یقین کرنے کے لئے کہ ایک dequeued رکھا جائے عنصر ہے. 56 00:02:50,000 --> 00:02:54,000 پھر ہم پوزیشن سر میں عناصر صف میں نظر آتے ہیں، 57 00:02:54,000 --> 00:02:58,000 اور عنصر کی قدر اس پوزیشن میں قدر کے قائم کرنے. 58 00:02:58,000 --> 00:03:01,000 پھر ہم سر اگلے انڈیکس کو تبدیل کرنے 59 00:03:01,000 --> 00:03:04,000 صلاحیت٪ 60 00:03:04,000 --> 00:03:07,000 پھر ہم 1 کی طرف سے قطار کی لمبائی کو کم کرتے ہیں. 61 00:03:07,000 --> 00:03:12,000 آخر میں، ہم ظاہر ہوتا ہے کہ dequeue کامیاب رہا سچ واپس. 62 00:03:12,000 --> 00:03:19,000 اگر ہم پھر سے dequeue، کی حد کے 2 بن جائے گا، 63 00:03:19,000 --> 00:03:24,000 سر 2 بھی بن جائے گا، 64 00:03:24,000 --> 00:03:32,000 اور واپسی قیمت 2 ہو جائے گا. 65 00:03:32,000 --> 00:03:35,000 >> اگر ہم جیسا کہ 7 ایک قدر enqueue تو کیا ہوتا ہے؟ 66 00:03:35,000 --> 00:03:37,000 جیسا کہ ہم نے قطار کے آخر میں تھے، 67 00:03:37,000 --> 00:03:47,000 ہم ارد گرد لپیٹ اور ذخیرہ صف کے عنصر 0 میں قدر کی ضرورت ہو گی. 68 00:03:47,000 --> 00:03:50,000 Mathematically، یہ لمبائی انہوں نے مزید کہا کی طرف سے نمائندگی کیا جا سکتا ہے 69 00:03:50,000 --> 00:03:52,000 سر کی فہرست 70 00:03:52,000 --> 00:03:55,000 اور ایک قطار صلاحیت کا استعمال کرتے ہوئے معامل کارکردگی کا مظاہرہ کر. 71 00:03:55,000 --> 00:04:00,000 یہاں 2 +2، جس میں 4 4 فیصد ہے ہے، 72 00:04:00,000 --> 00:04:02,000 جس 0 ہے. 73 00:04:02,000 --> 00:04:05,000 اس خیال کا ترجمہ کوڈ ہم اس تقریب میں ہے. 74 00:04:05,000 --> 00:04:08,000 یہاں ہم enqueue تقریب، ملاحظہ کریں 75 00:04:08,000 --> 00:04:10,000 Q - جو قطار پوائنٹر لیتا ہے - 76 00:04:10,000 --> 00:04:14,000 اور عنصر enqueued رکھا جائے لیتا ہے، جس میں ایک عدد صحیح ہے. 77 00:04:14,000 --> 00:04:18,000 ہم آئندہ اس بات کا یقین کرنے کے لئے چیک کرنے کے لیے ہے کہ قطار کی صلاحیت 78 00:04:18,000 --> 00:04:21,000 اب بھی قطار کی موجودہ لمبائی سے بڑا ہے. 79 00:04:21,000 --> 00:04:24,000 اگلا، ہم عناصر صف میں عنصر ذخیرہ 80 00:04:24,000 --> 00:04:30,000 انڈیکس میں جو سر + لمبائی فیصد قطار کی صلاحیت کی طرف سے مقرر کیا جاتا ہے. 81 00:04:30,000 --> 00:04:33,000 پھر ہم 1 کی طرف سے قطار کی لمبائی میں اضافہ، 82 00:04:33,000 --> 00:04:39,000 اور پھر سچ ظاہر ہوتا ہے کہ enqueue تقریب کامیاب تھا واپس. 83 00:04:39,000 --> 00:04:42,000 >> دو افعال ہم نے ذکر کیا ہے کے علاوہ میں، 84 00:04:42,000 --> 00:04:44,000 دو اضافی افعال ہیں. 85 00:04:44,000 --> 00:04:46,000 پہلا isempty تقریب ہے، 86 00:04:46,000 --> 00:04:48,000 جو قطار پوائنٹر لیتا ہے 87 00:04:48,000 --> 00:04:51,000 تصدیق اور یہ کہ لمبائی 0 ہے. 88 00:04:51,000 --> 00:04:53,000 دوسری لمبائی کی تقریب ہے، 89 00:04:53,000 --> 00:04:55,000 جو بھی قطار پوائنٹر لیتا ہے 90 00:04:55,000 --> 00:04:58,000 اور struct سے موجودہ لمبائی واپس. 91 00:04:58,000 --> 00:05:03,000 یہ مختصر جائزہ ایک قطار کے ممکنہ عمل درآمد کا اظہار کیا ہے. 92 00:05:03,000 --> 00:05:06,000 حدود کے اس عمل سے ایک 93 00:05:06,000 --> 00:05:08,000 یہ ہے کہ قطار ایک مقررہ زیادہ سے زیادہ سائز کے ہیں. 94 00:05:08,000 --> 00:05:11,000 اگر ہم زیادہ عناصر قطار سے زیادہ کر سکتے ہیں کو شامل کرنے کی کوشش کرتے ہیں، 95 00:05:11,000 --> 00:05:14,000 ہم آپ سے درخواست کو نظر انداز کرنے اور عنصر چھوڑ کی ضرورت ہو سکتی ہے، 96 00:05:14,000 --> 00:05:17,000 یا ہم کچھ قسم کی غلطی کی واپس پسند کر سکتے ہیں. 97 00:05:17,000 --> 00:05:20,000 ایک صف کے بجائے ایک لنک کی فہرست کا استعمال کرتے ہوئے 98 00:05:20,000 --> 00:05:22,000 کو متحرک سائز قطار آسان بنا دے گا. 99 00:05:22,000 --> 00:05:26,000 تاہم، چونکہ ہم ایک لنک کی فہرست کے عناصر کو براہ راست رسائی حاصل نہیں کرتے، 100 00:05:26,000 --> 00:05:28,000 اگر ہم دم کا ٹریک رکھنے کے نہیں، 101 00:05:28,000 --> 00:05:32,000 ہم پورے منسلک فہرست کو ختم کرنے کے لئے ہر وقت حاصل کرنے کے لئے اسکین ہوگا. 102 00:05:32,000 --> 00:05:35,000 ہم دوسرے اعداد و شمار کی قسم کی ایک صف کا استعمال کرتے ہوئے بھی غور کر سکتے ہیں، 103 00:05:35,000 --> 00:05:39,000 structs جیسے پیچیدہ زیادہ عناصر کے قطار بنانے کے لئے. 104 00:05:39,000 --> 00:05:42,000 ہمارے ایک کلاس waitlist کی مثال واپس سوچ رہا تھا، 105 00:05:42,000 --> 00:05:45,000 یہ ڈھانچے انفرادی طالب علموں کی نمائندگی کر سکتے ہیں. 106 00:05:45,000 --> 00:05:48,000 >> میرا نام Chris Gerber ہے، اور اس CS50 ہے. 107 00:05:48,000 --> 00:05:51,000 [CS50.TV] 108 00:05:51,000 --> 00:05:55,000 اور واپسی - >> اور ایک بار. 109 00:05:55,000 --> 00:06:00,000 اور سچ ہے کہ اس بات کی نشاندہی کرنے کے واپس - قطار کامیاب رہا. 110 00:06:00,000 --> 00:06:03,000 -٪ قطار کی صلاحیت - 111 00:06:03,000 --> 00:06:06,000 یہ ترمیم میں مذاق ہو رہا ہے. [ہنسی]