1 00:00:00,000 --> 00:00:02,730 [Powered by Google Translate] [6 دفعہ: کم آرام دہ اور پرسکون] 2 00:00:02,730 --> 00:00:05,040 [نیٹ Hardison] [ہارورڈ یونیورسٹی] 3 00:00:05,040 --> 00:00:07,320 [یہ CS50 ہے.] [CS50.TV] 4 00:00:07,320 --> 00:00:11,840 ٹھیک ہے. دفعہ 6 میں آپ کا استقبال ہے. 5 00:00:11,840 --> 00:00:14,690 اس ہفتے ہم سیکشن میں ڈیٹا ڈھانچے کے بارے میں میں بات کر جا رہے ہیں، 6 00:00:14,690 --> 00:00:19,780 کی بنیادی وجہ اس ہفتے کا مسئلہ spellr مقرر 7 00:00:19,780 --> 00:00:24,410 مختلف آنکڑا ڈھانچہ ریسرچ کے ایک مکمل جھوبڈ ہے. 8 00:00:24,410 --> 00:00:26,520 مختلف طریقوں سے آپ کو مسئلہ کے سیٹ کے ساتھ جا سکتے ہیں کا ایک گروپ ہے، 9 00:00:26,520 --> 00:00:31,570 اور مزید معلومات کے ڈھانچے آپ کے بارے میں جانتے ہیں، زیادہ ٹھنڈی چیزیں آپ کر سکتے ہیں. 10 00:00:31,570 --> 00:00:34,990 >> تو شروع ہو. پہلے ہم stacks کے بارے میں بات کرنے کے لئے جا رہے ہیں، 11 00:00:34,990 --> 00:00:37,530 اسٹیک اور قطار کے ڈیٹا ڈھانچے کہ ہم کے بارے میں بات کرنے کے لئے جا رہے ہیں. 12 00:00:37,530 --> 00:00:40,560 Stacks اور قطار بہت مدد مل رہی ہے جب ہم گراف کے بارے میں بات کر شروع، 13 00:00:40,560 --> 00:00:44,390 جو ہم حق کی اتنی اب نہیں رہے ہیں. 14 00:00:44,390 --> 00:00:52,820 لیکن وہ واقعی کاوچ سرفنگ کے بڑے بنیادی ڈیٹا ڈھانچے میں سے ایک سمجھ اچھے ہیں. 15 00:00:52,820 --> 00:00:54,880 مسئلہ سیٹ کی تفصیلات میں وضاحت، 16 00:00:54,880 --> 00:00:59,260 ماخوذ طور پر اگر آپ اسے اوپر ھیںچو، stacks کے بارے میں بات چیت 17 00:00:59,260 --> 00:01:05,239 کھانے کی ٹرے کے ڈھیر ہے کہ آپ کو کھانے کے ہال میں کیفیٹیریا میں ہے 18 00:01:05,239 --> 00:01:09,680 جہاں جب کھانے کے عملے آتا ہے اور کھانے کے ٹرے رکھتا ہے کے بعد وہ ان سے صاف ہے، 19 00:01:09,680 --> 00:01:12,000 وہ انہیں ایک دوسرے کے اوپر کتابیں رکھی. 20 00:01:12,000 --> 00:01:15,050 اور پھر جب بچے کھانا حاصل کرنے کے لئے میں آتے ہیں، 21 00:01:15,050 --> 00:01:19,490 وہ ٹرے ھیںچو نے، سب سے پہلے سب سے اوپر ایک، تو اس کے نیچے ایک تو جو ذیل میں سے ایک ہے. 22 00:01:19,490 --> 00:01:25,190 تو، اثر میں، پہلی ٹرے ہے کہ کھانے کے عملے کو دبا دیا گزشتہ ایک ہے کہ لیا ہو جاتا ہے. 23 00:01:25,190 --> 00:01:32,330 گزشتہ ایک یہ ہے کہ کھانے کے عملے پر ڈال پہلے کہ رات کے کھانے کے لئے لیا ہو جاتا ہے. 24 00:01:32,330 --> 00:01:38,100 مسئلہ سیٹ کی رپورٹ میں، جو آپ کو ڈاؤن لوڈ، اتارنا اگر آپ کے پاس پہلے سے ہی نہیں ہے کر سکتے ہیں، 25 00:01:38,100 --> 00:01:46,730 ہم ایک اسٹیک ڈیٹا اس قسم کی struct کا استعمال کرتے ہوئے stucture ماڈلنگ کے بارے میں بات کرتے ہیں. 26 00:01:46,730 --> 00:01:51,070 >> تو ہم یہاں کیا مل گیا ہے، اس لیکچر میں پیش کیا گیا تھا اسی طرح ہے، 27 00:01:51,070 --> 00:01:58,120 لیکچر میں سوائے ہم ints کے طور پر حروف * کی مخالفت کی کے ساتھ پیش کیا. 28 00:01:58,120 --> 00:02:06,250 یہ ایک اسٹیک ہے کہ کیا اسٹورز جا رہا ہے؟ 29 00:02:06,250 --> 00:02:09,009 ڈینیل؟ کیا ہم اس اسٹیک میں ذخیرہ کرنے ہیں؟ 30 00:02:09,009 --> 00:02:15,260 [ڈینیل] ڈور؟ >> ہم اس اسٹیک میں تاروں ذخیرہ کرنے ہیں، بالکل. 31 00:02:15,260 --> 00:02:20,950 آپ کی ضرورت ہے کے لئے اسٹیک بنانے کے لئے ایک صف ہے 32 00:02:20,950 --> 00:02:23,920 ایک خاص صلاحیت کی،، اس معاملے میں جو 33 00:02:23,920 --> 00:02:28,020 صلاحیت تمام بڑے حروف میں کیونکہ یہ ایک مسلسل ہونے جا رہا ہے. 34 00:02:28,020 --> 00:02:36,340 اور پھر صف کے علاوہ میں، ہم سب کو ٹریک کرنے کی ضرورت ہے صف کی موجودہ سائز ہے. 35 00:02:36,340 --> 00:02:38,980 ایک بات نوٹ کریں کہ کول کی طرح ہے 36 00:02:38,980 --> 00:02:47,060 یہ ہے کہ ہم ایک اور آنکڑا ڈھانچہ، صف کے سب سے اوپر پر سجا دیئے آنکڑا ڈھانچہ کی تشکیل کر رہے ہیں. 37 00:02:47,060 --> 00:02:50,110 stacks کو لاگو کرنے کے مختلف طریقے ہیں. 38 00:02:50,110 --> 00:02:54,250 لیکن ہم یہ امید ہے کہ مسائل سے منسلک فہرست کرنے کے بعد بہت ابھی تک نہیں کیا جائے گا،، 39 00:02:54,250 --> 00:03:00,520 تم نے دیکھا کہ کس طرح آپ کو ایک لنک کی فہرست کے سب سے اوپر پر ایک اسٹیک کے ساتھ ساتھ آسانی سے عمل درآمد کر سکتے ہیں کریں گے. 40 00:03:00,520 --> 00:03:02,640 لیکن، اب ہم arrays رہنا ہوگا. 41 00:03:02,640 --> 00:03:06,350 تو پھر ہم سب کی ضرورت ہے ایک صف ہے اور ہم صرف صف کے سائز کو ٹریک کرنے کی ضرورت ہے. 42 00:03:06,350 --> 00:03:09,850 [سیم] معذرت، کیوں ہے کہ آپ نے کہا کہ اسٹیک ڈور کے سب سے اوپر پر ہے؟ 43 00:03:09,850 --> 00:03:13,440 میرے لئے ایسا لگتا ہے جیسے ڈور اسٹیک کے اندر اندر ہو. 44 00:03:13,440 --> 00:03:16,790 [Hardison] جی ہاں. ہم بنانے، ہم اپنے صف آنکڑا ڈھانچہ لے جا رہے ہو رہے ہیں - 45 00:03:16,790 --> 00:03:22,130 یہ ایک بہت بڑا سوال ہے. تو سوال یہی وجہ ہے کہ لوگ ہیں جنہوں نے اس آن لائن دیکھ رہے ہیں کے لئے ہے، 46 00:03:22,130 --> 00:03:24,140 ہم کہہ رہے ہیں کیوں کہ اسٹیک ڈور کے سب سے اوپر پر ہے، 47 00:03:24,140 --> 00:03:27,990 کیونکہ یہاں ایسا لگتا ہے طرح ڈور اسٹیک کے اندر ہیں؟ 48 00:03:27,990 --> 00:03:31,050 کو مکمل طور پر معاملہ ہے. 49 00:03:31,050 --> 00:03:34,660 میں حوالہ دے رہے تھے یہ تھا کہ ہم ایک صف آنکڑا ڈھانچہ ہے. 50 00:03:34,660 --> 00:03:39,290 ہم چار کے * ایک صف، تاروں کے اس صف ہے، 51 00:03:39,290 --> 00:03:45,300 اور ہم اس پر سجا دیئے آنکڑا ڈھانچہ بنانے کے لئے شامل کرنے کے لئے جا رہے ہیں. 52 00:03:45,300 --> 00:03:48,620 >> تو ایک اسٹیک ایک صف سے تھوڑا سا زیادہ پیچیدہ ہے. 53 00:03:48,620 --> 00:03:51,890 ہم ایک صف کو اسٹیک کی تعمیر کے لئے استعمال کر سکتے ہیں. 54 00:03:51,890 --> 00:03:55,810 تو وہ ہے جس پر ہم یہ کہتے ہیں کہ اسٹیک ایک صف کے سب سے اوپر پر بنایا گیا ہے. 55 00:03:55,810 --> 00:04:02,510 اسی طرح، میں نے پہلے کہا، ہم نے ایک لنک کی فہرست کے سب سے اوپر پر اسٹیک بنانے کے کر سکتے ہیں. 56 00:04:02,510 --> 00:04:04,960 ہمارے عناصر کو منعقد کرنے کے لئے ایک صف کا استعمال کرتے ہوئے کی بجائے، 57 00:04:04,960 --> 00:04:10,070 ہمارے عناصر کو منعقد کرنے اور اس کے ارد گرد اسٹیک تعمیر کے لئے ہم نے ایک لنک کی فہرست کا استعمال کر سکتے ہیں. 58 00:04:10,070 --> 00:04:12,420 چلو مثالوں کی ایک جوڑے کے ذریعے چل، کچھ کوڈ کو دیکھ 59 00:04:12,420 --> 00:04:14,960 اصل میں یہاں کیا ہو رہا ہے دیکھ کر. 60 00:04:14,960 --> 00:04:23,400 بائیں طرف، میں نیچے پھینک دیا ہے کیا طرح کہ اسٹیک struct یاد میں نظر آئے گا کے لئے 61 00:04:23,400 --> 00:04:28,330 اگر صلاحیت # چار کے طور پر بیان کیا گیا تھا. 62 00:04:28,330 --> 00:04:33,490 ہم نے اپنے چار عنصر حروف * صف ہے. 63 00:04:33,490 --> 00:04:38,110 ہم ڈور [0]، ڈور [1]، ڈور، [2] ڈور، [3] ملا ہے 64 00:04:38,110 --> 00:04:43,800 اور پھر ہمارے سائز عددی کے لئے کہ گزشتہ جگہ ہے. 65 00:04:43,800 --> 00:04:46,270 کیا اس کا کوئی مطلب ہے؟ ٹھیک ہے. 66 00:04:46,270 --> 00:04:48,790 یہ ہے جو ہوتا ہے اگر میں حق پر کرتے ہیں، 67 00:04:48,790 --> 00:04:55,790 جو میری کوڈ جائے گا، صرف ایک struct، ایک سجا دیئے کہا جاتا ہے کے struct کا اعلان ہے. 68 00:04:55,790 --> 00:05:01,270 اس کا ہے جو ہم حاصل ہے. یہ یاد میں اس کے زیر اثر دیتی ہے. 69 00:05:01,270 --> 00:05:05,590 پہلے یہاں سوال یہ ہے کہ کیا اس اسٹیک struct کے مندرجات کیا ہیں؟ 70 00:05:05,590 --> 00:05:09,250 اب وہ کچھ نہیں ہیں، لیکن وہ مکمل طور پر کچھ نہیں ہو. 71 00:05:09,250 --> 00:05:13,300 انہوں نے ردی کی ٹوکری میں اس قسم کی ہیں. ہم میں کوئی خیال نہیں کیا ان میں ہے. 72 00:05:13,300 --> 00:05:17,000 جب ہم نے اسٹیک کا اعلان، ہم صرف یہ ہے کہ پھینک رہے ہیں میموری کے سب سے اوپر پر. 73 00:05:17,000 --> 00:05:19,840 یہ int میں قرار دیا اور یہ نہیں ابتدا کی طرح ہے. 74 00:05:19,840 --> 00:05:21,730 آپ کو پتہ نہیں وہاں کیا ہے. کیا تم پڑھ سکتے ہیں وہاں کیا ہے، 75 00:05:21,730 --> 00:05:27,690 لیکن یہ انتہائی نہیں مددگار ثابت ہو سکتا ہے. 76 00:05:27,690 --> 00:05:32,680 ایک چیز ہے جو آپ کو ہمیشہ یاد کرنا چاہتے ہیں ہیں ابتدا کریں جو initialized رکھا جائے کرنے کی ضرورت ہے. 77 00:05:32,680 --> 00:05:35,820 اس صورت میں، ہم سائز صفر ابتدا جا رہے ہیں، 78 00:05:35,820 --> 00:05:39,960 کیونکہ وہ ہمارے لئے بہت اہم باری ہو رہا ہے. 79 00:05:39,960 --> 00:05:43,450 ہم آگے بڑھیں اور اشارہ کے تمام، تمام حروف * S ابتدا کر سکتا ہے، 80 00:05:43,450 --> 00:05:49,670 کچھ سمجھ قیمت، شاید، شہوت انگیز null. 81 00:05:49,670 --> 00:05:58,270 لیکن یہ مکمل طور پر ضروری ہے کہ ہم ایسا نہیں ہے. 82 00:05:58,270 --> 00:06:04,200 >> اب، stacks پر دو اہم آپریشن ہے؟ 83 00:06:04,200 --> 00:06:07,610 کوئی لیکچر سے یاد ہے تم stacks کے ساتھ کیا کیا؟ جی ہاں؟ 84 00:06:07,610 --> 00:06:09,700 [سٹیلا] آگے بڑھانے اور پوپ آؤٹ؟ بالکل ٹھیک ہے. >> 85 00:06:09,700 --> 00:06:13,810 آگے بڑھانے اور پوپ آؤٹ stacks دو اہم آپریشن ہے. 86 00:06:13,810 --> 00:06:17,060 اور دھکا کیا کیا کرتا ہے؟ >> یہ سب سے اوپر پر کچھ کہتے ہیں 87 00:06:17,060 --> 00:06:19,300 اسٹیک، اور پھر پوپ آؤٹ اسے لیتا ہے. 88 00:06:19,300 --> 00:06:23,150 [Hardison] بالکل. اس کے بعد اسٹیک کے سب سے اوپر پر آگے بڑھانے کچھ pushes. 89 00:06:23,150 --> 00:06:27,700 یہ کھانے کے ایک کھانے کی ٹرے کاؤنٹر پر نیچے رکھ عملے کی طرح ہے. 90 00:06:27,700 --> 00:06:33,630 اور پوپ آؤٹ اسٹیک کے کھانے کی ٹرے لے جا رہا ہے. 91 00:06:33,630 --> 00:06:36,460 چلو دیکھتے ہیں کیا ہوتا ہے مثال کے طور پر کے ایک جوڑے کے ذریعے چلنا 92 00:06:36,460 --> 00:06:39,720 جب ہم نے اسٹیک میں چیزوں کو دھکا. 93 00:06:39,720 --> 00:06:45,110 اگر ہم ہمارے اسٹیک پر STRING 'ہیلو' دھکا، 94 00:06:45,110 --> 00:06:49,760 یہ وہی ہے جو ہمارے آریھ کی طرح دیکھو، اب. 95 00:06:49,760 --> 00:06:53,410 دیکھو، کیا ہوتا ہے؟ 96 00:06:53,410 --> 00:06:56,530 ہم ہمارے ڈور صف کے پہلے عنصر میں دھکیل دیا 97 00:06:56,530 --> 00:07:01,420 اور ہم نے اپنے سائز کا شمار upped 1. 98 00:07:01,420 --> 00:07:05,340 یہاں تو اگر ہم دو سلائڈ کے درمیان فرق میں دیکھو، یہاں 0 تھا، دھکا سے پہلے ہے. 99 00:07:05,340 --> 00:07:08,690 یہاں دھکا کے بعد ہے. 100 00:07:08,690 --> 00:07:13,460 دھکا سے پہلے، دھکا کے بعد. 101 00:07:13,460 --> 00:07:16,860 اور اب ہم اپنے اسٹیک میں ایک عنصر ہے. 102 00:07:16,860 --> 00:07:20,970 یہ سٹرنگ "ہیلو" ہے، اور یہ بات ہے. 103 00:07:20,970 --> 00:07:24,440 اور صف میں سب کچھ، ہمارے ڈور صف میں، اب بھی ردی کی ٹوکری میں ہے. 104 00:07:24,440 --> 00:07:27,070 ہم اس initialized نہیں ہے. 105 00:07:27,070 --> 00:07:29,410 چلو کا کہنا ہے کہ ہم اپنے اسٹیک پر ایک سٹرنگ دھکا. 106 00:07:29,410 --> 00:07:32,210 ہم اس وقت پر "دنیا" دھکا جا رہے ہیں. 107 00:07:32,210 --> 00:07:35,160 آپ دیکھ کر سکتے ہیں "دنیا" یہاں "ہیلو" کے سب سے اوپر پر جاتا ہے، 108 00:07:35,160 --> 00:07:40,040 اور سائز کی گنتی 2 جاتا ہے. 109 00:07:40,040 --> 00:07:44,520 اب ہم "CS50"، اور یہ کہ سب سے اوپر پر کریں گے دھکا کر سکتے ہیں. 110 00:07:44,520 --> 00:07:51,110 اگر ہم واپس جاؤ، تم نے دیکھا، کہ ہم کس طرح اسٹیک کے سب سے اوپر پر چیزوں کو آگے بڑھانے رہے ہیں کر سکتے ہیں. 111 00:07:51,110 --> 00:07:53,320 اور اب ہم پاپ. 112 00:07:53,320 --> 00:07:58,910 اسٹیک کے جب ہم نے کچھ popped، کیا ہوا؟ 113 00:07:58,910 --> 00:08:01,540 کوئی فرق نظر آتا ہے؟ یہ بہت ٹھیک ٹھیک ہے. 114 00:08:01,540 --> 00:08:05,810 [Student کی] فونز. >> جی ہاں، سائز تبدیل کر دیا ہے. 115 00:08:05,810 --> 00:08:09,040 >> اور کیا آپ کو تبدیل کرنے کے لئے امید کی جاتی ہے؟ 116 00:08:09,040 --> 00:08:14,280 [Student کی] ڈور بھی. >> حق ہے. بھی ڈور. 117 00:08:14,280 --> 00:08:17,110 یہ پتہ چلا ہے کہ جب آپ اس طرح کر رہے ہو 118 00:08:17,110 --> 00:08:21,960 کیونکہ ہم عناصر ہمارے اسٹیک میں کاپی نہیں کر رہے ہیں، 119 00:08:21,960 --> 00:08:24,670 ہم واقعی کچھ کرنے کی ضرورت نہیں ہے، ہم صرف سائز کا استعمال کر سکتے ہیں 120 00:08:24,670 --> 00:08:28,630 ہمارے صف میں چیزوں کی تعداد کے ٹریک رکھنے کے 121 00:08:28,630 --> 00:08:33,780 تاکہ جب ہم دوبارہ پاپ، پھر ہم صرف اپنے حجم 1 تدریج کریں. 122 00:08:33,780 --> 00:08:39,440 اصل میں میں جانے اور کچھ ادلیکھت کرنے کی ضرورت نہیں ہے. 123 00:08:39,440 --> 00:08:41,710 funky کی قسم. 124 00:08:41,710 --> 00:08:46,520 یہ پتہ چلا ہے کہ ہم عام طور پر صرف چیزیں انفرادی چھوڑ کیونکہ یہ کم کام ہے، ہمارے لئے کیا ہے. 125 00:08:46,520 --> 00:08:50,060 اگر ہم واپس جانے کے لئے اور کچھ کو ادلیکھت نہیں ہے، تو پھر کیوں کرتے ہیں؟ 126 00:08:50,060 --> 00:08:54,150 تو جو کچھ کرتا ہے جب ہم نے اسٹیک کے دو بار مر جانا ہے، سائز کے ایک جوڑے بار تدریج کریں. 127 00:08:54,150 --> 00:08:59,120 اور پھر، یہ صرف اس صورت میں ہے کیونکہ ہم چیزیں ہمارے اسٹیک میں کاپی کرنے کی کر رہے ہیں نہیں. 128 00:08:59,120 --> 00:09:01,320 جی ہاں؟ آگے جاؤ. 129 00:09:01,320 --> 00:09:04,460 [طالب علم، unintelligible] >> اور اس کے بعد کیا ہوتا ہے جب تم سے کچھ پھر سے دھکا ہے؟ 130 00:09:04,460 --> 00:09:08,570 جب تم سے کچھ دوبارہ دھکا، یہ کہاں جاتا ہے؟ 131 00:09:08,570 --> 00:09:12,390 یہ کہاں تلسی جاتے ہو؟ [1] ڈور میں >>؟ >> حق ہے. 132 00:09:12,390 --> 00:09:14,530 [3] ڈور میں کیوں نہیں جاتے؟ 133 00:09:14,530 --> 00:09:19,410 [تلسی] کیونکہ یہ بھول گیا تھا کہ ڈور میں کچھ تھا [1] [2] 134 00:09:19,410 --> 00:09:24,040 [Hardison] بالکل. ہمارے اسٹیک، بنیادی طور پر، "بھول گیا انہوں نے کہا کہ کہ یہ کچھ بھی انعقاد کیا گیا تھا 135 00:09:24,040 --> 00:09:29,480 ڈور میں [1] یا ڈور [2]، تو جب ہم "woot" دھکا 136 00:09:29,480 --> 00:09:36,670 یہ صرف عنصر میں [1] ڈور میں رکھتا ہے. 137 00:09:36,670 --> 00:09:41,590 یہ کس طرح کام کرتا ہے کے ذہن میں کوئی سوالات بنیادی سطح پر ہیں،؟ 138 00:09:41,590 --> 00:09:45,160 [سیم] تو یہ کسی بھی طرح میں متحرک نہیں ہے رقم کے لحاظ سے، 139 00:09:45,160 --> 00:09:47,620 یا اسٹیک کے سائز کے لحاظ سے؟ 140 00:09:47,620 --> 00:09:56,750 [Hardison] بالکل. یہ ہے - نقطہ یہ تھا کہ یہ ایک متحرک طور growning اسٹیک نہیں تھا. 141 00:09:56,750 --> 00:10:02,850 یہ ایک اسٹیک ہے کہ سب سے زیادہ، چار چار * کے میں پکڑ، کر سکتے ہیں، سب سے زیادہ چار چیزوں کو ہے. 142 00:10:02,850 --> 00:10:07,580 اگر ہم نے دھکا میں پانچویں بات کرنے کی کوشش کر رہے تھے، کیا آپ کے خیال میں ہونا چاہیئے؟ 143 00:10:07,580 --> 00:10:11,870 [طالب علم، unintelligible] 144 00:10:11,870 --> 00:10:14,600 [Hardison] بالکل. وہ چیزیں ہیں جو ہو سکتا ہے کی ایک بڑی تعداد ہیں. 145 00:10:14,600 --> 00:10:19,330 یہ غلطی کا امکان seg کر سکتے ہیں، جو ہم تھے کے لحاظ سے - 146 00:10:19,330 --> 00:10:22,530 کس طرح ہم نے پیچھے کے آخر میں کو لاگو کرنے کر رہے ہیں. 147 00:10:22,530 --> 00:10:31,740 ادلیکھت کر سکتے ہیں. یہ کہ بفر اتپرواہ کر سکتے ہیں کہ ہم کلاس میں کے بارے میں بات کی ہے. 148 00:10:31,740 --> 00:10:35,240 سب سے واضح چیز ہے جو ادلیکھت ہو سکتا ہے کیا جائے گا 149 00:10:35,240 --> 00:10:42,370 اگر ہم ہمارے اسٹیک پر ایک اضافی چیز کو دھکا کرنے کی کوشش کی؟ 150 00:10:42,370 --> 00:10:44,550 تو آپ کو ایک بفر اتپرواہ کا ذکر کیا ہے. 151 00:10:44,550 --> 00:10:47,870 کیا بات ہو سکتا ہے جو ختم ہونے لکھا کریں گے یا stomped 152 00:10:47,870 --> 00:10:52,320 اگر ہم نے ایک اضافی بات کو آگے بڑھانے کی کوشش کر رہے کی طرف سے اتفاقی طور پر overflowed؟ 153 00:10:52,320 --> 00:10:54,730 [ڈینیل، unintelligible] >> ممکنہ. 154 00:10:54,730 --> 00:10:58,440 لیکن ابتدائی طور پر کیا ہو سکتا ہے؟ کیا ہوگا اگر ہم ایک چوتھی بات کو آگے بڑھانے کی کوشش کی؟ 155 00:10:58,440 --> 00:11:06,220 یہ اس میموری آریھ ہے کہ ہمارے پاس کیا ہے کے ساتھ کم از کم سائز ادلیکھت ہو سکتا ہے. 156 00:11:06,220 --> 00:11:10,880 >> مسئلہ سیٹ کی تفصیلات میں، جس میں ہے جو آج ہم پر عملدرآمد ہونے کے لئے جا رہے ہیں، 157 00:11:10,880 --> 00:11:16,030 جو ہم کرنا چاہتے ہیں صرف جھوٹے واپس ہے. 158 00:11:16,030 --> 00:11:20,030 ہماری دھکا طریقہ ایک بولین قیمت واپس کرنے جا رہا ہے، 159 00:11:20,030 --> 00:11:22,920 اور یہ کہ بولین قدر درست ہو اگر دھکا کامیاب گا 160 00:11:22,920 --> 00:11:29,730 اور جھوٹے اگر ہم کچھ دھکا نہیں کر سکتے ہیں کیونکہ اسٹیک بھرا ہوا ہے. 161 00:11:29,730 --> 00:11:33,620 چلو اس کوڈ کی ایک تھوڑا سا کے ذریعے اب چل. 162 00:11:33,620 --> 00:11:36,400 یہ ہمارا دھکا کی تقریب ہے. 163 00:11:36,400 --> 00:11:40,380 ایک اسٹیک کے لئے ہماری دھکا تقریب سٹرنگ میں اسٹیک پر ڈال لے جا رہا ہے. 164 00:11:40,380 --> 00:11:45,820 یہ سچ واپس جا اگر سٹرنگ کو کامیابی سے نکالا گیا ہے 165 00:11:45,820 --> 00:11:51,820 اسٹیک اور جھوٹے ورنہ. 166 00:11:51,820 --> 00:11:59,740 کیا کوئی رائے ہوں، ایک اچھا سب سے پہلے یہاں کیا کام ہو سکتا ہے؟ 167 00:11:59,740 --> 00:12:20,630 [سیم] اگر سائز صلاحیت برابر ہے تو باطل واپس؟ 168 00:12:20,630 --> 00:12:23,320 [Hardison] بنگو. بہت اچھا کام کیا. 169 00:12:23,320 --> 00:12:26,310 اگر سائز کی صلاحیت موجود ہے، ہم جھوٹے واپس جا رہے ہیں. 170 00:12:26,310 --> 00:12:29,270 ہم ہمارے اسٹیک میں مزید کچھ نہیں ڈال سکتا. 171 00:12:29,270 --> 00:12:36,900 دوسری صورت میں، ہم اسٹیک کے سب سے اوپر پر کچھ کرنا چاہتے. 172 00:12:36,900 --> 00:12:41,670 "اسٹیک کے سب سے اوپر،" ابتدائی طور پر کیا ہے؟ 173 00:12:41,670 --> 00:12:43,650 [ڈینیل] سائز 0؟ >> 0 سائز. 174 00:12:43,650 --> 00:12:49,990 اسٹیک کے بعد اسٹیک میں ایک بات ہے کے سب سے اوپر کیا ہے؟ Missy، آپ کو معلوم ہے؟ 175 00:12:49,990 --> 00:12:52,720 [Missy]. >> سائز میں سے ایک ہے، بالکل. آپ سائز میں اضافہ رہو، 176 00:12:52,720 --> 00:13:01,690 اور ہر وقت آپ صف میں انڈیکس کے سائز میں نئے عنصر میں ڈال رہے ہیں. 177 00:13:01,690 --> 00:13:05,470 ہم نے اسے ایک جہاز کے اس قسم کے ساتھ کیا کر سکتے ہیں، اگر اس میں اس کا احساس کرتا ہے. 178 00:13:05,470 --> 00:13:11,910 تو ہم اپنے ڈور کی صف ملا ہے، ہم اس کے سائز کے انڈیکس میں تک رسائی کی جا رہے ہیں، 179 00:13:11,910 --> 00:13:14,780 اور ہم صرف وہاں میں ہمارے چار * ذخیرہ کرنے جا رہے ہیں. 180 00:13:14,780 --> 00:13:19,340 نوٹس کس طرح کوئی تار نقل میں جا 181 00:13:19,340 --> 00:13:29,680 میموری کا کوئی متحرک سے تین ہلاک ہے؟ 182 00:13:29,680 --> 00:13:34,440 اور پھر Missy پرورش اب ہمیں کیا کرنا ہے، 183 00:13:34,440 --> 00:13:40,570 کیونکہ ہم نے صف میں مناسب جگہ میں سٹرنگ کا ذخیرہ ہے، 184 00:13:40,570 --> 00:13:49,230 اور انہوں نے کہا کہ ہم نے ایک کے بعد سائز تاکہ ہم اگلے دھکا کے لئے تیار ہیں اضافہ تھا. 185 00:13:49,230 --> 00:13:53,950 تو ہم s.size کے ساتھ کر سکتے ہیں + + 186 00:13:53,950 --> 00:13:59,330 اس وقت ہم اپنے صف میں دھکیل دیا ہے. آخری چیز جو ہم پر واجب ہے کیا ہے؟ 187 00:13:59,330 --> 00:14:10,110 [Student کی] صحیح واپس. >> سچا واپس. 188 00:14:10,110 --> 00:14:14,690 تو یہ بہت آسان ہے، ایک کافی آسان کوڈ. بہت زیادہ نہیں ہے. 189 00:14:14,690 --> 00:14:17,070 ایک بار جب آپ نے کس طرح اسٹیک کام کرتا ہے کے ارد گرد اپنے سر لپیٹ ہے، 190 00:14:17,070 --> 00:14:21,910 اس پر عملدرآمد بہت سادہ ہے. 191 00:14:21,910 --> 00:14:26,390 >> اب، اس کے اگلے حصہ اسٹیک کی ایک تار نے پوپ آؤٹ ہے. 192 00:14:26,390 --> 00:14:29,410 میں نے تم لوگوں کو اس سلسلے میں یہ ایک تھوڑا سا کام کرنے کے لئے کچھ وقت دینے جا رہا ہوں. 193 00:14:29,410 --> 00:14:34,320 یہ بنیادی طور پر جو ہم یہاں دھکا میں کیا ہے ریورس ہے. 194 00:14:34,320 --> 00:14:38,510 جو میں نے کیا ہے اصل میں ہے - اوہ. 195 00:14:38,510 --> 00:14:48,160 میں یہاں اور آلات میں ہٹا دیا ہے آلات 196 00:14:48,160 --> 00:14:53,600 میں ھنچائی مسئلہ 5 تفصیلات کا تعین کیا ہے. 197 00:14:53,600 --> 00:15:02,560 ہم دیکھتے ہیں اگر ہم یہاں میں زوم، میں cdn.cs50.net/2012/fall/psets/pset5.pdf میں ہوں کر سکتے ہیں. 198 00:15:02,560 --> 00:15:08,590 کیا تم لوگ اس کوڈ کو جو یہاں واقع ہے، section6.zip ڈاؤن لوڈ 199 00:15:08,590 --> 00:15:15,030 ٹھیک ہے. اگر آپ نے نہیں کیا ہے کہ یہ درست کرو اب، واقعی بہت تیزی سے کیا ہے. 200 00:15:15,030 --> 00:15:22,130 میں نے اسے میرے ٹرمنل ونڈو میں کیا کروں گا. 201 00:15:22,130 --> 00:15:25,090 دراصل میں نے یہ کیا ہے یہاں. جی ہاں. 202 00:15:25,090 --> 00:15:34,730 جی ہاں، سیم؟ >> میں کیوں آپ کو سائز کے s.string کی بریکٹ کہا STR = کے بارے میں ایک سوال ہے؟ 203 00:15:34,730 --> 00:15:42,910 STR کیا ہے؟ یہ ہے کہ اس سے پہلے کہیں بیان کیا، یا - اوہ، چار * STR میں؟ 204 00:15:42,910 --> 00:15:47,160 [Hardison] جی ہاں، بالکل. یہ دلیل تھی. >> اوہ، ٹھیک ہے. معاف کیجئے گا. 205 00:15:47,160 --> 00:15:49,470 [Hardison] ہم اندر دھکا سٹرنگ کی وضاحت کر رہے ہیں 206 00:15:49,470 --> 00:15:55,220 دوسرے سوال ہے جو آ گیا ہے کہ ہم یہاں کے بارے میں واقعی نہیں کیا بات ہو سکتی ہے 207 00:15:55,220 --> 00:15:58,810 ہم نے کے لئے حاصل کی جاچکی ہے کہ ہم اسے کہتے ہیں کے متغیر تھا 208 00:15:58,810 --> 00:16:02,710 گنجائش اور ہمارے لئے قابل رسائی ہے. 209 00:16:02,710 --> 00:16:06,960 ہم نے کے لئے حاصل کی جاچکی ہے کہ اس اسٹیک struct. 210 00:16:06,960 --> 00:16:08,930 تو اس دھکا کوڈ واپس دیکھ، 211 00:16:08,930 --> 00:16:13,450 آپ دیکھیں گے کہ ہم نے اس سٹرنگ میں منظور ہو چکی ہے کے ساتھ چیزیں کر رہے ہیں کر سکتے ہیں 212 00:16:13,450 --> 00:16:19,210 لیکن پھر اچانک، ہم s.size تک رسائی حاصل کر رہے ہیں، کی طرح، کہاں s سے آئے 213 00:16:19,210 --> 00:16:23,020 کوڈ ہے کہ ہم سیکشن آرکائیو میں نظر آتے جا رہے ہیں میں 214 00:16:23,020 --> 00:16:27,100 اور پھر چیزیں ہے کہ آپ کو آپ کے مسئلہ میں کر کریں گے کا تعین کرتا ہے، 215 00:16:27,100 --> 00:16:32,440 ہم نے ہماری اسٹیک ایک عالمی متغیر struct ہے 216 00:16:32,440 --> 00:16:36,380 تاکہ ہم اپنے تمام مختلف افعال میں اس تک رسائی حاصل کر سکتے ہیں 217 00:16:36,380 --> 00:16:40,630 ، دستی طور پر اس کے ارد گرد منتقل اور حوالہ کی طرف سے اسے منظور کرنے کے بغیر 218 00:16:40,630 --> 00:16:44,870 اس سامان کے تمام اس طرح کرتے ہیں. 219 00:16:44,870 --> 00:16:52,280 ہم صرف تھوڑا سا کو دھوکہ دے رہے ہیں، اگر تم اچھی چیزیں بنانے. 220 00:16:52,280 --> 00:16:57,430 اور یہ کہ کچھ ہم یہاں کیا کر رہے ہو کیونکہ یہ تفریح ​​کے لئے ہے ہے ہے، آسان ہے. 221 00:16:57,430 --> 00:17:02,800 اکثر آپ نے دیکھا، لوگ ایسا کرتے ہیں اگر وہ ایک بڑا آنکڑا ڈھانچہ پڑے گا 222 00:17:02,800 --> 00:17:07,750 جو اپنے پروگرام کے اندر اندر کیا جا رہا ہے پر آپریشن. 223 00:17:07,750 --> 00:17:09,560 >> آلات پر پر واپس جانا ہے. 224 00:17:09,560 --> 00:17:15,240 کیا سب کو کامیابی سے section6.zip ملے گا؟ 225 00:17:15,240 --> 00:17:20,440 سب ان زپ ان زپ section6.zip کا استعمال کرتے ہوئے؟ 226 00:17:20,440 --> 00:17:27,200 اگر آپ سیکشن 6 ڈائریکٹری میں جانے - 227 00:17:27,200 --> 00:17:29,220 آہ، سب جگہ میں سب کچھ - 228 00:17:29,220 --> 00:17:32,840 آپ کی فہرست اور یہاں کیا ہے، تم نے دیکھا ہے کہ آپ کو تین مختلف سی فائلوں. ہے. 229 00:17:32,840 --> 00:17:38,350 آپ کو ایک قطار ایک sll، جو فہرست اکیلے منسلک ہے اور ایک اسٹیک ہے. 230 00:17:38,350 --> 00:17:44,600 اگر آپ کو stack.c کھولتے، 231 00:17:44,600 --> 00:17:47,330 آپ دیکھیں گے کہ ہم نے یہ ہمارے لئے بیان کیا struct ہے کر سکتے ہیں، 232 00:17:47,330 --> 00:17:51,330 عین مطابق struct ہے کہ ہم صرف سلائڈ میں کے بارے میں بات کی تھی. 233 00:17:51,330 --> 00:17:56,340 ہم نے اسٹیک کے لئے ہمارے عالمی متغیر ملا ہے، 234 00:17:56,340 --> 00:18:00,110 ہم اپنے دھکا تقریب ہے، 235 00:18:00,110 --> 00:18:04,230 اور پھر ہم اپنے پاپ تقریب ہے. 236 00:18:04,230 --> 00:18:08,320 میں کوڈ ڈال کے لئے سلائڈ پر واپس یہاں دھکا کریں گے، 237 00:18:08,320 --> 00:18:10,660 لیکن کیا میں تم لوگ کیا کرنا چاہتے ہیں آپ کی صلاحیت کا بہترین ہے، 238 00:18:10,660 --> 00:18:13,790 اور پاپ تقریب کے نفاذ. 239 00:18:13,790 --> 00:18:18,480 ایک بار جب آپ نے اس پر عمل کیا ہے، آپ کو اسٹیک بنانے کے ساتھ اس کو مرتب کر سکتے ہیں، 240 00:18:18,480 --> 00:18:22,540 اور پھر نتیجے میں اسٹیک کارکردگی کو چلانے کے، 241 00:18:22,540 --> 00:18:28,390 اور یہ کہ اس ٹیسٹ کے کوڈ کے نیچے جو اہم ہے چلا جائے گا. 242 00:18:28,390 --> 00:18:31,060 اور مین اصل میں دھکا اور پاپ کال کرنے کا خیال ہے 243 00:18:31,060 --> 00:18:33,220 اور اس بات کا یقین کر لیں کہ کہ سب کچھ ٹھیک سے گزرتا ہے بنا رہے ہیں. 244 00:18:33,220 --> 00:18:36,820 یہ بھی اسٹیک سائز یہیں initializes 245 00:18:36,820 --> 00:18:39,780 تو آپ کہ ابتدا کے بارے میں فکر کرنے کی ضرورت نہیں ہے. 246 00:18:39,780 --> 00:18:42,310 فرض ہے کہ یہ مناسب طریقے سے کیا گیا ہے initialized کر سکتے ہیں 247 00:18:42,310 --> 00:18:48,000 اب وقت آ گیا ہے کہ تم نے اسے پاپ تقریب میں تک رسائی کی طرف سے. 248 00:18:48,000 --> 00:18:53,530 کیا اس کا کوئی مطلب ہے؟ 249 00:18:53,530 --> 00:19:00,100 تو ہم یہاں جانا. دھکا کوڈ ہے. 250 00:19:00,100 --> 00:19:13,210 میں آپ کو 5 لوگ یا 10 منٹ دے دیں گے. 251 00:19:13,210 --> 00:19:15,690 اور، اگر آپ عبوری میں کوئی سوال ہے تو جب تم کوڈنگ رہے ہو 252 00:19:15,690 --> 00:19:17,710 براہ مہربانی انہیں بلند آواز سے پوچھیں. 253 00:19:17,710 --> 00:19:23,080 تو اگر آپ ایک سے چپکی ہوئی نقطہ حاصل کرنے کے لئے، صرف پوچھنا. 254 00:19:23,080 --> 00:19:26,030 مجھے بتائیں، اور سب کو معلوم ہے. 255 00:19:26,030 --> 00:19:28,160 اپنے پڑوسی کے ساتھ بھی کام کرتے ہیں. 256 00:19:28,160 --> 00:19:30,360 [ڈینیل] ہم صرف پاپ پر عملدرآمد کر رہے ہیں ابھی؟ >> صرف پاپ. 257 00:19:30,360 --> 00:19:34,200 اگرچہ آپ کو دھکا کے نفاذ کاپی اگر آپ چاہیں تو کر سکتے ہیں 258 00:19:34,200 --> 00:19:37,780 ٹیسٹنگ تاکہ کام کریں گے. 259 00:19:37,780 --> 00:19:41,940 کیونکہ یہ مشکل ہے میں ہو رہی چیز کی جانچ کرنے کے - 260 00:19:41,940 --> 00:19:49,030 یا، یہ مشکل ہے کہ پوپ آؤٹ چیزوں اسٹیک سے باہر کی جانچ اگر اس کے ساتھ شروع کرنے کے لئے کے لئے اسٹیک میں کچھ بھی نہیں ہے. 261 00:19:49,030 --> 00:19:55,250 >> واپس لوٹنے کرنا پاپ کیا ہے؟ اسٹیک کے سب سے اوپر سے عنصر. 262 00:19:55,250 --> 00:20:01,260 یہ عنصر اسٹیک کے سب سے اوپر کو حاصل کرنا ہے 263 00:20:01,260 --> 00:20:05,780 اور پھر اسٹیک کا سائز تدریج کریں 264 00:20:05,780 --> 00:20:07,810 اور اب آپ نے اوپر عناصر کو کھو دیا ہے. 265 00:20:07,810 --> 00:20:11,420 اور پھر آپ سب سے اوپر عنصر واپس. 266 00:20:11,420 --> 00:20:20,080 [طالب علم، unintelligible] 267 00:20:20,080 --> 00:20:28,810 [Hardison] تو کیا ہوتا ہے اگر تم نے؟ [طالب علم، unintelligible] 268 00:20:28,810 --> 00:20:34,000 کیا ختم ہو جاتا ہے اپ ہو رہا ہے تو آپ شاید یا تو تک رسائی حاصل کر رہے ہیں 269 00:20:34,000 --> 00:20:37,350 تو ایک عنصر ہے جو ابھی تک نہیں کیا گیا ہے initialized، اپنے حساب 270 00:20:37,350 --> 00:20:39,990 جہاں گزشتہ عنصر ہے بند ہے. 271 00:20:39,990 --> 00:20:46,260 تو، اگر آپ کو نوٹس، دھکا، ہم s.size عنصر میں ڈور تک رسائی حاصل کر رہے ہیں 272 00:20:46,260 --> 00:20:48,560 کیونکہ یہ ایک نیا اشاریہ ہے. 273 00:20:48,560 --> 00:20:51,460 یہ اسٹیک کے نئے اوپر ہے. 274 00:20:51,460 --> 00:21:01,100 پاپ میں جبکہ s.size اگلے خلائی ہونے جا رہا ہے، 275 00:21:01,100 --> 00:21:05,210 خلا ہے کہ آپ کے اسٹیک میں تمام عناصر کے سب سے اوپر پر ہے. 276 00:21:05,210 --> 00:21:10,050 تو ہی سب سے اوپر کے عنصر کو s.size نہیں ہے، 277 00:21:10,050 --> 00:21:14,930 بلکہ، یہ اس کے نیچے ہے. 278 00:21:14,930 --> 00:21:19,640 >> دوسرے جب آپ کوئی بات - پاپ میں، 279 00:21:19,640 --> 00:21:22,030 ہے آپ کے سائز تدریج کریں ہے. 280 00:21:22,030 --> 00:21:28,750 اگر آپ ہماری چھوٹی خاکہ میں واپس یہیں یاد ہے، 281 00:21:28,750 --> 00:21:30,980 سچ میں، صرف ایک چیز جو ہم ہو رہا دیکھا جب ہم نے بلایا پاپ 282 00:21:30,980 --> 00:21:36,150 تھا کہ سب سے پہلے اس کے سائز 2 سے گرا دیا، تو 1. 283 00:21:36,150 --> 00:21:42,620 پھر جب ہم ایک نئے عنصر کو دھکا دیا، یہ مناسب موقع پر جا سکتا ہے. 284 00:21:42,620 --> 00:21:49,610 [تلسی]، اگر s.size 2 ہے، تو یہ 2 عنصر نہیں جائیں گے 285 00:21:49,610 --> 00:21:54,400 اور اس کے بعد تم نے اس عنصر کو پاپ چاہتے ہیں؟ 286 00:21:54,400 --> 00:21:59,510 تو اگر ہم گئے - >> تو اس کو دوبارہ نظر. 287 00:21:59,510 --> 00:22:07,730 اگر یہ اس وقت ہماری اسٹیک ہے 288 00:22:07,730 --> 00:22:12,130 اور ہم کہتے ہیں پاپ، 289 00:22:12,130 --> 00:22:16,150 جس میں انڈیکس عنصر سب سے زیادہ سب سے زیادہ ہے؟ 290 00:22:16,150 --> 00:22:19,300 [تلسی] 2، لیکن یہ 3 پاپ جا رہا ہے. >> حق ہے. 291 00:22:19,300 --> 00:22:24,220 تو وہ ہے جہاں ہمارے حجم 3 ہے، لیکن ہم 2 انڈیکس میں عنصر پاپ کرنا چاہتے ہیں. 292 00:22:24,220 --> 00:22:29,900 یہ ایک ہے کہ آپ arrays صفر تخکرمن کے ساتھ کی طرف سے اس دور کی مخصوص قسم ہے. 293 00:22:29,900 --> 00:22:36,430 تو کیا تم تیسرا عنصر پاپ چاہتے ہیں، لیکن تیسرا عنصر صفحہ 3 پر نہیں ہے. 294 00:22:36,430 --> 00:22:39,430 اور وجہ ہم کہ مائنس 1 جب ہم آگے بڑھانے رہے ہیں کرنے کی ضرورت نہیں ہے 295 00:22:39,430 --> 00:22:44,120 کیونکہ اب، آپ کو نوٹس ہے کہ سب سے زیادہ سب سے زیادہ عنصر، 296 00:22:44,120 --> 00:22:47,600 اگر ہم اس وقت اسٹیک پر کچھ اور دھکا، 297 00:22:47,600 --> 00:22:50,360 ہم اس کے صفحہ 3 پر دھکا چاہتا. 298 00:22:50,360 --> 00:23:03,550 اور یہ صرف اس لئے ہوتا ہے کہ سائز اور سوچکانکوں جب آپ آگے بڑھانے رہے ہیں قطار. 299 00:23:03,550 --> 00:23:06,960 >> ایک کام کر اسٹیک عملدرآمد کس کے پاس ہے؟ 300 00:23:06,960 --> 00:23:09,690 آپ کو ایک کام کر رہے ہیں ایک اسٹیک ہے. کیا آپ پاپ ابھی تک کام کر رہی ہے؟ 301 00:23:09,690 --> 00:23:11,890 [ڈینیل] جی ہاں. مجھے ایسا لگتا ہے. 302 00:23:11,890 --> 00:23:14,610 >> پروگرام چلا رہا ہے اور faulting نہیں seg ہے، اسے باہر پرنٹ ہے؟ 303 00:23:14,610 --> 00:23:17,520 کیا یہ "کامیاب" کو پرنٹ جب آپ اسے چلاتے ہیں؟ 304 00:23:17,520 --> 00:23:22,630 جی ہاں. ، بنائیں کتابیں رکھی، اسے چلانے، اگر یہ "کامیاب" پرنٹ اور تیزی نہیں جاتے 305 00:23:22,630 --> 00:23:26,000 تو پھر اچھا ہے. 306 00:23:26,000 --> 00:23:34,070 ٹھیک ہے. دو آلات پر ختم واقعی جلدی جاؤ، 307 00:23:34,070 --> 00:23:46,100 اور ہم اس کے ذریعے چل گے. 308 00:23:46,100 --> 00:23:51,110 اگر ہم نے کیا پاپ کے ساتھ ہو رہا ہے یہاں دیکھو، 309 00:23:51,110 --> 00:23:55,220 ڈینیل، پہلی بات یہ ہے کہ تم نے کیا کیا تھا؟ 310 00:23:55,220 --> 00:23:58,850 [] ڈینیل اگر s.size 0 سے بڑا ہے. 311 00:23:58,850 --> 00:24:03,120 [Hardison] ٹھیک ہے. اور تم نے ایسا کیوں کیا؟ 312 00:24:03,120 --> 00:24:05,610 [ڈینیل] اس بات کا یقین کر لیں کہ اسٹیک کے اندر کچھ تھا بنانے کے لئے. 313 00:24:05,610 --> 00:24:10,950 [Hardison] حق. آپ کو اس بات کا یقین کر لیں کہ کہ s.size 0 سے بڑا ہے بنانے کے لئے کی جانچ کرنا چاہتے ہیں؛ 314 00:24:10,950 --> 00:24:13,280 دوسری صورت میں، کیا آپ کو ہوا ہے کرنا چاہتے ہیں؟ 315 00:24:13,280 --> 00:24:16,630 [ڈینیل] واپس شہوت انگیز null؟ بالکل >> واپس، شہوت انگیز null. 316 00:24:16,630 --> 00:24:20,740 تو s.size اگر 0 سے بڑا ہے. تو ہم کس بات کرنے جا رہے ہو؟ 317 00:24:20,740 --> 00:24:25,890 ہمیں کیا کرنا ہے اگر اسٹیک خالی نہیں ہے؟ 318 00:24:25,890 --> 00:24:31,210 [سٹیلا] آپ سائز تدریج کریں؟ >> تم سائز تدریج کریں، ٹھیک ہے. 319 00:24:31,210 --> 00:24:34,440 تو کس طرح تم نے ایسا کیوں کیا؟ >> s.size - 320 00:24:34,440 --> 00:24:37,030 [Hardison] عظیم. اور پھر تم نے کیا کیا ہے؟ 321 00:24:37,030 --> 00:24:44,140 [سٹیلا] اور اس کے بعد میں نے واپسی s.string نے کہا کہ [s.size]. 322 00:24:44,140 --> 00:24:48,560 [Hardison] عظیم. 323 00:24:48,560 --> 00:24:51,940 ورنہ تم واپس شہوت انگیز null. جی ہاں، سیم؟ 324 00:24:51,940 --> 00:24:55,510 [سیم] کیوں اس کی ضرورت ہے s.size 1 + ہو نہیں کرتا؟ 325 00:24:55,510 --> 00:24:58,430 [Hardison] 1 پلس؟ >> جی ہاں. >> سمجھے. 326 00:24:58,430 --> 00:25:00,980 [سیم] میں نے سوچا تھا کہ کیونکہ آپ کو 1 باہر لے جا رہے ہیں، 327 00:25:00,980 --> 00:25:04,290 تو آپ نہیں ہے کہ وہ کے لئے کہا پر آرہے ہیں جا رہے ہیں. 328 00:25:04,290 --> 00:25:09,400 [Hardison] اور 0 سوچکانکوں کے اس سارے معاملے کے ساتھ کیا ہم بات کر رہے تھے. 329 00:25:09,400 --> 00:25:11,380 لہذا اگر ہم یہاں واپس زوم. 330 00:25:11,380 --> 00:25:15,650 اگر ہم نے اس آدمی پر نظر ٹھیک یہاں آپ دیکھ سکتے ہیں کہ جب ہم پاپ کر سکتے ہیں، 331 00:25:15,650 --> 00:25:19,340 ہم 2 صفحہ عنصر پوپ آؤٹ کر رہے ہیں. 332 00:25:19,340 --> 00:25:25,200 >> تو پہلے ہم اپنے سائز کو کم، تو ہمارے سائز ہمارے انڈیکس سے میل کھاتا ہے. 333 00:25:25,200 --> 00:25:39,650 اگر ہم فونز تدریج نہیں ہے سب سے پہلے تو ہم -1 اور پھر تدریج کریں سائز کرنا ہے. 334 00:25:39,650 --> 00:25:45,270 بہت اچھا ہے. سب اچھا ہے؟ 335 00:25:45,270 --> 00:25:47,530 اس میں آپ کا کوئی سوال ہے؟ 336 00:25:47,530 --> 00:25:54,050 مختلف طریقوں کی ایک بڑی تعداد کے ساتھ ساتھ یہ لکھنے کے لئے ہیں. 337 00:25:54,050 --> 00:26:03,290 اصل میں، ہم کچھ بھی کر سکتے ہیں - ہم نے ایک لائنر کر سکتے ہیں. 338 00:26:03,290 --> 00:26:05,770 ہم نے ایک ایک لائن کی واپسی کر سکتے ہیں. 339 00:26:05,770 --> 00:26:12,980 تو ہم اس سے پہلے کہ ہم اس فعل پر واپس اصل میں تدریج کریں کر سکتے ہیں. 340 00:26:12,980 --> 00:26:18,320 s.size سے پہلے میں سب کچھ - تو ڈال ہے. 341 00:26:18,320 --> 00:26:22,060 یہ لائن بہت گھنے کرتا ہے. 342 00:26:22,060 --> 00:26:30,940 کہاں کے درمیان فرق - کے سائز اور s.size -. 343 00:26:30,940 --> 00:26:40,130 ہے کہ یہ postfix - وہ اس postfix کہتے ہیں کیونکہ - آتا ہے کے بعد s.size - 344 00:26:40,130 --> 00:26:47,430 کا مطلب یہ ہے کہ کی s.size انڈیکس کو تلاش کرنے کے لئے مقاصد کے لئے کا تعین کیا جاتا ہے 345 00:26:47,430 --> 00:26:50,410 کے طور پر وہ اس وقت ہے جب اس لائن کو پھانسی ہے، 346 00:26:50,410 --> 00:26:54,290 اور پھر یہ - ہوتا ہے لائن کے پھانسی ہو جاتا ہے کے بعد کیا ہے. 347 00:26:54,290 --> 00:27:00,340 صفحہ s.size میں عنصر کے بعد حاصل کیا ہے. 348 00:27:00,340 --> 00:27:07,260 اور یہ نہیں ہے جو ہم چاہتے ہیں، کیونکہ ہم تدریج کریں سب سے پہلے ہونا چاہتے ہیں. 349 00:27:07,260 --> 00:27:10,990 Othewise، ہم صف تک رسائی حاصل کرنے جا رہے ہیں، مؤثر طریقے سے، حد سے باہر ہے. 350 00:27:10,990 --> 00:27:16,850 ہم میں سے ایک ہے کہ ہم واقعی تک رسائی حاصل کرنا چاہتے ہیں کے اوپر عنصر تک رسائی حاصل کرنے جا رہے ہیں. 351 00:27:16,850 --> 00:27:23,840 جی ہاں، سیم؟ >> یہ تیز یا کم RAM ایک لائن یا نہیں کرنے کے لئے استعمال ہوتا ہے؟ 352 00:27:23,840 --> 00:27:29,620 [Hardison] سچ میں، یہ واقعی انحصار کرتا ہے. 353 00:27:29,620 --> 00:27:34,220 [سیم، unintelligible] >> جی ہاں، یہ انحصار کرتا ہے. آپ سنکلک ترکیبیں کر سکتے ہیں 354 00:27:34,220 --> 00:27:41,580 سنکلک کہ اس کو تسلیم کرنے پر حاصل کرنے کے لئے، عام طور پر، میں کلپنا. 355 00:27:41,580 --> 00:27:44,840 >> تو ہم اس سنکلک اصلاحات کی چیزوں کے بارے میں تھوڑا سا ذکر کیا ہے 356 00:27:44,840 --> 00:27:47,400 کہ آپ کو انتخاب میں کر سکتے ہیں، 357 00:27:47,400 --> 00:27:50,580 اور اس بات کی قسم ہے کہ سنکلک جاننے کے قابل ہو سکتا ہے ہے، 358 00:27:50,580 --> 00:27:54,710 اوہ طرح، ارے، شاید میں ایک آپریشن میں یہ سب کر سکتے ہیں، 359 00:27:54,710 --> 00:27:59,420 RAM سے سائز متغیر لوڈ کرنے کی مخالفت کی تھی، 360 00:27:59,420 --> 00:28:03,770 یہ decrementing، اسے ذخیرہ کرنے واپس، اور اس کے بعد اسے دوبارہ لوڈ کرنے کے واپس 361 00:28:03,770 --> 00:28:08,000 اس آپریشن کے باقی پر کارروائی کرنے سے. 362 00:28:08,000 --> 00:28:10,710 لیکن عام طور پر، نہیں، اس طرح کی بات کی نہیں ہے 363 00:28:10,710 --> 00:28:20,770 جو آپ کے پروگرام تیزی سے نمایاں طور پر بنانے کے لئے جا رہا ہے. 364 00:28:20,770 --> 00:28:26,000 stacks پر کوئی سوال؟ 365 00:28:26,000 --> 00:28:31,360 >> تو آگے بڑھانے اور پوپ آؤٹ. اگر تم لوگ ہیکر ایڈیشن کرنے کی کوشش کرنا چاہتے ہیں، 366 00:28:31,360 --> 00:28:33,660 جو ہم ہیکر ایڈیشن میں کیا ہے اصل میں چلا گیا ہے 367 00:28:33,660 --> 00:28:37,670 کیا اور اس اسٹیک کو متحرک طور پر بڑھ. 368 00:28:37,670 --> 00:28:43,190 چیلنج بنیادی طور پر اپ یہاں دھکا تقریب میں، 369 00:28:43,190 --> 00:28:48,820 یہ اعداد و شمار کو کس طرح اس صف بڑھ 370 00:28:48,820 --> 00:28:52,450 کے طور پر آپ اسٹیک پر زیادہ سے زیادہ عناصر کو آگے بڑھانے رکھو. 371 00:28:52,450 --> 00:28:56,000 یہ اصل میں ہے بہت زیادہ اضافی کوڈ نہیں ہے. 372 00:28:56,000 --> 00:29:00,080 آپ وہاں میں malloc پر کالز کو مناسب طریقے سے حاصل کی یاد ہے - بس ایک کال 373 00:29:00,080 --> 00:29:03,310 کر اندازہ لگا جب آپ realloc کو فون کرنے جا رہے ہیں. 374 00:29:03,310 --> 00:29:06,090 یہ ایک تفریح ​​چیلنج ہے اگر آپ کو دلچسپی ہو. 375 00:29:06,090 --> 00:29:11,550 >> لیکن کچھ وقت کے لئے دو، پر منتقل، اور چلو قطار کے بارے میں بات کریں. 376 00:29:11,550 --> 00:29:15,680 کے ذریعے طومار یہاں. 377 00:29:15,680 --> 00:29:19,340 قطار اسٹیک کے ایک قریبی بھائی ہے. 378 00:29:19,340 --> 00:29:25,380 تو اسٹیک میں ان باتوں کا آخر میں دیا گیا 379 00:29:25,380 --> 00:29:28,810 پہلے تو بازیافت تھے. 380 00:29:28,810 --> 00:29:33,600 ہم یہ آخری، پہلی، یا LIFO، آرڈر ہے. 381 00:29:33,600 --> 00:29:38,390 جبکہ قطار میں، آپ کو جب آپ کو لائن میں کھڑا کر رہے ہیں سے توقع تھا کے طور پر، 382 00:29:38,390 --> 00:29:41,980 سب سے پہلے لائن میں حاصل کرنے کے لئے، سب سے پہلے قطار میں حاصل کرنے کی بات، 383 00:29:41,980 --> 00:29:47,630 پہلی بات یہ ہے کہ قطار سے حاصل ہو جاتا ہے ہے. 384 00:29:47,630 --> 00:29:51,490 قطار بھی اکثر جب ہم گراف کے ساتھ کام کر رہے ہیں کیا کرتے تھے، 385 00:29:51,490 --> 00:29:55,560 جیسا کہ ہم مختصر طور پر stacks کے ساتھ بات کی، 386 00:29:55,560 --> 00:30:00,260 اور قطار بھی دوسری چیزوں کا ایک گروپ کے لئے ہاتھ ہیں. 387 00:30:00,260 --> 00:30:06,180 ایک بات یہ ہے کہ اکثر آتا ہے کو برقرار رکھنے کے، مثال کے طور پر کرنے کی کوشش کر رہا ہے، 388 00:30:06,180 --> 00:30:12,310 عناصر میں سے ایک کے مطابق کی فہرست. 389 00:30:12,310 --> 00:30:17,650 اور تم ایک صف کے ساتھ یہ کر سکتے ہیں. آپ چیزوں کی ایک صف میں ایک کے مطابق کی فہرست کو برقرار رکھنے کے لئے کر سکتے ہیں، 390 00:30:17,650 --> 00:30:20,650 لیکن جہاں یہ مشکل ہو جاتا ہے ہے تو آپ کو ہمیشہ تلاش کرنے کے لئے ہے 391 00:30:20,650 --> 00:30:26,160 اگلی بات داخل کرنے کے لئے مناسب جگہ ہے. 392 00:30:26,160 --> 00:30:28,250 تو اگر آپ 10 کے ذریعے کی تعداد کے ایک صف، 1 ہے، 393 00:30:28,250 --> 00:30:31,630 اور پھر آپ کو 100 کے ذریعے تمام 1 کی تعداد کو کہ بڑھانا چاہتے ہیں، 394 00:30:31,630 --> 00:30:33,670 اور آپ نے ان کی تعداد کو بے ترتیب ترتیب میں ہو رہی ہے اور سب کچھ رکھنے کے لئے کی کوشش کر رہے 395 00:30:33,670 --> 00:30:40,650 جیسا کہ آپ کے ذریعے جانا کے مطابق، آپ کو ختم منتقلی کا ایک بہت کچھ کرنے کے لئے. 396 00:30:40,650 --> 00:30:43,910 قطار اور بنیادی ڈیٹا کے ڈھانچے کی کچھ اقسام کی کچھ اقسام کے ساتھ، 397 00:30:43,910 --> 00:30:46,670 آپ اسے کافی آسان اصل میں رکھ سکتے ہیں. 398 00:30:46,670 --> 00:30:50,640 تم کچھ اور شامل تو ساری بات ہر وقت ھسکانا کی ضرورت نہیں ہے. 399 00:30:50,640 --> 00:30:56,770 نہ ہی آپ کے ارد گرد اندرونی عناصر کے منتقلی کے ایک بہت کچھ کرنے کی ضرورت ہے. 400 00:30:56,770 --> 00:31:02,990 سیکشن کوڈ میں queue.c میں بھی - جب ہم ایک قطار میں نظر، آپ نے یہ دیکھا - 401 00:31:02,990 --> 00:31:10,950 struct کہ ہم نے تمہیں دیا ہے واقعی struct کہ ہم آپ کو ایک اسٹیک کے لیے دی اسی طرح ہے. 402 00:31:10,950 --> 00:31:13,770 >> اس سے مستثنی ہے، اور یہ کہ ایک رعایت 403 00:31:13,770 --> 00:31:21,700 یہ ہے کہ ہم اس اضافی بلایا سر عددی ہے، 404 00:31:21,700 --> 00:31:28,120 اور یہاں سر قطار کے سربراہ کا ٹریک رکھنے کے لئے ہے، 405 00:31:28,120 --> 00:31:32,160 یا قطار میں پہلا عنصر. 406 00:31:32,160 --> 00:31:37,470 ایک اسٹیک کے ساتھ، ہم نے عناصر کے یاد رکھنے کی ہے کہ ہم تھے کی بازیافت کے بارے میں کرنے کے قابل تھے، 407 00:31:37,470 --> 00:31:40,800 یا اسٹیک کے سب سے اوپر، صرف سائز کا استعمال کرتے ہوئے، 408 00:31:40,800 --> 00:31:44,220 جبکہ ایک قطار کے ساتھ، ہم مخالف ختم ہو جاتا ہے کے ساتھ نمٹنے کے لئے کر رہے ہیں. 409 00:31:44,220 --> 00:31:49,000 ہم آخر میں چیزوں سمت کی کوشش کر رہے ہیں، لیکن پھر سامنے سے چیزیں واپس. 410 00:31:49,000 --> 00:31:54,640 تو مؤثر طریقے سے، سر، ہم قطار کے شروع کی فہرست ہے، 411 00:31:54,640 --> 00:31:58,920 اور سائز ہمیں قطار کے آخر کے انڈیکس دیتا ہے 412 00:31:58,920 --> 00:32:03,730 تاکہ ہم سر سے چیزیں بازیافت اور دم پر چیزیں شامل کر سکتے ہیں. 413 00:32:03,730 --> 00:32:06,890 جبکہ اسٹیک کے ساتھ، ہم نے صرف کبھی اسٹیک کے سب سے اوپر کے ساتھ نمٹنے کر رہے تھے. 414 00:32:06,890 --> 00:32:08,900 ہم نے اسٹیک کے سب سے نیچے دیئے تک رسائی حاصل کرنے کے لئے کبھی نہیں. 415 00:32:08,900 --> 00:32:12,220 ہم صرف سب سے اوپر چیزوں میں شامل کیا ہے اور چیزوں کے سب سے اوپر سے چھٹی لی 416 00:32:12,220 --> 00:32:17,470 تو ہم ہمارے struct کے اندر اضافی فیلڈ کی ضرورت نہیں تھی. 417 00:32:17,470 --> 00:32:20,590 کیا اس کا عام طور پر مطلب ہے؟ 418 00:32:20,590 --> 00:32:27,670 ٹھیک ہے. جی ہاں، شارلٹ؟ [شارلٹ، unintelligible] 419 00:32:27,670 --> 00:32:32,660 [Hardison] یہ ایک بڑا سوال ہے، اور یہ کہ ایک لیکچر میں آیا تھا. 420 00:32:32,660 --> 00:32:36,290 شاید چند مثالیں کے ذریعے چلنے کی نمائندگی کرتی کیوں 421 00:32:36,290 --> 00:32:41,400 ہم ڈور قطار کے سربراہ کے طور پر [0] استعمال نہیں کرنا چاہتے. 422 00:32:41,400 --> 00:32:46,770 >> تو یہ تصور کریں کہ ہم اپنی قطار ہے، ہم اس قطار کو فون کرنے جا رہے ہیں. 423 00:32:46,770 --> 00:32:49,210 آغاز میں، جب ہم صرف اس مثال ہے، 424 00:32:49,210 --> 00:32:53,330 جب ہم صرف یہ اعلان کیا ہے، ہم کچھ initialized نہیں ہے. 425 00:32:53,330 --> 00:32:56,790 یہ سب ردی کی ٹوکری میں ہے. تو چاہے ہم سے یقین ہے کہ ہم اس کی ابتدا کرنے کے لئے کرنا چاہتے ہیں 426 00:32:56,790 --> 00:33:00,950 دونوں سائز اور سر کے شعبوں 0، مناسب کچھ. 427 00:33:00,950 --> 00:33:05,770 ہم آگے بھی اور ہمارے قطار میں عناصر شہوت انگیز null جا سکتا ہے. 428 00:33:05,770 --> 00:33:09,930 اور اس آریھ فٹ نوٹس، کہ اب ہمارے قطار تین عناصر ہی کر سکتے ہیں؛ 429 00:33:09,930 --> 00:33:13,150 جبکہ ہمارے اسٹیک چار روک سکتا ہے، ہماری قطار صرف تین پکڑ سکتا ہوں. 430 00:33:13,150 --> 00:33:18,680 اور یہ صرف آریھ فٹ بنانے کے لئے. 431 00:33:18,680 --> 00:33:26,150 پہلی بات یہ ہے کہ یہاں ہوتا ہے ہم سٹرنگ enqueue "ہیلو". 432 00:33:26,150 --> 00:33:30,380 اور جیسا کہ ہم نے اسٹیک کے ساتھ کیا تھا، بہت مختلف یہاں کچھ بھی نہیں 433 00:33:30,380 --> 00:33:39,230 ہم ڈور [0] 1 اور ہماری حجم میں اضافہ سٹرنگ پھینک دیتے ہیں. 434 00:33:39,230 --> 00:33:42,720 ہم enqueue "الوداع"، اس پر ڈال دیا جاتا ہے. 435 00:33:42,720 --> 00:33:45,870 تو یہ سب سے زیادہ حصہ کے لئے ایک اسٹیک کی طرح لگتا ہے. 436 00:33:45,870 --> 00:33:53,230 حجم رکھتا ہے ہم سے شروع کیا یہاں نئے عنصر، نئے عنصر، اوپر جا رہا ہے. 437 00:33:53,230 --> 00:33:56,330 اس وقت کیا ہوتا ہے جب ہم کچھ dequeue کرنا چاہتے ہیں؟ 438 00:33:56,330 --> 00:34:01,280 جو جب ہم dequeue چاہتے ہیں، عنصر ہے کہ ہم dequeue کرنا چاہتے ہیں؟ 439 00:34:01,280 --> 00:34:04,110 [تلسی] سلک [0]. زیرو. >> بالکل صحیح، تلسی،. 440 00:34:04,110 --> 00:34:10,960 ہم پہلے سٹرنگ، اس میں سے ایک، "ہیلو" سے چھٹکارا حاصل کرنے کے لئے چاہتے ہیں. 441 00:34:10,960 --> 00:34:13,170 تو دوسری بات یہ ہے کہ تبدیل کیا تھا؟ 442 00:34:13,170 --> 00:34:17,010 نوٹس اسٹیک کے جب ہم نے کچھ popped، ہم صرف سائز کو تبدیل کر دیا گیا، 443 00:34:17,010 --> 00:34:22,080 لیکن یہاں، ہم چیزیں ہیں جو تبدیلی کے ایک جوڑے کی ہے. 444 00:34:22,080 --> 00:34:27,440 نہ صرف سائز میں تبدیلی، لیکن سر تبدیلیاں کرتا ہے. 445 00:34:27,440 --> 00:34:31,020 اس کی شارلٹ پہلے نقطہ پر واپس جا رہا ہے: 446 00:34:31,020 --> 00:34:38,699 ہم اس سر ساتھ ہی کیوں ہے؟ 447 00:34:38,699 --> 00:34:42,110 کیا یہ احساس، شارلٹ؟ >> کی ہے. 448 00:34:42,110 --> 00:34:47,500 [Hardison] ہے؟ تو جب ہم dequeued کیا ہوا؟ 449 00:34:47,500 --> 00:34:54,340 کیا سر کیا کہ اب دلچسپ ہے؟ 450 00:34:54,340 --> 00:34:56,449 [شارلٹ] اوہ، کیونکہ اس کو تبدیل کر دیا گیا ہے - ٹھیک ہے. میں دیکھتا ہوں. 451 00:34:56,449 --> 00:35:02,090 کیونکہ سر - جہاں سر جگہ شرائط میں تبدیلی کی طرف اشارہ کرتے ہوئے ہے. 452 00:35:02,090 --> 00:35:07,200 یہ اب نہیں ہمیشہ صفر انڈیکس ہے. >> جی ہاں، بالکل. 453 00:35:07,200 --> 00:35:17,660 کیا ہوا تھا اگر اعلی عنصر dequeueing 454 00:35:17,660 --> 00:35:20,590 کیا گیا تھا اور ہم اس سر کے میدان نہیں تھا 455 00:35:20,590 --> 00:35:26,880 کیونکہ ہم ہمیشہ 0 سوچکانک میں ہمارے قطار کے سربراہ میں اس جملے کو بلا 456 00:35:26,880 --> 00:35:30,170 تو پھر ہم باقی قطار کے نیچے منتقل ہوتا ہے. 457 00:35:30,170 --> 00:35:36,010 ہم ڈور سے منتقل "الوداع" [1] ڈور [0] پڑے گا. 458 00:35:36,010 --> 00:35:38,760 اور ڈور [2] نیچے پر ڈور [1]. 459 00:35:38,760 --> 00:35:43,050 اور ہم عناصر کی مکمل فہرست کے لیے یہ کرنا پڑے گا، 460 00:35:43,050 --> 00:35:45,110 عناصر کی پوری صف. 461 00:35:45,110 --> 00:35:50,490 اور یہ کہ جب ہم ایک صف کے ساتھ کر رہے ہیں، بہت مہنگا ہو جاتا ہے. 462 00:35:50,490 --> 00:35:53,340 تو یہاں، یہ کوئی بڑی بات نہیں ہے. ہم صرف ہمارے صف میں تین عناصر ہیں. 463 00:35:53,340 --> 00:35:57,230 لیکن اگر ہم نے ایک ہزار عناصر کی قطار یا ایک ملین عناصر تھے، 464 00:35:57,230 --> 00:36:00,060 اور پھر اچانک، ہم dequeue کا ایک گروپ بنانے شروع ایک لوپ میں سے ملاقات، 465 00:36:00,060 --> 00:36:03,930 چیزیں واقعی نیچے کے طور پر یہ سب کچھ شفٹوں نیچے مسلسل سست جا رہے ہیں. 466 00:36:03,930 --> 00:36:07,320 تم جانتے ہو، 1، 1 تبدیلی، کی طرف سے 1 کی طرف سے شفٹ منتقل 1 کی طرف سے تبدیلی. 467 00:36:07,320 --> 00:36:13,650 اس کے بجائے، ہم اس سر کا استعمال کرتے ہیں، ہم اسے ایک "پوائنٹر'' کہتے ہیں حالانکہ یہ واقعی نہیں پوائنٹر 468 00:36:13,650 --> 00:36:16,430 سخت معنوں میں یہ ایک پوائنٹر قسم نہیں ہے. 469 00:36:16,430 --> 00:36:19,410 یہ ایک int * یا چار * یا اس طرح کچھ بھی نہیں ہے. 470 00:36:19,410 --> 00:36:28,930 لیکن اس کی طرف اشارہ کرتے ہوئے یا ہماری قطار کے سربراہ کا اشارہ ہے. جی ہاں؟ 471 00:36:28,930 --> 00:36:38,800 >> [Student کی] کیسے dequeue معلوم ہے صرف پاپ سر میں جو کچھ بھی ہے؟ 472 00:36:38,800 --> 00:36:43,620 [Hardison] کیسے dequeue کس طرح سر میں جو کچھ بھی ہے پاپ کو جاننا ہے؟ >> ٹھیک ہے، جی ہاں. 473 00:36:43,620 --> 00:36:49,050 >> کیا اس کی طرف دیکھ رہی ہے صرف جو سر میدان پر مقرر کیا گیا ہے. 474 00:36:49,050 --> 00:36:52,710 تو اس پہلی صورت میں اگر ہم یہاں دیکھو، 475 00:36:52,710 --> 00:36:55,690 ہمارے سر 0، انڈیکس 0 ہے. >> حق ہے. 476 00:36:55,690 --> 00:37:00,500 [] Hardison تو یہ صرف کا کہنا ہے کہ ٹھیک ہے، ٹھیک ہے، 0 انڈیکس میں عناصر، سٹرنگ "ہیلو"، 477 00:37:00,500 --> 00:37:03,050 ہمارے قطار کے سربراہ عنصر ہے. 478 00:37:03,050 --> 00:37:05,570 تو ہم اس آدمی کو dequeue جا رہے ہیں. 479 00:37:05,570 --> 00:37:09,800 اور یہ عنصر جو فون کرنے والے کو واپس ہو جاتا ہے ہو جائے گا. 480 00:37:09,800 --> 00:37:14,540 جی ہاں، سعد؟ >> تو سر بنیادی طور پر متعین کرتا ہے - جہاں آپ یہ انڈیکس میں جا رہے ہیں؟ 481 00:37:14,540 --> 00:37:17,750 یہ اس کا آغاز ہے؟ >> جی ہاں. ٹھیک ہے. >> 482 00:37:17,750 --> 00:37:22,900 [Hardison] جو ہمارے صف کے لئے نئے آغاز بننے. 483 00:37:22,900 --> 00:37:28,930 تو تمہیں کیا کرنا ہے ہے، جب تم سے کچھ dequeue صفحہ q.head میں عناصر تک رسائی حاصل، 484 00:37:28,930 --> 00:37:32,240 اور یہ کہ عنصر کہ آپ dequeue کرنا چاہتے ہیں کریں گے. 485 00:37:32,240 --> 00:37:34,930 تم بھی سائز تدریج کریں ہے. 486 00:37:34,930 --> 00:37:39,430 ہم تھوڑا سا میں چیزیں کہاں اس کے ساتھ تھوڑا مشکل حاصل کریں گے. 487 00:37:39,430 --> 00:37:46,520 ہم dequeue، اور اب، اگر ہم دوبارہ enqueue، 488 00:37:46,520 --> 00:37:51,300 ہم enqueue ہے کہاں؟ 489 00:37:51,300 --> 00:37:55,000 اگلے عنصر ہمارے قطار میں کہاں ہے؟ 490 00:37:55,000 --> 00:37:57,980 کہو کہ ہم سٹرنگ "CS" enqueue کرنا چاہتے ہیں. 491 00:37:57,980 --> 00:38:02,240 یہ جو انڈیکس میں جائیں گے؟ [طلباء] سلک [2]. دو. >> 492 00:38:02,240 --> 00:38:04,980 2 اور نہیں 0 کیوں؟ 493 00:38:04,980 --> 00:38:13,570 [تلسی] کیونکہ اب سر 1 ہے، تو ہے کہ فہرست کے آغاز کی طرح ہے؟ 494 00:38:13,570 --> 00:38:21,220 [Hardison] حق. اور فہرست کے آخر کیا کرنا ہے؟ 495 00:38:21,220 --> 00:38:23,290 ہم ہمارے قطار کے آخر ظاہر استعمال کر رہے ہیں؟ 496 00:38:23,290 --> 00:38:25,970 سر ہمارے قطار کے سربراہ، ہمارے قطار کے شروع ہے. 497 00:38:25,970 --> 00:38:29,530 ہمارے قطار کے آخر کیا ہے؟ [طلباء] سائز. >> سائز، بالکل. 498 00:38:29,530 --> 00:38:36,360 تو ہمارے نئے عناصر سائز میں، اور عناصر کہ ہم لے سر پر اتر آئے. 499 00:38:36,360 --> 00:38:45,390 جب ہم اگلے عنصر enqueue، ہم اس کے سائز میں ڈال رہے ہیں. 500 00:38:45,390 --> 00:38:48,530 [Student کی] اس سے پہلے کہ آپ ڈال دیا کہ اگرچہ میں، سائز 1 تھا، ٹھیک ہے؟ 501 00:38:48,530 --> 00:38:55,690 [Hardison] حق. تو سائز میں کافی نہیں. سائز +، +1 نہیں بلکہ + سر. 502 00:38:55,690 --> 00:38:59,990 کیونکہ ہم نے سر رقم کی طرف سے سب کچھ منتقل کر دیا گیا ہے. 503 00:38:59,990 --> 00:39:14,270 تو یہاں، اب ہم 1 سائز کے ایک قطار ہے کہ 1 صفحہ میں شروع ہوتی ہے ہے. 504 00:39:14,270 --> 00:39:20,730 دم 2 صفحہ ہے. جی ہاں؟ 505 00:39:20,730 --> 00:39:25,780 >> [Student کی] کیا ہوتا ہے جب dequeue ڈور [0]، اور میموری میں 'ڈور کے دورانیے 506 00:39:25,780 --> 00:39:29,420 صرف خالی، بنیادی طور پر، ہو یا بھول ہے؟ 507 00:39:29,420 --> 00:39:34,700 [Hardison] جی ہاں. اس لحاظ سے، ہم صرف انہیں بھول رہے ہو. 508 00:39:34,700 --> 00:39:42,640 اگر ہم ان کی کاپیاں ذخیرہ کرنے کر رہے تھے - 509 00:39:42,640 --> 00:39:46,310 کئی ڈیٹا کے ڈھانچے عناصر کے اپنے اپنے کاپیاں اکثر ذخیرہ گا 510 00:39:46,310 --> 00:39:51,760 تاکہ آنکڑا ڈھانچہ کے انتظام شخص کو فکر کرنے کی ضرورت نہیں ہے 511 00:39:51,760 --> 00:39:53,650 جہاں ان تمام لوگوں اشارہ جا رہے ہیں کے بارے میں. 512 00:39:53,650 --> 00:39:56,000 آنکڑا ڈھانچہ کی ڈگری حاصل کی، سب کچھ پر تمام کاپیاں کی ڈگری حاصل کی ہے، 513 00:39:56,000 --> 00:39:59,580 اس بات کا یقین کر لیں کہ کہ سب کچھ مناسب طور پر برقرار رہتا ہے. 514 00:39:59,580 --> 00:40:03,140 تاہم، اس معاملے میں، ان اعداد و شمار کے ڈھانچے،، سادگی کے لئے 515 00:40:03,140 --> 00:40:05,580 کچھ کی کاپیاں ہے کہ ہم نے ان میں ذخیرہ کرنے کر رہے ہیں نہیں کر رہے ہیں. 516 00:40:05,580 --> 00:40:08,630 [Student کی] تو یہ ایک مسلسل صف ہے - >> جی ہاں. 517 00:40:08,630 --> 00:40:14,350 اگر ہم جو تعریف اس ڈھانچے کی تھی واپس دیکھو، یہ ہے. 518 00:40:14,350 --> 00:40:19,110 یہ صرف ایک معیاری صف ہے جیسا کہ تم نے دیکھا ہے، 519 00:40:19,110 --> 00:40:24,280 چار * کے ایک صف. 520 00:40:24,280 --> 00:40:26,340 کہ کیا -؟ >> جی ہاں، میں صرف سوچ رہا تھا 521 00:40:26,340 --> 00:40:29,130 اگر آپ میموری آخر میں، ایک مخصوص حد تک چلانے کے، گے 522 00:40:29,130 --> 00:40:32,330 اگر آپ کے پاس آپ کی صف میں ان تمام خالی مقامات ہیں؟ 523 00:40:32,330 --> 00:40:36,390 [Hardison] جی ہاں، یہ ایک اچھی بات ہے. 524 00:40:36,390 --> 00:40:41,530 >> اگر ہم اب کیا ہوا ہے اس وقت نظر آتے ہیں، 525 00:40:41,530 --> 00:40:46,350 ہم نے بھر ہمارا قطار ہے، جیسا لگتا ہے. 526 00:40:46,350 --> 00:40:50,390 لیکن ہم سچ میں نہیں ہے ہمارے قطار بھر 527 00:40:50,390 --> 00:40:57,710 کیونکہ ہم ایک قطار ہے کہ 2 سائز ہے ہے، لیکن اس کی 1 صفحہ میں شروع ہوتی ہے. 528 00:40:57,710 --> 00:41:02,160 کیونکہ اس میں ہے جہاں ہمارے سر پوائنٹر ہے. 529 00:41:02,160 --> 00:41:08,400 کہ جیسا کہ تم کہہ رہے تھے، ڈور میں عناصر [0] 0 انڈیکس میں، واقعی وہاں نہیں ہے. 530 00:41:08,400 --> 00:41:10,450 یہ ہماری قطار میں نہیں ہے. 531 00:41:10,450 --> 00:41:16,460 ہم بس میں جانا ہے اور جب ہم اس dequeued ادلیکھت کی زحمت نہیں تھا. 532 00:41:16,460 --> 00:41:18,700 تو اگرچہ ایسا لگتا ہے جیسے ہم میموری سے باہر چلائے گئے، ہم سچ میں نہیں ہے. 533 00:41:18,700 --> 00:41:23,270 یہ جگہ ہمارے لئے استعمال کرنے کے لئے دستیاب ہے. 534 00:41:23,270 --> 00:41:29,310 مناسب رویہ، اگر ہم سب سے پہلے dequeue کچھ کرنے کی کوشش کر رہے تھے 535 00:41:29,310 --> 00:41:34,420 "الوداع" پسند ہے، پاپ، الوداع دور کریں گے. 536 00:41:34,420 --> 00:41:38,460 اب ہماری قطار 2 انڈیکس میں شروع ہوتی ہے اور 1 سائز کے ہے. 537 00:41:38,460 --> 00:41:42,240 اور اب اگر ہم اور کچھ enqueue دوبارہ کوشش کریں، 50 کا کہنا ہے کہ، 538 00:41:42,240 --> 00:41:47,880 اس جگہ پر 50 0 انڈیکس میں جانا چاہئے 539 00:41:47,880 --> 00:41:51,270 کیونکہ وہ ابھی تک ہمارے لئے دستیاب ہے. جی ہاں، سعد؟ 540 00:41:51,270 --> 00:41:53,630 [سعد] کہ خود کار طریقے سے ہوتا ہے؟ 541 00:41:53,630 --> 00:41:56,150 [Hardison] یہ بہت خود کار طریقے سے نہیں ہوتا. تمہیں ریاضی کرنا پڑے گا 542 00:41:56,150 --> 00:42:00,380 یہ کام کرنے کے لئے، لیکن بنیادی طور پر ہم نے کیا کیا ہے ہے، ہم صرف کے ارد گرد لپیٹ دیا ہے. 543 00:42:00,380 --> 00:42:04,070 [سعد] اور کیا یہ ٹھیک ہے اگر یہ اس کے وسط میں ایک سوراخ ہے؟ 544 00:42:04,070 --> 00:42:08,720 [Hardison] یہ ہے کہ اگر ہم ریاضی مناسب طریقے سے کام کر سکتے ہیں. 545 00:42:08,720 --> 00:42:15,470 >> اور یہ پتہ چلتا ہے کہ اصل میں نہیں ہے کہ جدید آپریٹر کے ساتھ کیا مشکل ہے. 546 00:42:15,470 --> 00:42:20,040 تو ویسے ہی جیسے ہم کیسر اور crypto سامان کے ساتھ کیا تھا، 547 00:42:20,040 --> 00:42:25,190 MOD کا استعمال کرتے ہوئے، ہم چیزوں کے ارد گرد لپیٹ ہو جاؤ اور جا رکھنے کے کر سکتے ہیں 548 00:42:25,190 --> 00:42:28,090 ، کے ارد گرد اور اس کے ساتھ کے ارد گرد اور ارد گرد ہمارے قطار 549 00:42:28,090 --> 00:42:32,180 رکھنے کے چاروں طرف سر پوائنٹر منتقل. 550 00:42:32,180 --> 00:42:38,840 ہمیشہ اس سائز نوٹس عناصر کی تعداد کا احترام کر رہا ہے قطار کے اندر اندر اصل میں. 551 00:42:38,840 --> 00:42:43,110 اور یہ صرف سر پوائنٹر اس کے ذریعے سایکلنگ کرتا ہے. 552 00:42:43,110 --> 00:42:49,660 اگر ہم یہاں کیا ہوا دیکھتے ہیں، اگر ہم شروع کرنے کے لئے واپس جاؤ، 553 00:42:49,660 --> 00:42:55,020 اور آپ کو صرف دیکھنے کے سر پر کیا ہوا 554 00:42:55,020 --> 00:42:58,240 جب ہم کچھ enqueue، سر پر کچھ بھی نہیں ہوا. 555 00:42:58,240 --> 00:43:00,970 جب ہم نے کچھ enqueued، سر پر کچھ بھی نہیں ہوا. 556 00:43:00,970 --> 00:43:04,130 جیسے ہی ہم کچھ dequeued، سر ایک کی طرف سے چلا جاتا ہے. 557 00:43:04,130 --> 00:43:06,600 کچھ نہیں ہم کچھ enqueued، سر پر ہوتا ہے. 558 00:43:06,600 --> 00:43:11,060 جب ہم کچھ dequeue، اچانک سر incremented ہو جاتا ہے. 559 00:43:11,060 --> 00:43:14,660 کچھ بھی نہیں جب ہم کچھ enqueue، سر پر ہوتا ہے. 560 00:43:14,660 --> 00:43:20,240 >> اس وقت کیا ہوگا اگر ہم پھر کچھ dequeue گے؟ 561 00:43:20,240 --> 00:43:23,240 کوئی خیال؟ سر پر کیا ہوگا؟ 562 00:43:23,240 --> 00:43:27,190 سر پر کیا ہونا چاہئے 563 00:43:27,190 --> 00:43:32,990 اگر ہم کچھ dequeue تھے؟ 564 00:43:32,990 --> 00:43:35,400 سر ابھی 2 انڈیکس میں ہے، 565 00:43:35,400 --> 00:43:38,920 جس کا مطلب یہ ہے کہ قطار کے سربراہ ڈور [2] ہے. 566 00:43:38,920 --> 00:43:44,280 [Student کی] کون 0 واپس؟ >> 0 واپس آ جانا چاہئے. اس کے ارد گرد واپس لپیٹ، بالکل چاہئے. 567 00:43:44,280 --> 00:43:48,440 اب تک، ہر وقت ہے کہ ہم dequeue ملاقات کی، ہم کیا گیا ہے سر پر سے ایک انہوں نے مزید کہا، 568 00:43:48,440 --> 00:43:50,960 سر پر ایک شامل کرتے ہیں، سر پر ایک شامل کرتے ہیں، سر پر ایک شامل کریں. 569 00:43:50,960 --> 00:43:58,400 جیسے ہی سر پوائنٹر ہمارے صف میں آخری فہرست ملتا ہے، 570 00:43:58,400 --> 00:44:05,650 پھر ہم نے اسے شروع کرنے کے لئے واپس لپیٹ کے ارد گرد ہے، 0 واپس چلے جاؤ. 571 00:44:05,650 --> 00:44:09,900 [شارلٹ] ایک اسٹیک میں قطار کی صلاحیت کا تعین کرتا ہے؟ 572 00:44:09,900 --> 00:44:13,120 [Hardison] اس صورت میں، ہم صرف کیا گیا ہے # کی وضاحت مسلسل استعمال کر رہے ہیں. ٹھیک ہے. >> 573 00:44:13,120 --> 00:44:19,590 [Hardison]. اصل سی فائل میں، آپ اسے تھوڑا سا اور muck جا سکتے ہیں 574 00:44:19,590 --> 00:44:21,710 اور یہ بڑا یا کم کے طور پر آپ چاہتے ہیں کے طور پر. 575 00:44:21,710 --> 00:44:25,310 [شارلٹ] تو جب آپ اسے بنا ایک قطار رہے ہیں، آپ کو کس طرح کمپیوٹر معلوم 576 00:44:25,310 --> 00:44:29,120 آپ کتنا بڑا اسٹیک کرنا چاہتے ہیں؟ 577 00:44:29,120 --> 00:44:31,700 [Hardison] یہ ایک بڑا سوال ہے. 578 00:44:31,700 --> 00:44:34,800 طریقوں میں سے ایک جوڑے کی ہیں. صرف اسے سامنے وضاحت ہے 579 00:44:34,800 --> 00:44:42,050 اور اس کا کہنا ہے کہ ایک قطار ہے جس میں 4 عناصر یا 50 عناصر یا 10،000 ہے جا رہا ہے. 580 00:44:42,050 --> 00:44:45,430 دوسرے طریقے سے کیا کرنا ہے ہیکر ایڈیشن لوگ کر رہے ہیں 581 00:44:45,430 --> 00:44:52,310 اور آپ کی قطار کو متحرک طور پر کے طور پر چیزوں کے اندر شامل کرنے کے لئے اضافہ افعال پیدا 582 00:44:52,310 --> 00:44:54,740 >> [شارلٹ] تو پہلے آپشن کے ساتھ جانے کے لئے، تم کیا نحو استعمال کرتے ہیں 583 00:44:54,740 --> 00:44:57,830 پروگرام کو بتانا قطار کا سائز کیا ہے؟ 584 00:44:57,830 --> 00:45:04,780 [Hardison] آہ. تو ہم اس سے باہر نکلتے ہیں. 585 00:45:04,780 --> 00:45:12,650 اب بھی مجھے یہاں stack.c میں ہوں، تو میں صرف سب سے اوپر تک یہاں سکرال جا رہا ہوں. 586 00:45:12,650 --> 00:45:17,920 اس حق کو آپ یہاں دیکھ سکتے ہیں؟ اس کا ہے # 10 صلاحیت کی وضاحت. 587 00:45:17,920 --> 00:45:24,600 اور یہ تقریبا بالکل وہی نحو کہ ہم قطار کے لئے ہے. 588 00:45:24,600 --> 00:45:28,390 قطار میں کے علاوہ، ہم نے یہاں کہ اضافی struct میدان مل گیا ہے. 589 00:45:28,390 --> 00:45:32,760 [شارلٹ] اوہ، میں نے سوچا کہ صلاحیت سٹرنگ کے لئے صلاحیت کا مطلب ہے. 590 00:45:32,760 --> 00:45:36,770 [Hardison] آہ. >> یہ ہے کہ یہ لفظ کے زیادہ سے زیادہ حد کے ہے. >> سمجھے. 591 00:45:36,770 --> 00:45:41,180 جی ہاں. یہاں صلاحیت - یہ ایک بہت بڑی بات ہے. 592 00:45:41,180 --> 00:45:44,000 اور یہ کچھ مشکل ہے 593 00:45:44,000 --> 00:45:49,480 کیونکہ جو ہم یہاں اعلان کیا ہے چار * کے ایک صف ہے. 594 00:45:49,480 --> 00:45:52,770 اشارہ کی ایک صف ہے. 595 00:45:52,770 --> 00:45:56,690 یہ حروف کے ایک صف ہے. 596 00:45:56,690 --> 00:46:01,690 شاید یہ ہے جو تم نے دیکھا جب آپ کو ہے فائل کے لئے آپ کے buffers قرار دیا ہے I / O، 597 00:46:01,690 --> 00:46:06,840 آپ کو جب ہے ڈور اسٹیک پر پیدا کر دستی طور پر. 598 00:46:06,840 --> 00:46:09,090 تاہم، کیا ہم یہاں ملا ہے چار کے * ایک صف ہے. 599 00:46:09,090 --> 00:46:13,400 تو یہ اشارہ کے ایک صف ہے. 600 00:46:13,400 --> 00:46:18,350 اصل میں، اگر ہم واپس باہر زوم اور ہم پر نظر یہاں کیا چل رہا ہے 601 00:46:18,350 --> 00:46:23,140 پریزنٹیشن میں، آپ کہ اصل عناصر، کردار کے اعداد و شمار کو دیکھ 602 00:46:23,140 --> 00:46:26,180 صف خود کے اندر اندر محفوظ نہیں ہے. 603 00:46:26,180 --> 00:46:42,690 کیا ہمارے صف کے اندر اندر یہاں ذخیرہ کردار کے اعداد و شمار کے اشارہ ہیں. 604 00:46:42,690 --> 00:46:52,560 ٹھیک ہے. تو ہم نے دیکھا کہ کس طرح اسٹیک کے ساتھ قطار کا سائز صرف پسند ہے، 605 00:46:52,560 --> 00:46:58,670 سائز ہمیشہ قطار میں عناصر کی تعداد کا احترام کرتا ہے اس وقت. 606 00:46:58,670 --> 00:47:02,720 2 enqueues کرنے کے بعد، سائز 2 ہے. 607 00:47:02,720 --> 00:47:07,110 dequeue بنانے کے بعد سائز 1 ہے. 608 00:47:07,110 --> 00:47:09,330 دوسرے enqueue کرنے کے بعد سائز 2 سے واپس آ گیا ہے. 609 00:47:09,330 --> 00:47:12,340 تو سائز یقینی طور سے قطار میں عناصر کی تعداد کا احترام کرتا ہے، 610 00:47:12,340 --> 00:47:15,580 اور پھر سر صرف سائیکلنگ رکھتا ہے. 611 00:47:15,580 --> 00:47:20,210 یہ 0-1-2، 0-1-2 0-1-2 سے جاتا ہے. 612 00:47:20,210 --> 00:47:25,620 اور ہر وقت ہے کہ ہم dequeue فون، سر کا پوائنٹر اگلے صفحہ incremented ہو جاتا ہے. 613 00:47:25,620 --> 00:47:29,930 اور اگر سر پھر سے جانے کے لئے کے بارے میں ہے، اس کے ارد گرد 0 loops. 614 00:47:29,930 --> 00:47:34,870 تو، ہم اس کے ساتھ dequeue تقریب کو لکھ سکتے ہیں. 615 00:47:34,870 --> 00:47:40,200 اور ہم enqueue تقریب کے لئے آپ لوگ بجائے لاگو کرنے کے لئے چھوڑ کر جا رہے ہیں. 616 00:47:40,200 --> 00:47:45,880 >> ، جب ہم اپنے قطار کے ایک عنصر dequeue 617 00:47:45,880 --> 00:47:55,490 کہ پہلی بات یہ ہے کہ ڈینیل کیا جب ہم stacks کے لئے پاپ تقریب لکھنے شروع کر دیا تھا؟ 618 00:47:55,490 --> 00:48:00,490 کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے کسی جو بات ابھی تک نہیں کیا ہے سے سن دو 619 00:48:00,490 --> 00:48:06,710 چلو دیکھتے ہیں، سعد، آپ کو یاد ہے کہ ڈینیل پہلی بات جب انہوں نے لکھا پاپ کے طور پر کیا ہے؟ 620 00:48:06,710 --> 00:48:08,860 [سعد] آمدید، یہ تھا - >> وہ کچھ کے لئے تجربہ کیا. 621 00:48:08,860 --> 00:48:12,140 [] سعد اگر حجم 0 سے بڑا ہے. بالکل ٹھیک ہے. >> 622 00:48:12,140 --> 00:48:14,390 اور کے لئے اس کی جانچ کیا تھا؟ 623 00:48:14,390 --> 00:48:19,090 [سعد] اگر صف کے اندر کچھ بھی ہے کو دیکھنے کے لئے جانچ کی گئی تھی. 624 00:48:19,090 --> 00:48:23,210 [Hardison] جی ہاں. بالکل. تو تم نے اسٹیک سے باہر کچھ بھی پاپ نہیں کر سکتے ہیں اگر یہ خالی ہے. 625 00:48:23,210 --> 00:48:26,510 اسی طرح آپ کو ایک قطار سے کچھ dequeue نہیں کر سکتے ہیں اگر یہ خالی ہے. 626 00:48:26,510 --> 00:48:30,420 پہلی بات ہم نے ہمارے dequeue تقریب میں کیا یہاں کرنا چاہئے کیا ہے، آپ کے خیال میں ہے؟ 627 00:48:30,420 --> 00:48:33,860 [] سعد اگر حجم 0 سے بڑا ہے؟ >> جی ہاں. 628 00:48:33,860 --> 00:48:37,710 اس صورت میں، میں نے اصل میں صرف اگر یہ 0 کے لئے تجربہ کیا ہے. 629 00:48:37,710 --> 00:48:42,240 اگر یہ 0 ہے، ہم شہوت انگیز null واپس آ سکتے ہیں. 630 00:48:42,240 --> 00:48:45,280 لیکن بالکل وہی منطق. 631 00:48:45,280 --> 00:48:49,110 اور اس کے ساتھ ساتھ جاری ہے. 632 00:48:49,110 --> 00:48:54,600 اگر سائز 0 نہیں ہے، جہاں عنصر ہے کہ ہم dequeue کرنا چاہتے ہیں؟ 633 00:48:54,600 --> 00:48:58,550 [سعد] سر میں؟ بالکل ٹھیک ہے. >> 634 00:48:58,550 --> 00:49:01,720 ہم صرف ہمارے قطار میں پہلا عنصر ھیںچو کر سکتے ہیں 635 00:49:01,720 --> 00:49:07,040 سر میں عنصر تک رسائی حاصل کرنے کی طرف سے. 636 00:49:07,040 --> 00:49:14,630 پاگل کچھ بھی نہیں. 637 00:49:14,630 --> 00:49:19,620 اس کے بعد، ہم نے کیا کرنا چاہیے؟ ہونا کیا ہے؟ 638 00:49:19,620 --> 00:49:23,740 دوسری بات یہ ہے کہ ہم نے dequeue میں کے بارے میں بات کی تھی کیا تھی؟ 639 00:49:23,740 --> 00:49:28,130 دو چیزوں پر ہو، کیونکہ ہمارے قطار تبدیل کر دیا گیا ہے. 640 00:49:28,130 --> 00:49:35,640 [ڈینیل] سائز کم کریں. >> ہم سائز کو کم کرنے کے لئے، اور سر میں اضافہ ہے؟ بالکل. 641 00:49:35,640 --> 00:49:40,600 سر میں اضافہ کرنے کے لئے، ہم صرف آنکھ بند کر کے نہیں سر میں اضافہ کر سکتے ہیں، یاد ہے. 642 00:49:40,600 --> 00:49:45,080 ہم نہ صرف queue.head کر سکتے ہیں + +. 643 00:49:45,080 --> 00:49:51,630 ہم نے صلاحیت کی طرف سے اس جدید شامل ہے. 644 00:49:51,630 --> 00:49:54,740 اور ہم صلاحیت کی طرف سے کیوں MOD کرتے ہیں، سٹیلا؟ 645 00:49:54,740 --> 00:49:58,680 [سٹیلا] کیونکہ اس کے ارد گرد لپیٹ ہے. بالکل ٹھیک ہے. >> 646 00:49:58,680 --> 00:50:04,750 صلاحیت کی طرف سے ہم جدید کیونکہ یہ 0 کے ارد گرد واپس لپیٹ ہے. 647 00:50:04,750 --> 00:50:07,400 تو اب، ہم نے اس وقت کیا، کیا ڈینیل نے کہا کہ کر سکتے ہیں. 648 00:50:07,400 --> 00:50:12,700 ہم سائز تدریج کریں کر سکتے ہیں. 649 00:50:12,700 --> 00:50:29,170 اور پھر ہم عنصر جو قطار کے سب سے اوپر دیئے گئے تھے واپس آ سکتے ہیں. 650 00:50:29,170 --> 00:50:34,000 یہ اس قسم کی پہلی نظر میں لگتا ہے gnarly. آپ نے ایک سوال کے جواب میں ہو سکتا ہے. معاف کیجئے گا؟ 651 00:50:34,000 --> 00:50:37,260 >> [سیم] کیوں قطار کے سب سے اوپر دیئے گئے پہلے ہے؟ کہ کہاں جاتا ہے؟ 652 00:50:37,260 --> 00:50:42,480 [Hardison] یہ نیچے سے چوتھے لائن سے آتا ہے. 653 00:50:42,480 --> 00:50:46,060 کے بعد ہم اس بات کا یقین کرنے کے لئے کہ ہماری قطار خالی نہیں ہے ٹیسٹ، 654 00:50:46,060 --> 00:50:54,100 ہم چار * پہلی بار ھیںچو، ہم باہر عنصر جو سر انڈیکس میں بیٹھا ہے ھیںچو 655 00:50:54,100 --> 00:50:58,680 ہمارے صف، ہمارے ڈور صف >>، اور کہ پہلے کال کی؟ 656 00:50:58,680 --> 00:51:04,500 [Hardison] اور ہم نے اسے سب سے پہلے کہتے ہیں. جی ہاں. 657 00:51:04,500 --> 00:51:09,850 صرف اس پر کی پیروی کرنے کے لئے، آپ کو ایسا کیوں لگتا ہے ہم ایسا تھا؟ 658 00:51:09,850 --> 00:51:18,270 [سیم] ہر پہلے q.strings واپس آ رہا ہے [q.head] >> جی ہاں. 659 00:51:18,270 --> 00:51:23,830 >>، کیونکہ ہم جدید تقریب کے ساتھ q.head کا یہ تبدیل کر رہے ہیں 660 00:51:23,830 --> 00:51:27,810 اور کوئی واپسی لائن کے اندر اندر بھی کر طریقہ ہے. 661 00:51:27,810 --> 00:51:31,640 [Hardison] بالکل. آپ پر جگہ ہیں. سیم مکمل طور پر جگہ ہے. 662 00:51:31,640 --> 00:51:36,800 وجہ سے ہم ہمارے قطار میں سب سے پہلے عنصر ھیںچو اور ایک متغیر میں محفوظ تھا 663 00:51:36,800 --> 00:51:43,030 کیونکہ اس لائن جہاں ہم صرف q.head تھا، 664 00:51:43,030 --> 00:51:47,030 وہاں وہاں میں جدید آپریٹر کچھ نہیں ہے ہم ایسا کر سکتے ہیں 665 00:51:47,030 --> 00:51:51,230 - ایک ہی لائن میں اور اس کے بغیر سر پر اثر لے لو. 666 00:51:51,230 --> 00:51:54,480 تو ہم اصل میں پہلا عنصر ھیںچو ہے، اور پھر سر کو ایڈجسٹ، 667 00:51:54,480 --> 00:52:00,430 سائز کو ایڈجسٹ کریں، اور پھر عنصر ہے کہ ہم باہر نکالا واپس. 668 00:52:00,430 --> 00:52:02,680 اور اس بات پر ہے کہ ہم نے دیکھ لو گے بعد میں کے ساتھ 669 00:52:02,680 --> 00:52:04,920 منسلک فہرستوں، جیسا کہ ہم ان کے ساتھ کے ارد گرد ادا کرتے ہیں. 670 00:52:04,920 --> 00:52:08,410 اکثر ایسا ہوتا ہے جب آپ یا آپ کا لنک کی فہرست کے آزاد کر رہے ہیں تصرف 671 00:52:08,410 --> 00:52:13,500 آپ اگلے عنصر، ایک لنک کی فہرست کے اگلے پوائنٹر کو یاد کرنے کی ضرورت ہے 672 00:52:13,500 --> 00:52:16,330 موجودہ میں تصرف کرنے سے پہلے. 673 00:52:16,330 --> 00:52:23,580 کیونکہ ورنہ تم دور فہرست میں چھوڑ دیا ہے کے بارے میں معلومات پر پھینک دیتے ہیں. 674 00:52:23,580 --> 00:52:34,160 اب، اگر آپ کو آپ کے آلے پر جاتے ہیں، آپ کو اس کی ایکس queue.c-کھولتے باہر. 675 00:52:34,160 --> 00:52:39,390 تو یہاں دو اگر میں نے queue.c کھولتے ہیں تو، آپ کے وزٹرز کا ریکارڈ رکھا زوم، 676 00:52:39,390 --> 00:52:44,970 آپ دیکھیں گے کہ آپ کو اسی طرح نظر آنے والے ایک فائل پڑے گا. 677 00:52:44,970 --> 00:52:49,200 اسی طرح نظر آنے والے جو ہم stack.c کے ساتھ پہلے تھا فائل. 678 00:52:49,200 --> 00:52:54,690 ہم نے صرف وضاحت کی گئی ہے کے طور پر ہم سلائڈ پر دیکھا قطار کے لئے نے ہماری struct ہے ہے. 679 00:52:54,690 --> 00:52:59,870 >> ہم اپنے enqueue تقریب ہے جس سے آپ کے لئے کیا کرنا ہے ہے. 680 00:52:59,870 --> 00:53:04,340 اور ہم dequeue تقریب یہاں ہے. 681 00:53:04,340 --> 00:53:06,870 فائل میں dequeue تقریب unimplemented ہے، 682 00:53:06,870 --> 00:53:13,230 لیکن میں اسے واپس پاورپوائنٹ پر ڈال تاکہ آپ اس میں ٹائپ کریں، اگر آپ چاہیں تو کر سکتے ہیں کریں گے. 683 00:53:13,230 --> 00:53:16,690 تو enqueue پر تم لوگ اگلے 5 یا دو منٹ کے لئے کام کرتے ہیں، 684 00:53:16,690 --> 00:53:22,570 جو تقریبا صرف dequeue کے برعکس ہے. 685 00:53:22,570 --> 00:53:29,560 سر جب آپ enqueueing رہے ہیں کو ایڈجسٹ نہیں کرتے، لیکن کیا آپ کو ایڈجسٹ کرتے ہیں؟ 686 00:53:29,560 --> 00:53:38,920 سائز. تو جب سر آپ enqueue، اچھوتا رہتا ہے، سائز تبدیل ہو جاتا ہے. 687 00:53:38,920 --> 00:53:46,920 لیکن یہ تھوڑا سا تھوڑا سا لگتا ہے - آپ کو اس جدید کے ساتھ کے ارد گرد ادا کرنا پڑے گا 688 00:53:46,920 --> 00:53:57,560 باہر بالکل اعداد و شمار کیا سوچکانک میں نئے عناصر رکھا جائے داخل کیا جانا چاہئے. 689 00:53:57,560 --> 00:54:03,080 ڈال دیا تو میں تم لوگوں کو تھوڑا سا دے دونگا، سلائڈ پر dequeue بیک اپ، 690 00:54:03,080 --> 00:54:05,200 اور لوگ آپ کے سوالات ہیں، انہیں باہر چللاو تاکہ ہم ایسا کر سکتے ہیں 691 00:54:05,200 --> 00:54:09,220 ایک گروپ کے طور پر ان کے بارے میں تمام باتیں. 692 00:54:09,220 --> 00:54:13,960 کے علاوہ، سائز مت پہنچاو کے ساتھ میں سب کچھ - جب آپ کے سائز کو ایڈجسٹ، آپ ہمیشہ صرف کر سکتے ہیں - 693 00:54:13,960 --> 00:54:18,720 کیا آپ فونز کبھی MOD ہے؟ [ڈینیل] نمبر >> آپ کو سائز MOD کی ضرورت نہیں ہے، ٹھیک ہے. 694 00:54:18,720 --> 00:54:24,260 کیونکہ فونز، ہمیشہ اگر you're - سنبھالنے تم چیزوں کو مناسب طریقے سے انتظام، 695 00:54:24,260 --> 00:54:30,840 سائز 0 اور 3 کے درمیان ہمیشہ رہے گا. 696 00:54:30,840 --> 00:54:38,680 آپ کو جب آپ enqueue کر رہے ہیں MOD کہاں ہے؟ 697 00:54:38,680 --> 00:54:41,060 صرف سر کے لئے [Student کی]. صرف سر کے لئے >>، بالکل. 698 00:54:41,060 --> 00:54:44,620 اور تم کیوں enqueue میں MOD ہے؟ 699 00:54:44,620 --> 00:54:48,830 ایک ایسی صورت حال ہے جس میں آپ جدید ہوگا کب ہے؟ 700 00:54:48,830 --> 00:54:53,630 [Student کی] اگر آپ کو خالی جگہ میں چیزیں ہیں خالی جگہوں 1 اور 2 میں، پسند، 701 00:54:53,630 --> 00:54:55,950 اور اس کے بعد آپ 0 میں کچھ شامل کرنے کی ضرورت ہے. 702 00:54:55,950 --> 00:55:02,570 [Hardison] جی ہاں، بالکل. تو اگر آپ کے سر پوائنٹر ہی آخر میں ہے، 703 00:55:02,570 --> 00:55:14,210 یا اگر آپ کے سائز کے علاوہ اپنے سر بڑا ہے، یا بلکہ قطار کے گرد لپیٹ جا رہا ہے. 704 00:55:14,210 --> 00:55:17,830 >> تو، اس صورت حال ہے کہ ہم نے یہاں ہے سلائڈ پر ابھی میں 705 00:55:17,830 --> 00:55:24,370 اگر میں ابھی کچھ enqueue کرنا چاہتے ہیں، 706 00:55:24,370 --> 00:55:31,110 ہم 0 انڈیکس میں کچھ enqueue چاہتے ہیں. 707 00:55:31,110 --> 00:55:35,450 اگر ایسا ہے تو آپ کو جہاں 50 جاتا ہے میں نظر آئے گا اور میں enqueue 50 کہتے ہیں، 708 00:55:35,450 --> 00:55:40,840 یہ نیچے کے نیچے دیے گئے وہاں جاتا ہے. یہ انڈیکس 0 میں جاتا ہے. 709 00:55:40,840 --> 00:55:44,160 یہ 'ہیلو' جو پہلے ہی dequeued گیا تھا کی جگہ لے لیتا ہے. 710 00:55:44,160 --> 00:55:46,210 [ڈینیل] اس کا خیال dequeue میں پہلے ہی نہیں لے جاتے؟ 711 00:55:46,210 --> 00:55:50,550 یہ enqueue سر کے ساتھ کچھ کیوں کرتی ہے؟ 712 00:55:50,550 --> 00:55:55,770 [Hardison] اوہ، تو آپ کو سر میں ترمیم نہیں کر رہے ہیں، معاف کرنا. 713 00:55:55,770 --> 00:56:02,310 لیکن آپ کو جدید آپریٹر جب آپ تک رسائی حاصل کر رہے ہیں کا استعمال کرنا پڑے 714 00:56:02,310 --> 00:56:04,250 عنصر ہے کہ آپ کو جب آپ تک رسائی حاصل کر رہے ہیں enqueue چاہتے ہیں 715 00:56:04,250 --> 00:56:06,960 آپ کی قطار میں اگلے عنصر. 716 00:56:06,960 --> 00:56:10,960 [تلسی] میں ایسا نہیں تھا، اور میں وہاں پر "کامیابی" ہے. 717 00:56:10,960 --> 00:56:13,370 [ڈینیل] اوہ، میں سمجھ سکتا ہوں جو تم کہہ رہے ہو. 718 00:56:13,370 --> 00:56:16,240 [Hardison] تو آپ didn't - آپ صرف q.size میں نے کیا کیا؟ 719 00:56:16,240 --> 00:56:20,670 [تلسی] جی ہاں. میں صرف اطراف کو تبدیل کر دیا گیا، میں نے سر سے کچھ نہیں کیا. 720 00:56:20,670 --> 00:56:24,300 [Hardison] آپ سر کچھ بھی ہو ری سیٹ اصل میں نہیں ہے، 721 00:56:24,300 --> 00:56:31,650 لیکن جب آپ ڈور صف میں انڈیکس 722 00:56:31,650 --> 00:56:39,500 آپ اصل میں آگے جانا ہے اور جہاں اگلے عنصر ہے حساب ہے، 723 00:56:39,500 --> 00:56:44,230 کیونکہ اسٹیک withe، اپنے اسٹیک میں اگلے عنصر ہمیشہ 724 00:56:44,230 --> 00:56:48,740 سائز اسی انڈیکس میں. 725 00:56:48,740 --> 00:56:55,850 اگر ہم ہمارے اسٹیک دھکا تقریب میں واپس دیکھو، 726 00:56:55,850 --> 00:57:03,100 ہم انڈیکس سائز میں ہمیشہ ہمارے نئے عنصر میں plunk سکتا ہے. 727 00:57:03,100 --> 00:57:06,710 قطار کے ساتھ جبکہ ہم ایسا نہیں کر سکتے 728 00:57:06,710 --> 00:57:10,340 ، اگر ہم اس صورت حال میں ہو کیونکہ 729 00:57:10,340 --> 00:57:18,130 اگر ہم enqueued 50 ہمارے نئے سٹرنگ [1] ڈور میں جائیں گے 730 00:57:18,130 --> 00:57:20,540 جس سے ہم نہیں کرنا چاہتا. 731 00:57:20,540 --> 00:57:41,200 ہم نئی سٹرنگ 0 انڈیکس میں جانے کے لئے چاہتے ہیں. 732 00:57:41,200 --> 00:57:44,320 >> کیا کسی - جی ہاں؟ [Student کی] میں ایک سوال کے جواب میں ہے لیکن یہ واقعی میں کوئی تعلق نہیں ہے. 733 00:57:44,320 --> 00:57:48,160 کیا اس کا مطلب یہ ہے جب کوئی صرف کچھ pred پوائنٹر کی طرح کہتے ہیں؟ 734 00:57:48,160 --> 00:57:51,260 اس کے نام کیا ہے کے لئے مختصر ہے؟ مجھے پتہ ہے کہ یہ صرف ایک نام ہے. 735 00:57:51,260 --> 00:57:59,110 [Hardison] Pred پوائنٹر؟ چلو دیکھتے ہیں. کس تناظر میں ہے؟ 736 00:57:59,110 --> 00:58:01,790 [Student کی] یہ داخل کے لئے تھا. میں آپ کو بعد میں پوچھیں اگر آپ چاہتے ہیں کر سکتے ہیں 737 00:58:01,790 --> 00:58:03,920 کیونکہ یہ واقعی سے متعلق نہیں ہے، لیکن صرف میں - 738 00:58:03,920 --> 00:58:07,300 [Hardison] لیکچر سے ڈیوڈ داخل کوڈ سے؟ 739 00:58:07,300 --> 00:58:10,860 ہم اس ھیںچو تک کر سکتے ہیں اور اس بارے میں بات کر سکتے ہیں. 740 00:58:10,860 --> 00:58:15,550 ہم کہ اگلے منسلک کی فہرست ایک بار ہم کے بارے میں بات کریں گے. 741 00:58:15,550 --> 00:58:21,440 >> تو واقعی بہت تیزی سے کیا enqueue تقریب کی طرح لگتا ہے میں تلاش کریں. 742 00:58:21,440 --> 00:58:26,530 پہلی بات یہ ہے کہ لوگوں کو اپنے enqueue لائن میں کرنے کی کوشش کی تھی؟ اس قطار میں؟ 743 00:58:26,530 --> 00:58:29,960 کیا آپ کو آگے بڑھانے اسٹیک کے لئے کیا کیا اسی طرح. 744 00:58:29,960 --> 00:58:32,080 آپ کیا کیا سٹیلا؟ 745 00:58:32,080 --> 00:58:35,050 [سٹیلا، unintelligible] 746 00:58:35,050 --> 00:58:45,700 [Hardison] بالکل. اگر (== صلاحیت q.size) - 747 00:58:45,700 --> 00:58:54,720 میں صحیح جگہ میں اپنے منحنی خطوط وحدانی پر ڈال کرنے کی ضرورت ہے - جھوٹے واپس. 748 00:58:54,720 --> 00:59:01,370 تھوڑا سا میں زوم. ٹھیک ہے. 749 00:59:01,370 --> 00:59:03,800 اب اگلی بات یہ ہے کہ ہم نے کرنا تھا؟ 750 00:59:03,800 --> 00:59:11,370 صرف اسٹیک کے ساتھ پسند ہے، اور صحیح جگہ میں داخل کیا گیا. 751 00:59:11,370 --> 00:59:16,010 اور تو کیا حق ہے کہ شامل کرنے کے لئے جگہ تھی؟ 752 00:59:16,010 --> 00:59:23,170 اسٹیک کے ساتھ انڈیکس سائز کا تھا، اس کے ساتھ یہ کافی نہیں ہے. 753 00:59:23,170 --> 00:59:30,210 [ڈینیل] میں q.head یا ہے - >> q.strings؟ >> جی ہاں. 754 00:59:30,210 --> 00:59:40,470 q.strings [q.head q.size + MOD صلاحیت] 755 00:59:40,470 --> 00:59:42,740 [Hardison] ہم شاید اس کے ارد گرد قوسین ڈال کرنا چاہتے ہیں 756 00:59:42,740 --> 00:59:48,830 تاکہ ہم مناسب مقدم رہی ہے اور کر رہے ہیں تاکہ سب cleart ہے. 757 00:59:48,830 --> 00:59:55,800 سیٹ اور برابر ہے کہ ہے؟ STR کے لئے >>؟ STR کے لئے ہے. >> بہت اچھا ہے. 758 00:59:55,800 --> 01:00:00,160 اور اب آخری بات یہ ہے کہ ہم نے کیا کرنا ہے کیا ہے؟ 759 01:00:00,160 --> 01:00:06,780 جیسا کہ ہم نے اسٹیک میں کیا تھا. >> سائز اضافہ؟ >> سائز اضافہ. 760 01:00:06,780 --> 01:00:13,830 بوم. اور پھر، سٹارٹر کوڈ کے بعد صرف ڈیفالٹ کی طرف سے جھوٹی واپس، 761 01:00:13,830 --> 01:00:27,460 ہم سچ یہ اگر تمام کے ذریعے جاتا ہے اور سب کچھ ٹھیک جاتا ہے کو تبدیل کرنا چاہتے ہیں. 762 01:00:27,460 --> 01:00:33,050 ٹھیک ہے. اس حصے کے لئے کے بارے میں معلومات کا ایک بہت ہے. 763 01:00:33,050 --> 01:00:39,480 ہم بالکل ختم نہیں ہو. ہم اکیلے سے تعلق رکھنے والے کی فہرست کے بارے میں واقعی جلدی بات کرنا چاہتا ہوں. 764 01:00:39,480 --> 01:00:44,010 میں یہ ڈال تک تو ہم اسے واپس جانے کے بعد کر سکتے ہیں کریں گے. 765 01:00:44,010 --> 01:00:50,850 لیکن صرف ایک چند سلائڈز کے لئے ہماری پیشکش میں واپس جانے. 766 01:00:50,850 --> 01:00:53,790 تو enqueue TODO ہے، اب ہم نے یہ کیا ہے. 767 01:00:53,790 --> 01:00:57,430 >> اب ہم اکیلے سے تعلق رکھنے والے کی فہرست پر ایک نظر لے. 768 01:00:57,430 --> 01:01:00,040 ہم درس میں یہ تھوڑا سا زیادہ کے بارے میں بات کی تھی. 769 01:01:00,040 --> 01:01:02,540 تم لوگ کتنے ڈیمو نے دیکھا جہاں ہم لوگوں تھا 770 01:01:02,540 --> 01:01:08,220 awkwardly ایک دوسرے کے اور ہولڈنگ کی تعداد کی طرف اشارہ کرتے ہوئے؟ >> مجھے اس میں تھا. 771 01:01:08,220 --> 01:01:16,620 >> تم لوگ کیا سوچا تھا؟ کہ کیا ہے، امید ہے کہ یہ تھوڑا سا demystify؟ 772 01:01:16,620 --> 01:01:25,990 ایک فہرست کے ساتھ، یہ پتہ چلا ہے کہ ہم نے اس قسم کے ساتھ نمٹنے کے لئے ہے کہ ہم ایک نوڈ کو فون کرنے جا رہے ہیں. 773 01:01:25,990 --> 01:01:32,520 قطار اور اسٹیک کے ساتھ جبکہ ہم structs ہے کہ ہم نے اسٹیک میں قطار فون کروں گا، 774 01:01:32,520 --> 01:01:34,860 ہم نے اسٹیک اقسام میں ان نئی قطار تھا، 775 01:01:34,860 --> 01:01:39,240 یہاں ایک فہرست کو واقعی صرف مراکز کی ایک گروپ کی ہے بنا دیا ہے. 776 01:01:39,240 --> 01:01:45,920 اسی طرح ہے کہ ڈور صرف حروف کے ایک گروپ ہیں میں سب ایک دوسرے کے ساتھ اہتمام کیا. 777 01:01:45,920 --> 01:01:50,650 ایک لنک کی فہرست میں صرف ایک نوڈ اور دوسرے نوڈ اور دوسرے نوڈ اور دوسرے نوڈ ہے. 778 01:01:50,650 --> 01:01:55,080 بلکہ تمام نوڈس smashing مل کر اور انہیں contiguously ذخیرہ کرنے سے 779 01:01:55,080 --> 01:01:58,090 ، ٹھیک یاد میں ایک دوسرے کی اگلی 780 01:01:58,090 --> 01:02:04,470 یہ اگلے پوائنٹر والے ہمیں بے ترتیب میں نوڈس جہاں بھی، ذخیرہ کرنے کی اجازت دیتا ہے ہے. 781 01:02:04,470 --> 01:02:10,500 اور پھر تار کی طرح ان سب کو ایک ساتھ ایک سے دوسرے کی طرف اشارہ ہے. 782 01:02:10,500 --> 01:02:15,850 >> اور بڑا فائدہ کیا تھا کہ یہ ایک صف پر تھا؟ 783 01:02:15,850 --> 01:02:21,680 ذخیرہ کرنے کا سب کچھ ختم ہو contiguously صرف ایک دوسرے کے ساتھ پھنس گئے؟ 784 01:02:21,680 --> 01:02:24,190 تمہیں یاد ہے؟ جی ہاں؟ >> متحرک میموری مختص کرنے؟ 785 01:02:24,190 --> 01:02:27,220 >> کس معنی میں متحرک میموری مختص کرنے؟ 786 01:02:27,220 --> 01:02:31,780 [Student کی] اس میں آپ کو یہ بڑا اور تم نے اپنی ساری صف منتقل کی ضرورت نہیں ہے بنانے رکھ سکتے ہیں؟ 787 01:02:31,780 --> 01:02:40,940 [Hardison] بالکل. تو ایک صف کے ساتھ، جب تم اس کے وسط میں ایک نئے عنصر کے لئے کرنا چاہتے ہیں، 788 01:02:40,940 --> 01:02:45,320 آپ کو ہر چیز کی جگہ بنانے کے لئے منتقل کی ہے. 789 01:02:45,320 --> 01:02:47,880 اور اس طرح ہم نے قطار کے ساتھ کے بارے میں بات کی، 790 01:02:47,880 --> 01:02:50,080 ، یہی وجہ ہے کہ ہم اس سر پوائنٹر رکھنا 791 01:02:50,080 --> 01:02:52,050 تاکہ ہم چیزیں مسلسل نہیں منتقل کر رہے ہیں. 792 01:02:52,050 --> 01:02:54,520 کیونکہ وہ مہنگا ہو جاتا ہے، اگر آپ کو ایک بہت بڑی صف ہے 793 01:02:54,520 --> 01:02:57,130 اور آپ مسلسل ان بے ترتیب اضافے کر رہے ہیں. 794 01:02:57,130 --> 01:03:00,820 جبکہ ایک فہرست کے ساتھ، تمام تمہیں کیا کرنا ہے ہے ایک نیا نوڈ پر اسے پھینک، 795 01:03:00,820 --> 01:03:06,330 اشارہ ایڈجسٹ، اور تم نے کیا کیا کر رہے ہیں. 796 01:03:06,330 --> 01:03:10,940 اس کے بارے میں کیا بیکار ہے؟ 797 01:03:10,940 --> 01:03:16,830 علاوہ حقیقت یہ ہے کہ یہ اتنا آسان نہیں ہے ایک صف کے طور پر کے ساتھ کام کرنے سے؟ جی ہاں؟ 798 01:03:16,830 --> 01:03:22,980 [ڈینیل] ٹھیک ہے، مجھے لگتا ہے کہ یہ بہت مشکل ہے منسلک فہرست میں ایک مخصوص عنصر تک رسائی حاصل ہے؟ 799 01:03:22,980 --> 01:03:30,470 [Hardison] آپ صرف آپ کے منسلک فہرست کے وسط میں ایک صوابدیدی عنصر نہیں کود کر سکتے ہیں. 800 01:03:30,470 --> 01:03:33,800 آپ اس کے بجائے کیسے ہے؟ >> آپ کو پوری بات کے ذریعے قدم ہے. 801 01:03:33,800 --> 01:03:35,660 [Hardison] جی ہاں. آپ ایک وقت میں ایک، ایک وقت میں ایک کے ذریعے جانا ہے. 802 01:03:35,660 --> 01:03:38,480 یہ ایک بہت بڑا ہے - یہ ایک درد ہے. 803 01:03:38,480 --> 01:03:41,550 اور کیا ہے - اس میں ایک اور خاتمے ہے. 804 01:03:41,550 --> 01:03:45,340 [تلسی] آپ آگے اور پیچھے کی طرف جانا نہیں کر سکتے ہیں؟ آپ کو ایک سمت جانے کے لئے ہے؟ 805 01:03:45,340 --> 01:03:48,570 [Hardison] جی ہاں. تو ہم اس کو کس طرح کو حل کرتے ہیں، کبھی کبھی؟ 806 01:03:48,570 --> 01:03:53,370 [تلسی] فہرستوں دوگنا سے منسلک ہے؟ بالکل ٹھیک ہے. >> دوگنا سے تعلق رکھنے والے کی فہرست ہیں. 807 01:03:53,370 --> 01:03:55,540 بھی ہیں - معاف کرنا؟ 808 01:03:55,540 --> 01:03:57,620 >> [] سام کہ pred بات یہ ہے کہ کا استعمال کرتے ہوئے کے طور پر ایک ہی ہے - 809 01:03:57,620 --> 01:04:01,090 مجھے ابھی یاد نہیں ہے کہ کیا pred بات کے لئے ہے؟ 810 01:04:01,090 --> 01:04:05,850 میں دوگنا اور اکیلے کے درمیان ہے کہ نہیں؟ 811 01:04:05,850 --> 01:04:10,020 [Hardison] چلو نظر بالکل وہی جو وہ کر رہے تھے. 812 01:04:10,020 --> 01:04:15,760 تو ہم یہاں جانا. فہرست کوڈ ہے. 813 01:04:15,760 --> 01:04:25,620 یہاں ہم predptr یہاں ہے. اس کا ہے جو آپ کے بارے میں بات کر رہے تھے؟ 814 01:04:25,620 --> 01:04:30,750 تو یہ تھا - وہ ایک فہرست آزاد ہے اور وہ اس کے پاس ایک پوائنٹر جمع کرنے کی کوشش کر رہا ہے. 815 01:04:30,750 --> 01:04:35,000 یہ دوگنا اکیلے، منسلک کی فہرست نہیں ہے. 816 01:04:35,000 --> 01:04:40,090 ہم اس کے بارے میں مزید بعد میں فہرست آزاد کرنے کے بارے میں بات کے بعد یہ بات کر رہا ہے کر سکتے ہیں 817 01:04:40,090 --> 01:04:42,900 اور میں کچھ دیگر چیزیں سب سے پہلے دکھانا چاہتا ہوں. 818 01:04:42,900 --> 01:04:51,480 لیکن یہ صرف ہے - ptr کی قدر یاد ہے 819 01:04:51,480 --> 01:04:54,170 [Student کی] اوہ، یہ preceeding پوائنٹر ہے؟ >> جی ہاں. 820 01:04:54,170 --> 01:05:04,070 تو ہے کہ ہم ہم تو مفت کیا predptr ہے سے قبل ptr خود تو اضافہ کر سکتے ہیں. 821 01:05:04,070 --> 01:05:09,130 کیونکہ ہم آزاد اور پھر ptr ptr = ptr اگلے، ٹھیک ہے؟ فون نہیں کر سکتے ہیں 822 01:05:09,130 --> 01:05:11,260 یہ خراب ہو جائے گی. 823 01:05:11,260 --> 01:05:20,940 تو چلو دیکھتے ہیں، اس آدمی کے پاس واپس. 824 01:05:20,940 --> 01:05:23,900 >> فہرستوں کے بارے میں دیگر بری بات یہ ہے کہ جبکہ ایک صف کے ساتھ 825 01:05:23,900 --> 01:05:26,520 ہم صرف تمام عناصر خود ایک دوسرے کے ساتھ سجا دیئے ہیں، 826 01:05:26,520 --> 01:05:29,050 ہم یہاں بھی اس پوائنٹر کو متعارف کرایا ہے. 827 01:05:29,050 --> 01:05:34,060 تو میموری کا ایک اضافی حصہ ہے کہ ہم استعمال کرنے کے لئے کر رہے ہیں 828 01:05:34,060 --> 01:05:37,910 ہر عنصر ہے کہ ہم ہماری فہرست میں ذخیرہ کرنے کر رہے ہیں کے لئے ہے. 829 01:05:37,910 --> 01:05:40,030 ہم لچک ملے، لیکن یہ ایک قیمت پر آتا ہے. 830 01:05:40,030 --> 01:05:42,230 یہ اس وقت کی قیمت کے ساتھ آتا ہے، 831 01:05:42,230 --> 01:05:45,270 اور یہ اس میموری قیمت کے ساتھ بھی آتا ہے. 832 01:05:45,270 --> 01:05:47,800 معنوں میں اب وقت آ گیا ہے کہ اب ہم صف میں ہر عنصر کے ذریعے جانا ہے 833 01:05:47,800 --> 01:05:58,670 10 انڈیکس میں ایک، یا کہ 10 انڈیکس ایک صف میں ہوتا ہے. 834 01:05:58,670 --> 01:06:01,230 >> واقعی بہت تیزی سے، جب ہم ان فہرستوں آریھ 835 01:06:01,230 --> 01:06:05,980 عام طور پر ہم نے فہرست کے سربراہ یا فہرست کے پہلے پوائنٹر پکڑ 836 01:06:05,980 --> 01:06:08,010 نوٹ اور یہ کہ یہ ایک حقیقی پوائنٹر ہے. 837 01:06:08,010 --> 01:06:11,100 اس میں صرف 4 بائٹس ہے. یہ ایک اصل نوڈ خود نہیں ہے. 838 01:06:11,100 --> 01:06:17,120 تو دیکھتے ہیں کہ یہ اس میں کوئی int قیمت ہے، اس میں کوئی اگلے پوائنٹر ہے. 839 01:06:17,120 --> 01:06:20,790 یہ لفظی صرف ایک پوائنٹر ہے. 840 01:06:20,790 --> 01:06:23,550 یہ کچھ ہے جو ایک حقیقی نوڈ struct ہے کی طرف اشارہ ہو رہا ہے. 841 01:06:23,550 --> 01:06:28,480 [سیم] نامی نوڈ پوائنٹر؟ >> یہ ہے - نہیں. یہ قسم نوڈ کے کچھ پوائنٹر ہے. 842 01:06:28,480 --> 01:06:32,540 یہ نوڈ struct پوائنٹر ہے. >> اوہ، ٹھیک ہے. 843 01:06:32,540 --> 01:06:36,870 دائیں بائیں کوڈ پر ڈایا گرام. 844 01:06:36,870 --> 01:06:42,190 ہم شہوت انگیز null، جس میں شروع کرنے کے لئے ایک اچھا طریقہ ہے مقرر کر سکتے ہیں. 845 01:06:42,190 --> 01:06:49,850 جب آپ نے اسے آریھ، آپ کو یا تو لکھنے اتارنا null طور پر یا آپ کو اس کے ذریعے ایک لائن ڈال یہ پسند ہے. 846 01:06:49,850 --> 01:06:53,910 >> کی فہرست کے ساتھ کام کرنے کا سب سے آسان کے طریقوں میں سے ایک، 847 01:06:53,910 --> 01:06:57,430 اور ہم نے آپ دونوں prepend سے دعا گو ہیں اور دونوں کے درمیان فرق کو دیکھنے کے لئے شامل کرتے ہیں، 848 01:06:57,430 --> 01:07:01,320 لیکن prepending یقینی طور پر آسان ہے. 849 01:07:01,320 --> 01:07:05,790 جب آپ prepend ہے، جہاں آپ کو - جب آپ prepend (7)، 850 01:07:05,790 --> 01:07:10,050 آپ اور تخلیق نوڈ struct 851 01:07:10,050 --> 01:07:13,870 اور آپ سب سے پہلے کیونکہ اب اس کی طرف اشارہ ہے، کیونکہ ہم اس prepended 852 01:07:13,870 --> 01:07:17,240 اس فہرست کے آغاز میں ہونے جا رہا ہے. 853 01:07:17,240 --> 01:07:22,540 اگر ہم prepend (3)، کہ ایک اور نوڈ پیدا، لیکن اب 3 7 سے پہلے آتا ہے. 854 01:07:22,540 --> 01:07:31,130 تو ہم بنیادی طور پر ہماری فہرست پر چیزیں آگے بڑھانے رہے ہیں. 855 01:07:31,130 --> 01:07:34,720 اب تم دیکھ کر، کہ prepend، کبھی کبھی لوگ اسے دھکا کر سکتے ہیں، 856 01:07:34,720 --> 01:07:39,600 کیونکہ آپ کو آپ کی فہرست پر ایک نئے عنصر کو آگے بڑھانے رہے ہیں. 857 01:07:39,600 --> 01:07:43,270 یہ آسان بھی ہے ایک فہرست کے سامنے خارج کرنے کی. 858 01:07:43,270 --> 01:07:45,650 تو لوگوں کو کہ پاپ اکثر ملاقات کریں گے. 859 01:07:45,650 --> 01:07:52,200 اور، آپ کو اس راہ میں ایک لنک کی فہرست کا استعمال کرتے ہوئے اسٹیک کا مقابلہ کر سکتے ہیں. 860 01:07:52,200 --> 01:07:57,880 افوہ. معذرت، اب ہم نے شامل میں ہو رہے ہیں. تو ہم یہاں prepended (7)، اب ہم prepend (3). 861 01:07:57,880 --> 01:08:02,600 اگر، ہم نے اس فہرست پر کچھ prepended، اگر ہم prepended (4) 862 01:08:02,600 --> 01:08:06,540 تو ہم 4 اور 3 پھر اور پھر 7 تھا. 863 01:08:06,540 --> 01:08:14,220 تو ہم تو پاپ اور 4 ہٹانے، 3 ہٹائیں، 7 خارج کر دیں. 864 01:08:14,220 --> 01:08:16,500 اکثر اس کے بارے میں سوچنا زیادہ بدیہی طریقہ شامل کے ساتھ ہے. 865 01:08:16,500 --> 01:08:20,310 تو میں باہر diagrammed کے ساتھ شامل کی طرح نظر آئے گا ہے. 866 01:08:20,310 --> 01:08:23,380 یہاں، سے منسلک (7) مختلف نظر نہیں ہے 867 01:08:23,380 --> 01:08:25,160 کیونکہ فہرست میں صرف ایک عنصر ہے. 868 01:08:25,160 --> 01:08:28,620 اور appending (3) یہ آخر میں رکھتا ہے. 869 01:08:28,620 --> 01:08:31,020 شاید تم ٹھیک اب شامل کے ساتھ چال دیکھ سکتے ہیں 870 01:08:31,020 --> 01:08:36,600 کہ چونکہ ہم صرف فہرست کے آغاز کہاں ہے معلوم ہے، 871 01:08:36,600 --> 01:08:39,450 ایک فہرست آپ کو فہرست کے ذریعے پورے راستے پر چلنا پڑے ملحق 872 01:08:39,450 --> 01:08:46,500 ختم کرنے کے لئے حاصل کرنے کے لئے، روکو، تو آپ کے نوڈ اور plunk نیچے سب کچھ کی تعمیر کے. 873 01:08:46,500 --> 01:08:50,590 ساری چیزیں تار. 874 01:08:50,590 --> 01:08:55,170 تو prepend کے ساتھ، جیسا کہ ہم صرف اس کے ذریعے بہت تیزی سے فٹ، 875 01:08:55,170 --> 01:08:58,170 جب آپ ایک کی فہرست میں prepend، کافی آسان ہے. 876 01:08:58,170 --> 01:09:02,960 >> آپ اپنے نئے نوڈ بنانے کے لئے، کچھ متحرک میموری مختص کرنے سے شامل کریں. 877 01:09:02,960 --> 01:09:09,830 تو ہم یہاں ایک نوڈ malloc کا استعمال کرتے ہوئے struct کر رہے ہیں. 878 01:09:09,830 --> 01:09:14,710 تو malloc ہم کا استعمال کریں کیونکہ کہ ایک طرف بعد کے لئے ہمارے لئے یاد قائم کریں گے رہے ہیں 879 01:09:14,710 --> 01:09:20,350 کیونکہ ہم یہ نہیں کرنا چاہتے ہیں - ہم یہ یاد ایک طویل وقت کے لئے برقرار رہتا ہے کرنا چاہتے ہیں. 880 01:09:20,350 --> 01:09:25,350 اور ہم یاد میں جگہ ہے کہ ہم صرف مختص پوائنٹر ملتا ہے. 881 01:09:25,350 --> 01:09:29,260 ہم نوڈ کے سائز کا استعمال کرتے ہیں، ہم شعبوں خلاصہ نہیں ہے. 882 01:09:29,260 --> 01:09:31,899 ہم بائٹس کی تعداد دستی طور پر نہیں پیدا، 883 01:09:31,899 --> 01:09:39,750 بجائے ہم sizeof ہے تا کہ ہم جانتے ہیں کہ ہم بائٹس کی مناسب تعداد حاصل کر رہے ہیں کا استعمال کرتے ہیں. 884 01:09:39,750 --> 01:09:43,660 ہم ٹیسٹ میں ہمارے malloc کال کامیاب اس بات کا یقین کر رہے ہیں. 885 01:09:43,660 --> 01:09:47,939 یہ کچھ ہے آپ کو عام طور پر کرنا چاہتے ہیں. 886 01:09:47,939 --> 01:09:52,590 جدید مشینوں پر، اور میموری سے باہر رہا کچھ نہیں ہے یہ تو آسان ہے 887 01:09:52,590 --> 01:09:56,610 جب تک آپ کو چیزیں ایک ٹن آونٹن کر رہے ہیں اور ایک بہت بڑی فہرست بنانے، 888 01:09:56,610 --> 01:10:02,220 لیکن، اگر آپ کو ایک فون یا لوڈ، اتارنا Android کی طرح کے لئے کہتے ہیں، چیزیں بنا رہے ہیں، 889 01:10:02,220 --> 01:10:05,230 آپ کو محدود میموری وسائل کی کیا ضرورت ہے، خاص طور پر اگر آپ شدید کچھ کر رہے ہیں. 890 01:10:05,230 --> 01:10:08,300 تو یہ اچھی بات ہے کہ پریکٹس میں حاصل کرنے کے لئے. 891 01:10:08,300 --> 01:10:10,510 >> یاد رکھیں کہ میں نے ایک جوڑے کو مختلف افعال کا استعمال کیا یہاں ہے 892 01:10:10,510 --> 01:10:12,880 کہ تم نے دیکھا ہے کہ نئے کی طرح ہیں. 893 01:10:12,880 --> 01:10:15,870 تو fprintf صرف printf پسند ہے 894 01:10:15,870 --> 01:10:21,320 سوائے اپنی پہلی دلیل کے ندی ہے جس سے آپ کو پرنٹ کرنا چاہتے ہیں. 895 01:10:21,320 --> 01:10:23,900 اس صورت میں، ہم معیاری غلطی کی سٹرنگ پر پرنٹ کرنے کے لئے چاہتے ہیں 896 01:10:23,900 --> 01:10:29,410 کے جو معیاری outstream سے مختلف ہے. 897 01:10:29,410 --> 01:10:31,620 بنیادی طور پر یہ ایک ہی جگہ پر ظاہر کرتا ہے. 898 01:10:31,620 --> 01:10:34,600 یہ بھی ٹرمینل پرنٹ، لیکن آپ کر سکتے ہیں - 899 01:10:34,600 --> 01:10:38,790 ان حکم دیتا ہے کا استعمال کرتے ہوئے آپ کے بارے میں، نئ سمت تکنیک سیکھا 900 01:10:38,790 --> 01:10:42,290 آپ ٹومی ویڈیو میں مسئلہ 4 سیٹ کے لئے کے بارے میں سیکھا ہے، تو آپ اسے براہ راست کر سکتے ہیں 901 01:10:42,290 --> 01:10:47,900 مختلف علاقوں میں، پھر، ٹھیک ہے یہاں سے باہر نکلیں، آپ کے پروگرام exits. 902 01:10:47,900 --> 01:10:50,440 یہ اہم سے واپس آنے کی طرح بنیادی طور پر ہے، 903 01:10:50,440 --> 01:10:53,600 کے علاوہ ہم نے وہاں سے نکلنے کی کا استعمال کرتے ہوئے کیونکہ یہاں واپس کچھ نہیں کروں گا. 904 01:10:53,600 --> 01:10:57,140 ہم نے اہم نہیں ہیں، تو واپس لوٹنے پروگرام اخراج نہیں ہوتا ہے جیسا کہ ہم چاہتے ہیں. 905 01:10:57,140 --> 01:11:03,020 تو ہم نے وہاں سے نکلنے کی تقریب کا استعمال کرتے ہیں اور اس میں ایک خرابی کا کوڈ دے. 906 01:11:03,020 --> 01:11:11,890 تو پھر ہم یہاں نئے نوڈ قدر فیلڈ، اس میں میدان میں برابر ہو، اور پھر ہم یہ تار. 907 01:11:11,890 --> 01:11:15,530 ہم نئے نوڈ کے اگلے پوائنٹر پہلے کی طرف اشارہ ہے، 908 01:11:15,530 --> 01:11:20,460 اور پھر سب سے پہلے نئے نوڈ کی طرف اشارہ کریں گے. 909 01:11:20,460 --> 01:11:25,120 کوڈ کا یہ پہلا لائنز، ہم اصل میں نئے نوڈ کی تعمیر کر رہے ہیں. 910 01:11:25,120 --> 01:11:27,280 اس تقریب کی آخری دو لائنوں لیکن پہلی ہیں. 911 01:11:27,280 --> 01:11:30,290 آپ اصل میں ایک تقریب میں باہر ھیںچو، ایک مدد گار تقریب میں کر سکتے ہیں. 912 01:11:30,290 --> 01:11:32,560 وہ اکثر مجھے کیا کرنا ہے، میں ایک تقریب میں اسے باہر ھیںچو، 913 01:11:32,560 --> 01:11:36,040 میں اسے تعمیر نوڈ کی طرح کچھ کہتے ہیں، 914 01:11:36,040 --> 01:11:40,410 اور یہ کہ prepend تقریب بہت چھوٹے رکھتا ہے، صرف 3 لائنوں تو ہے. 915 01:11:40,410 --> 01:11:48,710 میں اپنے تعمیر نوڈ تقریب ایک فون کر، اور پھر میں تار سب کچھ ہے. 916 01:11:48,710 --> 01:11:51,970 >> آخری بات میں آپ کو ظاہر کرنے کے لئے چاہتے ہیں، 917 01:11:51,970 --> 01:11:54,030 مجھے اور آپ کو اپنے آپ شامل اور وہ سب کر لیں گے، 918 01:11:54,030 --> 01:11:57,500 ہے کہ کس طرح ایک فہرست iterate پر. 919 01:11:57,500 --> 01:12:00,780 ایک کی فہرست میں iterate کے لئے مختلف طریقوں سے ایک گروپ ہیں. 920 01:12:00,780 --> 01:12:03,140 اس صورت میں، ہم نے ایک فہرست کی لمبائی کو تلاش کرنے کے لئے جا رہے ہیں. 921 01:12:03,140 --> 01:12:06,570 تو ہم = 0 کی حد کے ساتھ شروع ہو جاتے ہیں. 922 01:12:06,570 --> 01:12:11,580 یہ ایک تار کے لئے strlen لکھنے کی طرح ہے. 923 01:12:11,580 --> 01:12:17,780 اس کا ہے جو میں آپ کو لوپ کے لئے ظاہر یہ یہیں چاہتا ہوں. 924 01:12:17,780 --> 01:12:23,530 یہ تھوڑے funky لگ رہا ہے، یہ ہمیشہ کی طرح نہیں ہے int میں = 0، میں جو کچھ بھی <، میں + +. 925 01:12:23,530 --> 01:12:34,920 اس کے بجائے یہ ہماری متغیر (ن) کی ابتدا فہرست کے آغاز کے لئے ہے. 926 01:12:34,920 --> 01:12:40,620 اور پھر جبکہ ہماری iterator متغیر خالی نہیں ہے، ہم جاری رکھتے ہیں. 927 01:12:40,620 --> 01:12:46,340 یہ اس لئے ہے کیونکہ ہماری فہرست کے آخر کنونشن کی طرف سے اتارنا null ہو جائے گا. 928 01:12:46,340 --> 01:12:48,770 اور پھر + + کر کی بجائے، اضافہ، 929 01:12:48,770 --> 01:12:57,010 + کے منسلک فہرست برابر + N = ن اگلا> ہے. 930 01:12:57,010 --> 01:13:00,410 >> میں نے تمہیں یہاں خلیج میں بھر کیونکہ ہم وقت سے باہر ہو. 931 01:13:00,410 --> 01:13:09,300 لیکن یہ بات ذہن میں رکھنے کے طور پر آپ کو آپ کے spellr psets کام. 932 01:13:09,300 --> 01:13:11,650 لنک کی فہرست، اگر آپ ہیش کی میز پر عمل پیرا رہے ہیں، 933 01:13:11,650 --> 01:13:14,010 بہت ہاتھ میں ضرور آئے گا. 934 01:13:14,010 --> 01:13:21,780 اور چیز پر looping کے لئے اس جملے کو ہونے کی زندگی بہت آسان بنانے کے، امید ہے کہ جائے گا. 935 01:13:21,780 --> 01:13:25,910 کوئی سوال، جلدی سے؟ 936 01:13:25,910 --> 01:13:28,920 [سیم] تم مکمل sll اور سپریم کورٹ بھیج دیں گے؟ 937 01:13:28,920 --> 01:13:38,360 [Hardison] جی ہاں. میں مکمل سلائڈ اور مکمل sll اسٹیک اور queue.cs بھیج دیں گے. 938 01:13:38,360 --> 01:13:41,360 [CS50.TV]