1 00:00:00,000 --> 00:00:11,860 2 00:00:11,860 --> 00:00:13,120 >> اسپیکر 1: ٹھیک ہے، تو ہم واپس آ گئے. 3 00:00:13,120 --> 00:00:14,480 CS50 میں خوش آمدید. 4 00:00:14,480 --> 00:00:16,510 اس ہفتے سات کے آخر ہے. 5 00:00:16,510 --> 00:00:20,200 تو یہ آخری بار یاد ہے، ہم شروع تھوڑا سا زیادہ بہتر دیکھ 6 00:00:20,200 --> 00:00:21,100 اعداد و شمار کے ڈھانچے. 7 00:00:21,100 --> 00:00:25,110 اپ کے بعد سے اب تک، ہم واقعی نہیں تھا ہمارے اختیار میں یہ ایک سرنی تھا. 8 00:00:25,110 --> 00:00:29,340 >> لیکن ہم سرنی کو ختم کر کے طور پر اس سے پہلے نہیں تمام ہے کہ دلچسپ، جس میں یقینا اسے 9 00:00:29,340 --> 00:00:33,570 اصل میں، میں سے کچھ کیا ہو رہا ہے اس سادہ ڈیٹا کی pluses 10 00:00:33,570 --> 00:00:34,560 ڈھانچہ ابھی تک؟ 11 00:00:34,560 --> 00:00:36,110 اس میں اچھا کیا ہے؟ 12 00:00:36,110 --> 00:00:39,450 اب تک ہم نے دیکھا کے طور پر؟ 13 00:00:39,450 --> 00:00:42,540 تمہارے پاس کیا ہے؟ 14 00:00:42,540 --> 00:00:44,028 کچھ بھی نہیں. 15 00:00:44,028 --> 00:00:45,020 >> طالب: [اشراوی]. 16 00:00:45,020 --> 00:00:45,395 >> اسپیکر 1: وہ کیا ہے؟ 17 00:00:45,395 --> 00:00:46,410 >> طالب: [اشراوی]. 18 00:00:46,410 --> 00:00:47,000 >> اسپیکر: 1 فکسڈ فونز. 19 00:00:47,000 --> 00:00:51,260 ٹھیک ہے، تو کیوں مقررہ سائز اگرچہ اچھا ہے؟ 20 00:00:51,260 --> 00:00:53,180 >> طالب: [اشراوی]. 21 00:00:53,180 --> 00:00:56,240 >> اسپیکر 1: ٹھیک ہے، تو اس میں موثر ہے آپ کو ایک مختص کیا جا سکتا ہے احساس 22 00:00:56,240 --> 00:01:00,070 جگہ کی مقررہ رقم، جس سے امید ہے کہ بالکل واضح طور پر زیادہ سے زیادہ ہے 23 00:01:00,070 --> 00:01:01,180 کی جگہ آپ چاہتے ہیں کے طور پر. 24 00:01:01,180 --> 00:01:02,720 تو یہ بالکل ایک کے علاوہ ہو سکتا ہے. 25 00:01:02,720 --> 00:01:06,530 >> ایک سرنی کے ایک اور اپ کی طرف کیا ہے؟ 26 00:01:06,530 --> 00:01:07,610 جی ہاں؟ 27 00:01:07,610 --> 00:01:08,750 >> طالب: [اشراوی]. 28 00:01:08,750 --> 00:01:09,550 >> اسپیکر 1: تمام - افسوس ہے؟ 29 00:01:09,550 --> 00:01:11,270 >> طالب: [اشراوی]. 30 00:01:11,270 --> 00:01:13,620 >> اسپیکر 1: یاد میں تمام باکسز یا ایک دوسرے کے پیچھے اگلا، دوسرا. 31 00:01:13,620 --> 00:01:15,220 اور یہ کہ مددگار ہے - کیوں؟ 32 00:01:15,220 --> 00:01:15,970 یہ بالکل سچ ہے. 33 00:01:15,970 --> 00:01:18,611 لیکن کس طرح ہم اس حقیقت کا استحصال کر سکتے ہیں؟ 34 00:01:18,611 --> 00:01:21,500 >> طالب: [اشراوی]. 35 00:01:21,500 --> 00:01:24,490 >> اسپیکر 1: بالکل، ہم ٹریک رکھ سکتے ہیں کے سب کچھ جانتے ہوئے کی طرف سے ہے جہاں 36 00:01:24,490 --> 00:01:28,560 ایک یعنی پتہ، کا پتہ میموری کے اس حصہ کے پہلے بائٹ. 37 00:01:28,560 --> 00:01:30,420 یا سٹرنگ کی صورت میں، پہلی کا پتہ 38 00:01:30,420 --> 00:01:31,460 کہ سٹرنگ میں چار. 39 00:01:31,460 --> 00:01:33,330 اور وہاں سے، ہم حاصل کر سکتے ہیں سٹرنگ کے اختتام. 40 00:01:33,330 --> 00:01:35,710 ہم دوسرے عنصر، تلاش کر سکتے ہیں تیسرا عنصر، اور تو آگے. 41 00:01:35,710 --> 00:01:38,740 >> اور اس بیان کا اتنا پسند طریقہ خصوصیت arrays ہمیں دے یہ ہے کہ 42 00:01:38,740 --> 00:01:40,020 بے ترتیب تک رسائی. 43 00:01:40,020 --> 00:01:44,330 بس مربع بریکٹ کا استعمال کرتے ہوئے کی طرف سے سنکیتن اور ایک بڑی تعداد، آپ کو کود کر سکتے ہیں 44 00:01:44,330 --> 00:01:48,070 سرنی میں ایک مخصوص عنصر مسلسل وقت، بڑے اے میں 45 00:01:48,070 --> 00:01:49,810 ایک کے، تو بات کرنے کے لئے. 46 00:01:49,810 --> 00:01:51,080 >> لیکن کچھ downsides ہوئی ہے. 47 00:01:51,080 --> 00:01:53,110 ایک سرنی بہت آسانی سے کیا کیا نہیں؟ 48 00:01:53,110 --> 00:01:55,810 49 00:01:55,810 --> 00:01:57,170 اس میں اچھا کیا نہیں ہے؟ 50 00:01:57,170 --> 00:01:58,810 >> طالب: [اشراوی]. 51 00:01:58,810 --> 00:01:59,860 >> اسپیکر 1: وہ کیا ہے؟ 52 00:01:59,860 --> 00:02:00,530 >> طالب: [اشراوی]. 53 00:02:00,530 --> 00:02:01,460 >> اسپیکر: 1 سائز میں وسیع کرنا. 54 00:02:01,460 --> 00:02:04,800 سرنی کے downsides ہیں تو کیا واضح طور پر مخالف 55 00:02:04,800 --> 00:02:05,540 upsides ہیں. 56 00:02:05,540 --> 00:02:07,610 تو downsides میں سے ایک ہے یہ ایک مقررہ سائز ہے. 57 00:02:07,610 --> 00:02:09,400 تو کیا تم واقعی یہ نہیں بڑھ سکتا ہے. 58 00:02:09,400 --> 00:02:13,510 تم میں سے ایک بڑا حصہ reallocate کر سکتے ہیں میموری، اور پھر پرانے عناصر منتقل 59 00:02:13,510 --> 00:02:14,460 نئی صف میں. 60 00:02:14,460 --> 00:02:18,060 اور اس کے لئے تو مفت پرانی سرنی، مثال کے طور پر، malloc یا اسی طرح کا استعمال کرتے ہوئے کی طرف سے 61 00:02:18,060 --> 00:02:21,180 realloc ملاقات کی تقریب، جس میں reallocates میموری. 62 00:02:21,180 --> 00:02:25,490 >> Realloc، ایک ایک طرف کے طور پر، آپ کو دینے کے لئے کی کوشش کرتا ہے سرنی کے لئے اگلے ہے کہ میموری 63 00:02:25,490 --> 00:02:26,610 آپ پہلے سے ہی ہے. 64 00:02:26,610 --> 00:02:28,740 لیکن یہ چیزیں میں منتقل ہو سکتا ہے مکمل طور پر کے ارد گرد. 65 00:02:28,740 --> 00:02:30,710 لیکن مختصر میں، یہ ٹھیک ہے، مہنگا ہے؟ 66 00:02:30,710 --> 00:02:33,440 کیونکہ آپ کی میموری کا ایک حصہ ہے تو اس کے سائز، لیکن اگر تم واقعی ایک چاہتے ہیں 67 00:02:33,440 --> 00:02:36,710 اس کے سائز کی، اور آپ کو محفوظ کرنا چاہتے ہیں اصل عناصر، آپ کے پاس 68 00:02:36,710 --> 00:02:40,510 تقریبا ایک لکیری وقت کاپی عمل اس سے ایسا کرنے کی ضرورت ہے 69 00:02:40,510 --> 00:02:41,900 بوڑھے نئی صف. 70 00:02:41,900 --> 00:02:44,630 اور حقیقت آپریٹنگ مانگ رہا ہے بار بار کے نظام اور 71 00:02:44,630 --> 00:02:48,340 پھر میموری کی بڑی مقدار کے لئے شروع کر سکتے ہیں اس کے ساتھ ساتھ آپ کو کچھ وقت کی لاگت. 72 00:02:48,340 --> 00:02:52,250 تو یہ ایک نعمت اور ایک لعنت دونوں ہے ، حقیقت چھپانے کہ ان arrays 73 00:02:52,250 --> 00:02:53,860 مقررہ سائز کے ہیں. 74 00:02:53,860 --> 00:02:56,790 لیکن ہم اس کے بجائے کچھ متعارف کرانے اگر اس طرح، جس میں ہم نے ایک سے منسلک کہا جاتا ہے 75 00:02:56,790 --> 00:03:00,580 فہرست، ہم کچھ upsides ہو جاؤ اور چند ایک یہاں downsides کے ساتھ ساتھ. 76 00:03:00,580 --> 00:03:05,780 >> ایک سے منسلک فہرست میں صرف ایک ڈیٹا ہے تو ساخت اس میں سی structs سے بنا 77 00:03:05,780 --> 00:03:09,850 ایک struct، یاد، صرف ہے جہاں کیس، ایک یا ایک سے زیادہ مخصوص کے لئے ایک کنٹینر 78 00:03:09,850 --> 00:03:11,100 متغیر کی اقسام. 79 00:03:11,100 --> 00:03:16,110 اس صورت میں، کیا اعداد و شمار اقسام کرتے ہیں struct کے اندر ہونا ظاہر ہے کہ 80 00:03:16,110 --> 00:03:17,600 آخری بار ہم نے ایک نوڈ بلایا؟ 81 00:03:17,600 --> 00:03:19,380 ان rectangles میں سے ہر ایک نوڈ ہے. 82 00:03:19,380 --> 00:03:22,660 اور چھوٹی rectangles میں سے ہر ایک اس کے اندر ایک اعداد و شمار کے قسم ہے. 83 00:03:22,660 --> 00:03:25,300 ہم کس قسم کے کہا وہ پیر کو تھے؟ 84 00:03:25,300 --> 00:03:26,478 جی ہاں؟ 85 00:03:26,478 --> 00:03:27,870 >> طالب: [اشراوی]. 86 00:03:27,870 --> 00:03:30,721 >> اسپیکر 1: ایک متغیر اور ایک پوائنٹر، یا مزید خاص طور پر، ایک INT، (ن) کے لئے، 87 00:03:30,721 --> 00:03:32,180 اور آخر میں موجود ایک پوائنٹر. 88 00:03:32,180 --> 00:03:35,360 ان دونوں میں، 32 بٹیں ہو ہو اس CS50 کی طرح ایک کمپیوٹر پر کم از کم 89 00:03:35,360 --> 00:03:37,980 آلات، اور وہ ہو تو سائز میں یکساں طور پر تیار کی. 90 00:03:37,980 --> 00:03:42,260 >> تو کیا پوائنٹر استعمال کر رہے ہیں بظاہر لئے اگرچہ؟ 91 00:03:42,260 --> 00:03:47,690 arrays تھے کیوں اب اس تیر کے نشان کا اضافہ بہت اچھی اور صاف اور سادہ؟ 92 00:03:47,690 --> 00:03:50,460 پوائنٹر کے لئے کیا کر رہی ہے ہمیں ان مراکز میں سے ہر ایک میں؟ 93 00:03:50,460 --> 00:03:52,160 >> طالب: [اشراوی]. 94 00:03:52,160 --> 00:03:52,465 >> اسپیکر 1: بالکل درست. 95 00:03:52,465 --> 00:03:54,120 جہاں یہ آپ کو بتا رہی ہے اگلے ایک ہے. 96 00:03:54,120 --> 00:03:57,350 تو میں قسم کی قیاس کا استعمال کرتے ہیں کے حل کرنے کے لئے ایک دھاگے کا استعمال کرتے ہوئے 97 00:03:57,350 --> 00:03:59,180 ایک ساتھ مل کر ان نوڈس موضوع. 98 00:03:59,180 --> 00:04:01,760 اور یہ کہ ہم کے ساتھ کر رہے ہیں بالکل وہی جو ہے اشارہ ہے کیونکہ ان میں سے ہر ایک 99 00:04:01,760 --> 00:04:06,360 میموری کی مقدار نہیں ہو سکتا کر سکتے ہیں یا ملحق، واپس واپس کرنے کے لئے واپس کرنے کے لئے 100 00:04:06,360 --> 00:04:09,500 RAM کے اندر، کیونکہ ہر بار جب آپ malloc کہہ کہتے ہیں، مجھے کافی دے 101 00:04:09,500 --> 00:04:12,510 ایک نئے نوڈ کے لئے رائج ہے، یہ شاید یہاں یا یہاں ہو سکتا ہے. 102 00:04:12,510 --> 00:04:13,120 یہاں ہو سکتا ہے. 103 00:04:13,120 --> 00:04:13,730 یہاں ہو سکتا ہے. 104 00:04:13,730 --> 00:04:14,640 آپ کو صرف نہیں جانتے. 105 00:04:14,640 --> 00:04:17,880 >> لیکن کے پتے میں اشارہ کا استعمال کرتے ہوئے ان نوڈ، آپ سلائی ان کر سکتے ہیں 106 00:04:17,880 --> 00:04:22,370 ایک ساتھ مل کر ضعف لگتا ہے کہ ایک طرح سے یہ چیزیں ہیں یہاں تک کہ اگر ایک فہرست کی طرح 107 00:04:22,370 --> 00:04:26,770 آپ کے تمام ایک یا ایک سے بھر میں باہر پھیل آپ کی دو یا دو سے RAM کے اپنے چار گیگا بائٹس 108 00:04:26,770 --> 00:04:28,760 اپنے کمپیوٹر کے اندر. 109 00:04:28,760 --> 00:04:33,230 >> ، پھر، کمی تو ایک سے منسلک فہرست میں کیا ہے؟ 110 00:04:33,230 --> 00:04:34,670 ہم ایک قیمت کیا ہے بظاہر ادا؟ 111 00:04:34,670 --> 00:04:36,010 >> طالب: [اشراوی]. 112 00:04:36,010 --> 00:04:36,920 >> اسپیکر: 1 مزید جگہ، ہے نا؟ 113 00:04:36,920 --> 00:04:39,340 ہم نے اس معاملے میں رقم دوگنی ہے جگہ کی ہم چلے گئے کیونکہ 114 00:04:39,340 --> 00:04:43,500 ہر ایک کے لئے ہر نوڈ کے لئے 32 بٹیں، سے INT، تو اب ہم 64 بٹس کیونکہ 115 00:04:43,500 --> 00:04:45,050 اس کے ساتھ ساتھ ایک پوائنٹر کے ارد گرد رکھنا. 116 00:04:45,050 --> 00:04:48,860 آپ کو زیادہ کارکردگی کو حاصل کرنے کے اپنے struct تو اس سادہ بات سے بھی بڑی ہے. 117 00:04:48,860 --> 00:04:52,020 آپ اصل میں اندر ایک طالب علم ہے تو جس کی ڈور کے ایک جوڑے کے لئے ہے 118 00:04:52,020 --> 00:04:55,430 نام اور گھر، شاید ایک شناختی نمبر، مکمل طور پر ہو سکتا ہے کہ کچھ دوسرے شعبوں. 119 00:04:55,430 --> 00:04:59,000 >> اگر آپ ایک بڑی کافی struct ہے اگر ایسا ہے تو تو شاید پوائنٹر کی قیمت ہے 120 00:04:59,000 --> 00:05:00,010 نہیں اتنا بڑا سودا. 121 00:05:00,010 --> 00:05:03,570 یہ اس میں ایک کونے کیس کا تھوڑا سا ہے ہم اس طرح کے ایک سادہ آدم محفوظ رہے ہیں 122 00:05:03,570 --> 00:05:04,760 منسلک کی فہرست کے اندر. 123 00:05:04,760 --> 00:05:05,790 لیکن بات ایک ہی ہے. 124 00:05:05,790 --> 00:05:08,230 تمہیں ضرور زیادہ خرچ کر رہے ہیں میموری، لیکن آپ کو ہو رہی ہے 125 00:05:08,230 --> 00:05:08,990 لچک. 126 00:05:08,990 --> 00:05:12,280 اب میں ایک عنصر شامل کرنا چاہتے ہیں کیونکہ اگر اس فہرست کے آغاز میں، 127 00:05:12,280 --> 00:05:14,340 میں ایک نیا نوڈ مختص کرنا پڑتا ہے. 128 00:05:14,340 --> 00:05:17,180 اور میں ان لوگوں کو اپ ڈیٹ کرنے کی ضرورت صرف منتقل کی طرف سے کسی نہ کسی طرح تیر 129 00:05:17,180 --> 00:05:17,980 کے ارد گرد کچھ اشارہ. 130 00:05:17,980 --> 00:05:20,580 >> میں میں کچھ داخل کرنا چاہتے ہیں تو فہرست کے وسط، میں کرنے کی ضرورت نہیں 131 00:05:20,580 --> 00:05:24,410 ہم میں کیا تھا کی طرح ایک طرف سب کو دھکا ہمارے رضاکاروں کے ساتھ ہفتے کی ماضی کی جو 132 00:05:24,410 --> 00:05:25,700 ایک سرنی کی نمائندگی کی. 133 00:05:25,700 --> 00:05:29,470 میں نے صرف ایک نئے نوڈ مختص کر سکتے ہیں تو صرف میں تیر کی طرف اشارہ 134 00:05:29,470 --> 00:05:32,290 مختلف سمتوں ایسا نہیں ہوتا کیونکہ اصل میں رہنا 135 00:05:32,290 --> 00:05:35,670 میں نے تیار کی ہے کی طرح میموری ایک سچے لائن یہاں کی سکرین پر یہ. 136 00:05:35,670 --> 00:05:38,400 >> اور پھر آخر میں، آپ داخل کرنا چاہتے ہیں تو فہرست کے آخر میں کچھ ہے 137 00:05:38,400 --> 00:05:39,210 بھی آسان. 138 00:05:39,210 --> 00:05:43,320 یہ صوابدیدی سنکیتن کی طرح ہے لیکن 34 کی پوائنٹر، ایک اندازہ لے. 139 00:05:43,320 --> 00:05:46,710 سب سے زیادہ اس کے پوائنٹر کی قیمت کیا ہے ایک بوڑھے کی طرح کا ملبہ تیار کی قسم 140 00:05:46,710 --> 00:05:47,700 وہاں اسکول اینٹینا؟ 141 00:05:47,700 --> 00:05:48,920 >> طالب: [اشراوی]. 142 00:05:48,920 --> 00:05:49,900 >> اسپیکر 1: شاید یہ نیا null ہے. 143 00:05:49,900 --> 00:05:52,710 اور یقینا یہ ہے کہ ایک مصنف کی شہوت انگیز null کی نمائندگی. 144 00:05:52,710 --> 00:05:56,310 کیونکہ تم بالکل اور یہ شہوت انگیز null ہے جاننے کی ضرورت ہے جہاں ایک لنک کے آخر 145 00:05:56,310 --> 00:06:00,050 فہرست آپ کو مندرجہ ذیل رکھنا کہیں ایسا نہ ہو، ہے اور یہ تیر کی پیروی اور مندرجہ ذیل 146 00:06:00,050 --> 00:06:01,170 کچھ ردی کی قیمت پر. 147 00:06:01,170 --> 00:06:06,230 تو شہوت انگیز null نہیں ہے کہ ظاہر کرے گا نمبر 34 کے حق کے لئے زیادہ نوڈ، 148 00:06:06,230 --> 00:06:07,200 اس معاملے میں. 149 00:06:07,200 --> 00:06:10,270 >> تو ہم کو نافذ کر سکتے ہیں کی تجویز کوڈ میں اس نوڈ. 150 00:06:10,270 --> 00:06:12,130 اور ہم اس طرح دیکھا ہے نحو کے پہلے. 151 00:06:12,130 --> 00:06:15,090 Typedef صرف کے لئے ایک نئی قسم کی وضاحت کرتا ہے ہم سے، جیسا کہ ہمیں ایک متبادل فراہم کرتا ہے 152 00:06:15,090 --> 00:06:17,100 سٹرنگ چار * لئے تھا. 153 00:06:17,100 --> 00:06:21,030 اس صورت میں، یہ ہمیں دینے کے لئے جا رہا ہے آشلپی سنکیتن تاکہ struct نوڈ 154 00:06:21,030 --> 00:06:24,010 کی بجائے صرف کے طور پر لکھا جا سکتا ہے بہت کلینر ہے جو نوڈ،. 155 00:06:24,010 --> 00:06:25,360 یہ کم شبدبہل بہت ہے. 156 00:06:25,360 --> 00:06:30,080 >> ایک نوڈ کے اندر بظاہر ایک INT ہے کہا جاتا ہے (ن)، اور پھر ایک struct نوڈ * 157 00:06:30,080 --> 00:06:34,670 جو ہم چاہتے تھے، بالکل وہی جو مطلب ہے تیر دوسرے، ایک پوائنٹر مطلب 158 00:06:34,670 --> 00:06:36,940 بالکل وہی اعداد و شمار کی قسم کی نوڈ. 159 00:06:36,940 --> 00:06:40,300 اور میں ہم نے ایک پر عمل درآمد کر سکتے ہیں کی تجویز اس طرح تلاش کی تقریب، جس میں 160 00:06:40,300 --> 00:06:41,890 پہلی نظر لگتا ہے ہو سکتا تھوڑا پیچیدہ. 161 00:06:41,890 --> 00:06:43,330 لیکن اس کے تناظر میں دیکھتے ہیں. 162 00:06:43,330 --> 00:06:45,480 >> مجھے یہاں آلات کے چلتے ہیں. 163 00:06:45,480 --> 00:06:48,460 مجھے بلایا ایک فائل کھول دو فہرست صفر ڈاٹ ح. 164 00:06:48,460 --> 00:06:53,950 اور یہ کہ ہم صرف تعریف پر مشتمل ہے صرف اس کے اعداد و شمار کے لئے ایک لمحے پہلے دیکھا 165 00:06:53,950 --> 00:06:55,390 قسم کی ایک نوڈ سے ملاقات کی. 166 00:06:55,390 --> 00:06:57,350 تو ہم اس کے ایک نقطہ ح فائل میں ڈال دیا ہے. 167 00:06:57,350 --> 00:07:01,430 >> اور ایک ایک طرف، یہ بھی مانو تمہیں دیکھنے کے لئے کے بارے میں ہیں کہ پروگرام ہے 168 00:07:01,430 --> 00:07:05,410 تمام نہیں کہ پیچیدہ ہے، یہ واقعی ہے کرنے کے لئے ایک پروگرام لکھنے جب کنونشن 169 00:07:05,410 --> 00:07:10,270 ھیںچو کرنے کے لئے، اعداد و شمار اقسام کی طرح چیزوں کو ڈال کبھی کبھی، اپنے اندر کے constants 170 00:07:10,270 --> 00:07:13,210 ہیڈر فائل اور ضروری نہیں کہ میں اپنے سی فائل، یقینی طور پر جب آپ 171 00:07:13,210 --> 00:07:17,370 پروگراموں کے بڑے اور بڑے ہو جاؤ، تا کہ دونوں کے لئے ملاحظہ کرنے کے لئے جہاں آپ کو معلوم ہے 172 00:07:17,370 --> 00:07:20,840 بعض صورتوں میں دستاویزات، یا اس طرح کی مبادیات کے لئے 173 00:07:20,840 --> 00:07:22,360 کچھ قسم کی تعریف. 174 00:07:22,360 --> 00:07:25,680 >> میں اب فہرست صفر ڈاٹ کھول تو C، کچھ چیزیں محسوس. 175 00:07:25,680 --> 00:07:29,090 یہ سب سے زیادہ چند ہیڈر فائلوں، شامل ہیں جن میں سے ہم نے اس سے پہلے دیکھا ہے. 176 00:07:29,090 --> 00:07:31,980 یہ اس کے اپنے ہیڈر فائل بھی شامل ہے. 177 00:07:31,980 --> 00:07:35,200 >> اور ایک ایک طرف کے طور پر، کیوں کہ ڈبل ہے یہاں کی قیمت درج کرنے، کے طور پر زاویہ کی مخالفت 178 00:07:35,200 --> 00:07:38,340 لائن پر بریکٹ کہ میں وہاں پر روشنی ڈالی ہے؟ 179 00:07:38,340 --> 00:07:39,180 >> طالب: [اشراوی]. 180 00:07:39,180 --> 00:07:40,460 >> اسپیکر 1: جی ہاں تو یہ ایک مقامی فائل ہے. 181 00:07:40,460 --> 00:07:44,300 یہاں آپ کی اپنی کی ایک مقامی فائل ہے تو اگر لائن 15 پر، مثال کے طور پر، آپ استعمال 182 00:07:44,300 --> 00:07:46,570 ڈبل قیمت درج کرنے کی بجائے angled بریکٹ کی. 183 00:07:46,570 --> 00:07:48,270 >> اب یہ دلچسپ کی قسم ہے. 184 00:07:48,270 --> 00:07:51,830 میں نے ایک عالمی سطح پر اعلان کر دیا ہے کہ نوٹس لائن 18 پر اس پروگرام میں متغیر 185 00:07:51,830 --> 00:07:55,910 سب سے پہلے کہا جاتا ہے، اس کے کیا جا رہا ہے کا خیال ہے سب سے پہلے کرنے کے لئے ایک پوائنٹر ہونے جا رہا 186 00:07:55,910 --> 00:07:59,190 میری منسلک فہرست میں نوڈ، اور میں نے میں نے اس کی وجہ یہ نیا null پر initialized 187 00:07:59,190 --> 00:08:02,310 کسی بھی اصل مختص نہیں ابھی صرف نوڈ. 188 00:08:02,310 --> 00:08:07,570 >> تو یہ کیا ہے کہ ہم، pictorially، کی نمائندگی کرتا ہے تصویر کے طور پر میں ایک لمحے پہلے دیکھا 189 00:08:07,570 --> 00:08:10,090 اب تک اس پوائنٹر ہاتھ کی طرف چھوڑ دیا. 190 00:08:10,090 --> 00:08:12,260 تو اب، کہ پوائنٹر ایک تیر نہیں ہے. 191 00:08:12,260 --> 00:08:14,590 اس کی بجائے صرف شہوت انگیز null ہے. 192 00:08:14,590 --> 00:08:17,880 لیکن یہ کیا ہو گی کی نمائندگی کرتا ہے پہلی اصل کا پتہ 193 00:08:17,880 --> 00:08:19,480 اس فہرست میں نوڈ. 194 00:08:19,480 --> 00:08:22,120 تو میں نے اسے ایک عالمی ہے نافذ کر دیا ہے یہ سب آپ دیکھیں گے کے طور پر، کیونکہ 195 00:08:22,120 --> 00:08:25,310 پروگرام کی زندگی میں عمل درآمد کرتا ہے میرے لئے ایک سے منسلک فہرست. 196 00:08:25,310 --> 00:08:27,050 >> اب میں یہاں چند prototypes مل گیا ہے. 197 00:08:27,050 --> 00:08:31,190 میں جیسی خصوصیات کو لاگو کرنے کا فیصلہ کیا منسوخی، اندراج، تلاش کرنے، اور 198 00:08:31,190 --> 00:08:31,740 traversal - 199 00:08:31,740 --> 00:08:35,210 بھر میں گزشتہ صرف کیا جا رہا ہے واک فہرست، اس کے عناصر کو باہر پرنٹ. 200 00:08:35,210 --> 00:08:36,750 اور اب یہاں میرا بنیادی معمول ہے. 201 00:08:36,750 --> 00:08:39,890 اور ہم پر بہت زیادہ وقت خرچ نہیں رکھا جائے اس کے بعد سے یہ امید ہے کہ، اس قسم کی ہے 202 00:08:39,890 --> 00:08:41,780 اب تک پرانے ٹوپی. 203 00:08:41,780 --> 00:08:45,370 >> میں، درج ذیل میں کرنے کے لئے جا رہا ہوں صارف تعاون کرتے ہوئے. 204 00:08:45,370 --> 00:08:47,300 ایک تو، میں پرنٹ کرنے کے لئے جا رہا ہوں یہ مینو باہر. 205 00:08:47,300 --> 00:08:49,420 اور میں اس کے طور پر فارمیٹ کیا ہے cleanly میں کر سکتا ہوں کے طور پر. 206 00:08:49,420 --> 00:08:52,240 کا مطلب ہے کہ ایک میں صارف کی قسم، کہ تو وہ کچھ کو حذف کرنا چاہتے. 207 00:08:52,240 --> 00:08:54,560 کا مطلب ہے کہ دونوں میں صارف کی قسم، کہ تو وہ کچھ داخل کرنا چاہتے ہیں. 208 00:08:54,560 --> 00:08:55,930 اور تو آگے. 209 00:08:55,930 --> 00:08:58,270 میں اس وقت فوری طور پر کرنے کے لئے جا رہا ہوں پھر ایک کمانڈ کے لئے. 210 00:08:58,270 --> 00:08:59,300 اور پھر میں GetInt استعمال کرنے کے لئے جا رہا ہوں. 211 00:08:59,300 --> 00:09:02,790 >> تو یہ ایک بہت سادہ menuing ہے آپ صرف ٹائپ کرنا ہے جہاں انٹرفیس 212 00:09:02,790 --> 00:09:05,270 ایک سے ایک بڑی تعداد کی تعریفیں ان لوگوں کو حکم دیتا ہے کے. 213 00:09:05,270 --> 00:09:08,730 اور اب میں ایک اچھا صاف سوئچ ہے پر سوئچ کرنے کے لئے جا رہا ہے کہ بیان 214 00:09:08,730 --> 00:09:10,090 صارف رکنیت ٹائپ جو کچھ بھی 215 00:09:10,090 --> 00:09:12,180 وہ ایک ٹائپ، تو میں کروں گا حذف فون اور توڑ. 216 00:09:12,180 --> 00:09:14,380 وہ دو ٹائپ ہے، تو میں کروں گا داخل فون اور توڑ. 217 00:09:14,380 --> 00:09:16,490 >> اور اب میں ہر رکھ دیا ہے کا نوٹس ایک ہی لائن میں ان میں سے. 218 00:09:16,490 --> 00:09:18,360 یہ تو صرف ایک stylistic فیصلہ ہے. 219 00:09:18,360 --> 00:09:20,210 عام طور پر ہم کچھ دیکھا ہے اس طرح. 220 00:09:20,210 --> 00:09:23,260 لیکن میں صرف واضح طور سے، میرے پروگرام کا فیصلہ مزید پڑھنے کے قابل لگ رہا تھا کیونکہ 221 00:09:23,260 --> 00:09:25,980 اس کے لئے صرف چار مقدمات تھا صرف اس طرح کی فہرست. 222 00:09:25,980 --> 00:09:28,360 سٹائل کے مکمل طور پر قانونی استعمال کے. 223 00:09:28,360 --> 00:09:31,480 اور میں کے طور پر اس وقت تک ایسا کرنے جا رہا ہوں صارف صفر ٹائپ نہیں کیا گیا ہے، جس میں 224 00:09:31,480 --> 00:09:33,910 فیصلہ کیا ہے کہ وہ چھوڑ کرنا چاہتے ہیں مطلب ہو گا. 225 00:09:33,910 --> 00:09:36,630 >> تو اب میں کیا محسوس یہاں کیا کرنے والے. 226 00:09:36,630 --> 00:09:38,650 میں بظاہر فہرست کو آزاد کرنے جا رہا ہوں. 227 00:09:38,650 --> 00:09:40,230 صرف ایک لمحے میں اس پر لیکن زیادہ. 228 00:09:40,230 --> 00:09:41,640 کی پہلی اس پروگرام کو چلانے کے ہیں. 229 00:09:41,640 --> 00:09:45,250 تو مجھے ایک بڑے ٹرمینل کرنے دو کھڑکی، ڈوٹ سلیش فہرست 0. 230 00:09:45,250 --> 00:09:49,510 میں کی طرف سے آگے بڑھو اور شامل کرنے کے لئے جا رہا ہوں ٹائپنگ دو، اب ایک 50 کی طرح تعداد، اور 231 00:09:49,510 --> 00:09:51,590 آپ کی فہرست میں اب 50 ہے نظر آئے گا. 232 00:09:51,590 --> 00:09:53,380 اور میرے متن میں صرف تھوڑا سا اپ scrolled. 233 00:09:53,380 --> 00:09:55,940 تو اب کی فہرست پر مشتمل ہے کا نوٹس نمبر 50. 234 00:09:55,940 --> 00:09:58,220 >> دو لے کر ایک اور داخل کرتے ہیں کی. 235 00:09:58,220 --> 00:10:01,630 کی طرح تعداد میں ٹائپ کرتے ہیں. 236 00:10:01,630 --> 00:10:03,940 فہرست اب 50 کے بعد ایک، ہے. 237 00:10:03,940 --> 00:10:06,020 یہ صرف ایک ٹیکسٹ نمائندگی ہے تو فہرست کی. 238 00:10:06,020 --> 00:10:10,550 اور کی طرح ایک اور نمبر داخل کریں دو امید ہے جو تعداد میں 42، 239 00:10:10,550 --> 00:10:14,620 کیونکہ وسط میں ختم ہو جا خاص قسم میں اس پروگرام یہ 240 00:10:14,620 --> 00:10:16,320 یہ اضافہ ان کے طور پر عناصر. 241 00:10:16,320 --> 00:10:17,220 تو ہم نے اسے ہے. 242 00:10:17,220 --> 00:10:20,730 کہ سکتا سپر سادہ پروگرام بالکل میں ایک سرنی کا استعمال کیا، لیکن 243 00:10:20,730 --> 00:10:23,280 ایک لنک کی فہرست کا استعمال کرتے ہوئے کیا جانا ہو صرف اس لئے میں متحرک طور پر کر سکتے ہیں 244 00:10:23,280 --> 00:10:24,610 بڑھنے اور یہ مرجھا. 245 00:10:24,610 --> 00:10:28,470 >> لہذا، اگر کی تلاش کے لئے ایک نظر لے جانے میں کمانڈ تین چلانے، میں تلاش کرنا چاہتے ہیں 246 00:10:28,470 --> 00:10:31,040 نمبر 43، کا کہنا ہے کہ، کے لئے. 247 00:10:31,040 --> 00:10:34,190 اور کچھ نہیں بظاہر پایا گیا تھا، میں نے کوئی جواب نہیں واپس مل گیا ہے. 248 00:10:34,190 --> 00:10:35,010 تو پھر سے یہ کرتے ہیں. 249 00:10:35,010 --> 00:10:35,690 تلاش کریں. 250 00:10:35,690 --> 00:10:39,520 50، یا بلکہ تلاش کے لئے چلو تلاش کریں 42 کے لئے، جو ایک اچھا ہے 251 00:10:39,520 --> 00:10:40,850 تھوڑا سا ٹھیک ٹھیک معنی. 252 00:10:40,850 --> 00:10:42,610 اور میں نے وہاں کی زندگی کے معنی پایا. 253 00:10:42,610 --> 00:10:44,990 تم نہیں جانتے تو نمبر 42، ریفرنس، گوگل. 254 00:10:44,990 --> 00:10:45,350 ٹھیک ہے. 255 00:10:45,350 --> 00:10:47,130 تو کیا میرے لیے یہ پروگرام کیا ہے؟ 256 00:10:47,130 --> 00:10:50,660 یہ صرف مجھ سے اس طرح داخل کرنے کی اجازت ہے عناصر کے لئے دور اور تلاش. 257 00:10:50,660 --> 00:10:53,650 >> پر، پھر، روزہ اگے چلو ہم میں glanced کہ تقریب 258 00:10:53,650 --> 00:10:55,360 پیر کو ایک جھلکی کے طور پر. 259 00:10:55,360 --> 00:10:59,620 اس تقریب تو، میں نے کے لئے تلاش کا دعوی سب سے پہلے کی طرف سے فہرست میں ایک عنصر 260 00:10:59,620 --> 00:11:03,830 ایک صارف نے فورا اور پھر بلا ایک حقیقی INT حاصل کرنے کے لئے GetInt 261 00:11:03,830 --> 00:11:05,060 آپ کے لئے تلاش کرنے کے لئے چاہتے ہیں. 262 00:11:05,060 --> 00:11:06,460 >> پھر اگر اس نوٹس کے. 263 00:11:06,460 --> 00:11:10,690 میں نے ایک عارضی متغیر بنانے کے لئے جا رہا ہوں لائن 188 میں پوائنٹر کہا جاتا ہے - 264 00:11:10,690 --> 00:11:11,270 PTR - 265 00:11:11,270 --> 00:11:12,440 یہ کچھ بھی بلا سکتی تھی. 266 00:11:12,440 --> 00:11:16,140 اور یہ ایک نوڈ کرنے کے لئے ایک پوائنٹر ہے میں وہاں نوڈ * نے کہا کہ اس وجہ سے. 267 00:11:16,140 --> 00:11:19,900 اور میں اس کے برابر ہونے کی ابتدا کر رہا ہوں سب سے پہلے تو میں نے موثر انداز میں ہے کہ میرے 268 00:11:19,900 --> 00:11:22,860 انگلی، بہت پر بات کرنے کے لئے فہرست کے پہلے عنصر. 269 00:11:22,860 --> 00:11:27,460 یہاں میرے دائیں ہاتھ PTR میں ہے اگر ایسا ہے تو ایک ہی بات کی طرف اشارہ ہے کہ سب سے پہلے 270 00:11:27,460 --> 00:11:28,670 کی طرف اشارہ کیا جاتا ہے. 271 00:11:28,670 --> 00:11:31,430 >> تو اب واپس کوڈ میں، آگے کیا ہوگا - 272 00:11:31,430 --> 00:11:35,070 iterating جب یہ ایک عام مثال ہے ایک کی طرح ایک ساخت سے زیادہ 273 00:11:35,070 --> 00:11:35,970 منسلک فہرست. 274 00:11:35,970 --> 00:11:40,410 جبکہ میں نے مندرجہ ذیل کام کرنے جا رہا ہوں پوائنٹر تو نل کے برابر نہیں ہے جبکہ 275 00:11:40,410 --> 00:11:47,530 میری اںگلی کچھ شہوت انگیز null طرف اشارہ نہیں کر رہا ہے قدر پوائنٹر تیر ن ن برابر ہو. 276 00:11:47,530 --> 00:11:52,290 ہم نے (ن) یہ ہے کہ سب سے پہلے توجہ دیں گے کیا فی GetInts میں ٹائپ صارف یہاں کہتے ہیں. 277 00:11:52,290 --> 00:11:54,280 >> اور پوائنٹر تیر (ن) کا مطلب کیا ہے؟ 278 00:11:54,280 --> 00:11:59,020 ہم یہاں تصویر پر واپس جانا ٹھیک ہے، اگر میں ایک انگلی کی طرف اشارہ ہے تو 279 00:11:59,020 --> 00:12:02,960 نو، پر مشتمل ہے کہ سب سے پہلے نوڈ تیر بنیادی طور پر اس کے پاس جانے کا مطلب ہے کہ 280 00:12:02,960 --> 00:12:08,860 نوڈ اور، مقام (ن) میں قدر قبضہ اس صورت میں، اعداد و شمار کے میدان (ن) سے ملاقات کی. 281 00:12:08,860 --> 00:12:14,120 >> ایک ایک طرف کے طور پر - اور ہم اس ایک جوڑے کو دیکھا ہفتے کے پہلے کسی نے پوچھا - 282 00:12:14,120 --> 00:12:18,840 یہ نحو نئی ہے، لیکن یہ نہیں کرتا ہم سے اختیارات دے کہ ہم 283 00:12:18,840 --> 00:12:20,040 پہلے سے ہی نہیں تھا. 284 00:12:20,040 --> 00:12:25,325 کا استعمال کرتے ہوئے کے برابر اس جملے سے کیا تھا ڈاٹ سنکیتن اور ستارہ ایک جوڑے 285 00:12:25,325 --> 00:12:29,490 ہفتے کے پہلے ہم واپس کھلی جب یہ تھوڑا سا وقت سے پہلے ہی پرت؟ 286 00:12:29,490 --> 00:12:31,780 >> طالب: [اشراوی]. 287 00:12:31,780 --> 00:12:38,880 >> اسپیکر 1: بالکل، یہ ستارہ تھا، اور اس کے بعد اس کے ساتھ، سٹار ڈاٹ N تھا 288 00:12:38,880 --> 00:12:41,930 یہاں قوسین، جس میں لگتا ہے، واضح طور سے، میں نے بہت سوچنے کے 289 00:12:41,930 --> 00:12:43,320 پڑھنے کے لئے مزید خفیہ. 290 00:12:43,320 --> 00:12:46,270 لیکن ستارہ پوائنٹر، ہمیشہ کی طرح، کا مطلب ہے کہ وہاں جاتے ہیں. 291 00:12:46,270 --> 00:12:49,090 اور ایک بار تم نے کیا اعداد و شمار، وہاں ہو میدان میں آپ تک رسائی حاصل کرنا چاہتے ہیں؟ 292 00:12:49,090 --> 00:12:52,730 ویسے آپ تک رسائی حاصل کرنے ڈاٹ سنکیتن کا استعمال کرتے ہیں ایک structs اعداد و شمار کے میدان، اور میں 293 00:12:52,730 --> 00:12:54,140 خاص طور پر (ن) چاہتے ہیں. 294 00:12:54,140 --> 00:12:56,240 >> سچ کہوں تو، میں اس بحث کرے گی پڑھنے کے لئے صرف مشکل ہے. 295 00:12:56,240 --> 00:12:58,080 کہاں یاد رکھنا مشکل ہے قوسین، جاتے ہو 296 00:12:58,080 --> 00:12:59,030 سٹار اور اس کے تمام. 297 00:12:59,030 --> 00:13:02,150 تو دنیا میں کچھ syntactic اپنایا چینی، تو بات کرنے کے لئے. 298 00:13:02,150 --> 00:13:04,740 کہہ کے بس ایک سیکسی راستہ، اس کے برابر ہے، اور 299 00:13:04,740 --> 00:13:05,970 شاید زیادہ بدیہی. 300 00:13:05,970 --> 00:13:09,600 پوائنٹر واقعی ایک پوائنٹر ہے تو، تیر سنکیتن کا مطلب ہے کہ وہاں جاکر تلاش 301 00:13:09,600 --> 00:13:11,890 اس معاملے میں میدان (ن) سے ملاقات کی. 302 00:13:11,890 --> 00:13:13,660 >> مجھے وہ مل اگر ایسا ہے تو میں کیا کرتی ہوں نوٹس. 303 00:13:13,660 --> 00:13:17,430 میں صرف باہر پرنٹ، میں، فیصد میں پایا کہ INT کی قدر میں plugging. 304 00:13:17,430 --> 00:13:20,730 میں قسم کی صرف ایک سیکنڈ کے لئے سونے فون کرنے کے لئے سکرین پر روک دیں چیزوں کی 305 00:13:20,730 --> 00:13:22,900 صارف کو جذب کرنے کے لئے ایک دوسرے کو دے کیا بس ہو گیا. 306 00:13:22,900 --> 00:13:24,290 اور پھر میں توڑ. 307 00:13:24,290 --> 00:13:26,330 دوسری صورت میں، میں کیا کروں؟ 308 00:13:26,330 --> 00:13:30,960 مجھے برابر کرنے کے پوائنٹر کو اپ ڈیٹ اگلے پوائنٹر تیر. 309 00:13:30,960 --> 00:13:35,840 >> تو صرف واضح کرنے کے لئے، اس کے جانے کا مطلب یہ ہے ، میرے پرانے اسکول سنکیتن وہاں کا استعمال کرتے ہوئے. 310 00:13:35,840 --> 00:13:39,580 یہ جو کچھ بھی کرنے کے لئے جانے کے لئے کا مطلب ہے تو آپ کو بہت میں، جس کی طرف اشارہ کر رہے ہیں 311 00:13:39,580 --> 00:13:43,660 پہلے کیس میں کی طرف اشارہ کر رہا ہے اس میں نو کے ساتھ struct. 312 00:13:43,660 --> 00:13:44,510 تو میں وہاں جا چکے ہیں. 313 00:13:44,510 --> 00:13:47,880 اور پھر ڈاٹ سنکیتن کا مطلب ہے، اگلے کم قیمت حاصل کریں. 314 00:13:47,880 --> 00:13:50,470 >> لیکن قیمت یہ تیار کی ہے اگرچہ ایک تنگ کے طور پر، صرف ایک نمبر ہے. 315 00:13:50,470 --> 00:13:51,720 یہ ایک عددی پتہ ہے. 316 00:13:51,720 --> 00:13:55,670 چاہے کوڈ کے اس ایک لائن تو ، اس طرح لکھا مزید خفیہ 317 00:13:55,670 --> 00:14:00,190 راستے میں، یا اس طرح، تھوڑا سا زیادہ بدیہی طریقہ، صرف میرے ہاتھ میں منتقل مطلب 318 00:14:00,190 --> 00:14:03,460 اگلے ایک سب سے پہلے نوڈ سے، پھر اور پھر اگلے ایک، اور 319 00:14:03,460 --> 00:14:05,320 ایک اگلے، اور تو آگے. 320 00:14:05,320 --> 00:14:09,920 >> تو ہم نے دوسرے پر رہنے نہیں رکھا جائے داخل اور حذف کے نفاذ 321 00:14:09,920 --> 00:14:14,030 اور traversal، کے پہلے دو جو منصفانہ ملوث ہیں. 322 00:14:14,030 --> 00:14:17,010 اور میں نے اسے حاصل کرنے کے لئے بہت آسان ہے زبانی طور پر یہ کام کر رہے ہیں جب کھو دیا. 323 00:14:17,010 --> 00:14:19,890 لیکن جو ہم یہاں کیا کر سکتے ہیں ہے کا تعین کرنے کی کوشش کرتے ہیں کہ کس طرح 324 00:14:19,890 --> 00:14:21,640 بہترین ضعف ایسا کرنے کا. 325 00:14:21,640 --> 00:14:24,800 میں تجویز کرے گا کیونکہ کہ اگر ہم اس میں عناصر کو شامل کرنے کے لئے چاہتے ہیں 326 00:14:24,800 --> 00:14:26,680 موجودہ فھرست، جس پانچ عناصر ہے - 327 00:14:26,680 --> 00:14:29,530 9، 17، 22، 26، اور 33 - 328 00:14:29,530 --> 00:14:33,300 میں میں اس کو لاگو کرنے جا رہے تھے تو کوڈ، میں جانے کے لئے کس طرح کے بارے میں غور کرنے کی ضرورت ہے 329 00:14:33,300 --> 00:14:34,160 ایسا کرنے کے بارے میں. 330 00:14:34,160 --> 00:14:37,720 >> اور میں نے بچے کو قدم اٹھانے کی تجویز پیش کریں گے اس معاملے میں میرا مطلب ہے جس کے تحت،، کیا ہیں 331 00:14:37,720 --> 00:14:41,090 ممکن منظرنامے کہ ہم عام طور پر سامنا ہو سکتا ہے؟ 332 00:14:41,090 --> 00:14:44,120 ایک لنک کے لئے ڈالیں عمل درآمد کرتے ہیں تو فہرست، یہ صرف ایک ہو 333 00:14:44,120 --> 00:14:46,090 سائز پانچ کے مخصوص مثال کے طور پر. 334 00:14:46,090 --> 00:14:50,420 اگر آپ ایک بڑی تعداد کو شامل کرنے کے لئے چاہتے ہیں تو ٹھیک ہے نمبر ایک کا کہنا ہے کہ اچھا لگتا ہے، اور 335 00:14:50,420 --> 00:14:53,380 جہاں، حل نظام کو برقرار رکھنے ظاہر ہے ایک کرنے کی ضرورت ہے کی تعداد ہے 336 00:14:53,380 --> 00:14:55,686 اس مخصوص مثال میں جانا ہے؟ 337 00:14:55,686 --> 00:14:56,840 شروع میں اچھا لگتا ہے. 338 00:14:56,840 --> 00:15:00,030 >> لیکن دلچسپ ہے کیا ہے اگر آپ اس میں سے ایک داخل کرنا چاہتے ہیں تو 339 00:15:00,030 --> 00:15:04,100 فہرست میں کیا خاص پوائنٹر کی ضرورت ہے بظاہر اپ ڈیٹ کیا جائے گا؟ 340 00:15:04,100 --> 00:15:04,610 سب سے پہلے. 341 00:15:04,610 --> 00:15:07,830 تو میں یہ پہلا معاملہ ہے، بحث کریں گے ہم نے ایک، پر غور کرنا چاہتے ہیں کر سکتے ہیں 342 00:15:07,830 --> 00:15:11,140 میں ڈالنے شامل منظر نامے فہرست کے آغاز. 343 00:15:11,140 --> 00:15:15,400 >> کی بھی ایک کے طور پر آسان یا شاید دور پلک دو آسان کیس، نسبتا بول رہا ہوں. 344 00:15:15,400 --> 00:15:18,110 میں داخل کرنا چاہتے ہیں مان لیں ترتیب ترتیب میں نمبر 35. 345 00:15:18,110 --> 00:15:20,600 یہ ظاہر ہے وہاں سے تعلق رکھتا ہے. 346 00:15:20,600 --> 00:15:25,320 تو کیا پوائنٹر ظاہر کی جا رہی ہے اس منظر نامے میں اپ ڈیٹ کیا جانا ہے؟ 347 00:15:25,320 --> 00:15:30,060 34 کی پوائنٹر شہوت انگیز null نہیں بننے لیکن struct کا پتہ 348 00:15:30,060 --> 00:15:31,800 نمبر 35 پر مشتمل. 349 00:15:31,800 --> 00:15:32,750 تو اس صورت میں دو ہے. 350 00:15:32,750 --> 00:15:36,190 تو پہلے ہی، میں quantizing کی طرح ہوں میں یہاں کیا کرنا ہے کتنا کام کرتے ہیں. 351 00:15:36,190 --> 00:15:39,880 >> اور آخر میں، واضح مشرق معاملہ ہے بے شک، درمیان میں، تو میں چاہتا ہوں 352 00:15:39,880 --> 00:15:45,870 جاتا ہے کا کہنا ہے کہ 23، کچھ اس طرح داخل 23 اور 26 کے درمیان، لیکن 353 00:15:45,870 --> 00:15:48,680 اب چیزوں کو تھوڑا زیادہ ہو جاؤ ملوث وجہ سے کیا 354 00:15:48,680 --> 00:15:52,800 اشارہ کار کو تبدیل کرنے کی ضرورت ہے؟ 355 00:15:52,800 --> 00:15:56,680 22 واضح طور پر تبدیل کرنے کی ضرورت تو اب وہ 26 کی طرف اشارہ نہیں کر سکتے ہیں کی وجہ سے. 356 00:15:56,680 --> 00:16:00,320 انہوں نے کہا کہ نئے نوڈ کی طرف اشارہ کرنے کی ضرورت ہے میں نے فون کر کے مختص کرنا پڑے گا 357 00:16:00,320 --> 00:16:01,770 malloc یا کچھ برابر. 358 00:16:01,770 --> 00:16:05,990 >> لیکن اس وقت میں یہ بھی ہے کہ نئے نوڈ، 23 کی ضرورت اس صورت میں، اس پوائنٹر ہے 359 00:16:05,990 --> 00:16:07,870 جن کی طرف اشارہ؟ 360 00:16:07,870 --> 00:16:08,560 26. 361 00:16:08,560 --> 00:16:10,380 اور ایک ہونے جا رہا ہے یہاں آپریشن کا حکم. 362 00:16:10,380 --> 00:16:13,410 کیونکہ میں نے بیوقوفی یہ کر، اور میں تو کے شروع میں مثال کے طور پر شروع کرنے کے لئے 363 00:16:13,410 --> 00:16:16,040 فہرست، اور میرا مقصد 23 داخل کرنا ہے. 364 00:16:16,040 --> 00:16:18,610 اور میں اس کا تعلق ہے، کی جانچ پڑتال یہاں، نو کے قریب؟ 365 00:16:18,610 --> 00:16:18,950 نمبر 366 00:16:18,950 --> 00:16:20,670 یہ 17 کے لئے اگلے، یہاں ہے؟ 367 00:16:20,670 --> 00:16:20,940 نمبر 368 00:16:20,940 --> 00:16:22,530 یہ 22 میں اگلے یہاں تعلق رکھتا ہے؟ 369 00:16:22,530 --> 00:16:23,300 جی ہاں. 370 00:16:23,300 --> 00:16:26,400 >> اب میں یہاں بے وقوف ہوں تو، اور نہیں اس کے ذریعے سوچ، میں شاید 371 00:16:26,400 --> 00:16:28,320 23 کے لئے میری نئی نوڈ مختص. 372 00:16:28,320 --> 00:16:32,080 میں سے پوائنٹر کو اپ ڈیٹ کر سکتے ہیں نوڈ طرف اشارہ کرتے ہوئے، 22 سے ملاقات کی 373 00:16:32,080 --> 00:16:33,080 یہ نیا نوڈ میں. 374 00:16:33,080 --> 00:16:36,140 اور پھر میں اپ ڈیٹ کیا کرنا ہوگا نئے نوڈ کی پوائنٹر ہونا ہے؟ 375 00:16:36,140 --> 00:16:38,120 >> طالب: [اشراوی]. 376 00:16:38,120 --> 00:16:38,385 >> اسپیکر 1: بالکل درست. 377 00:16:38,385 --> 00:16:39,710 26 کی طرف اشارہ. 378 00:16:39,710 --> 00:16:45,590 میں نے پہلے ہی اپ ڈیٹ نہیں کیا لیکن اگر dammit 22 کی یہ پوائنٹر اس آدمی پر کی طرف اشارہ، اور 379 00:16:45,590 --> 00:16:48,260 اب میں یتیموں، باقی ہے فہرست میں ہے، تو بات کرنے کے لئے. 380 00:16:48,260 --> 00:16:52,140 یہاں آپریشن کا تو حکم اہم بننے جا رہی ہے. 381 00:16:52,140 --> 00:16:55,100 >> ایسا کرنے میں، چوری کر سکتے ہیں ، چھ رضاکاروں کا کہنا ہے کہ. 382 00:16:55,100 --> 00:16:57,650 اور ہم یہ نہیں کر سکتے تو دیکھتے ہیں ضعف کے بجائے کوڈ وار. 383 00:16:57,650 --> 00:16:59,330 اور ہم نے کچھ خوبصورت کشیدگی ہے آج آپ کے لئے گیندوں. 384 00:16:59,330 --> 00:17:02,510 ٹھیک ہے، کس طرح کے بارے میں ایک، دو، میں واپس - وہاں آخر پر. 385 00:17:02,510 --> 00:17:04,530 آپ دونوں کو تین، چار، آخر پر لوگ. 386 00:17:04,530 --> 00:17:05,579 اور پانچ، چھ. 387 00:17:05,579 --> 00:17:05,839 اس بات کا یقین. 388 00:17:05,839 --> 00:17:06,450 پانچ اور چھ. 389 00:17:06,450 --> 00:17:08,390 ٹھیک ہے اور ہم آ جائیں گے تم لوگوں پر اگلی بار. 390 00:17:08,390 --> 00:17:09,640 ٹھیک ہے، چلو بھی. 391 00:17:09,640 --> 00:17:12,010 392 00:17:12,010 --> 00:17:14,819 >> ٹھیک ہے، تم یہاں پہلے رہے ہیں، آپ awkwardly ایک چاہوں گا 393 00:17:14,819 --> 00:17:16,119 یہاں گوگل کے گلاس میں؟ 394 00:17:16,119 --> 00:17:19,075 ٹھیک ہے، تو، ٹھیک ہے، گلاس، ایک ویڈیو ریکارڈ کریں. 395 00:17:19,075 --> 00:17:22,720 396 00:17:22,720 --> 00:17:24,589 ٹھیک ہے، تم جانا اچھا ہو. 397 00:17:24,589 --> 00:17:27,950 >> ٹھیک ہے، تو آپ لوگ آ سکتا ہوں تو یہاں، میں پیشگی تیار کیا ہے 398 00:17:27,950 --> 00:17:30,110 کچھ تعداد. 399 00:17:30,110 --> 00:17:31,240 ٹھیک ہے، یہاں آو. 400 00:17:31,240 --> 00:17:33,440 اور کیوں آپ کو ایک چھوٹی سی نہیں جاتے نے مزید کہا کہ اس طرح. 401 00:17:33,440 --> 00:17:35,520 اور دیکھتے ہیں، تمہارا نام کیا ہے، گوگل کے گلاس کے ساتھ؟ 402 00:17:35,520 --> 00:17:35,910 >> طالب: بین. 403 00:17:35,910 --> 00:17:36,230 >> اسپیکر 1: بین؟ 404 00:17:36,230 --> 00:17:38,380 ٹھیک ہے، بین، آپ لفظی، سب سے پہلے ہو جائے گا. 405 00:17:38,380 --> 00:17:40,580 تو ہم آپ کو بھیجنے کے لئے جا رہے ہیں سٹیج کے ختم کرنے کے لئے. 406 00:17:40,580 --> 00:17:41,670 ٹھیک ہے، اور آپ کا نام؟ 407 00:17:41,670 --> 00:17:41,990 >> طالب: جیسن. 408 00:17:41,990 --> 00:17:44,530 >> اسپیکر: 1 جیسن، ٹھیک ہے تمہیں تعداد نو ہو. 409 00:17:44,530 --> 00:17:46,700 آپ کو بین اس طرح کی پیروی کرنا چاہتے ہیں تو. 410 00:17:46,700 --> 00:17:47,010 >> طالب: جل. 411 00:17:47,010 --> 00:17:49,630 >> اسپیکر: 1 جل، آپ کو بننے کے لئے جا رہے ہیں 17، جو میں اس سے زیادہ کیا ہوتا تو 412 00:17:49,630 --> 00:17:51,260 ہوشیاری، میں ہوگا دیگر آخر میں شروع کر دیا. 413 00:17:51,260 --> 00:17:52,370 تم اس کے راستے پر چلنا. 414 00:17:52,370 --> 00:17:53,030 22. 415 00:17:53,030 --> 00:17:53,670 اور تم؟ 416 00:17:53,670 --> 00:17:53,980 >> طالب: مریم. 417 00:17:53,980 --> 00:17:56,130 >> اسپیکر 1: مریم، آپ 22 ہو جائے گا. 418 00:17:56,130 --> 00:17:58,420 اور تمہارا نام ہے؟ 419 00:17:58,420 --> 00:17:58,810 >> طالب: کرس. 420 00:17:58,810 --> 00:18:00,100 >> اسپیکر 1: کرس، آپ 26 ہو جائے گا. 421 00:18:00,100 --> 00:18:00,740 اور پھر آخر میں. 422 00:18:00,740 --> 00:18:01,400 >> طالب: ڈیانا. 423 00:18:01,400 --> 00:18:02,670 >> اسپیکر 1: ڈیانا، آپ 34 ہو جائے گا. 424 00:18:02,670 --> 00:18:03,920 تو کیا تم یہاں آو. 425 00:18:03,920 --> 00:18:06,360 >> ٹھیک ہے، تو کامل حل پہلے ہی آرڈر. 426 00:18:06,360 --> 00:18:09,600 اور کے آگے بڑھو اور اس کے کرنے دو تا کہ ہم واقعی کر سکتے ہیں - 427 00:18:09,600 --> 00:18:11,720 بین آپ کو تلاش کر کے صرف اچھے ہو باہر کہیں نہیں وہاں میں. 428 00:18:11,720 --> 00:18:15,670 ٹھیک ہے، تو آگے بڑھو اور اس بیان کرتے ہیں میں زیادہ تھا، جیسے ہتھیاروں کا استعمال کرتے ہوئے، بالکل، 429 00:18:15,670 --> 00:18:16,250 کیا ہو رہا ہے. 430 00:18:16,250 --> 00:18:19,540 لہذا آگے بڑھیں اور اپنے آپ کو ایک دے پاؤں یا اپنے آپ کے درمیان دو. 431 00:18:19,540 --> 00:18:22,900 اور ایک ہاتھ کے ساتھ آگے بڑھیں اور اشارہ آپ کو جو شخص کی طرف اشارہ کیا جانا چاہئے 432 00:18:22,900 --> 00:18:23,470 اس بنا پر. 433 00:18:23,470 --> 00:18:25,890 آپ شہوت انگیز null ہیں اور اگر صرف اشارہ براہ راست نیچے منزل پر. 434 00:18:25,890 --> 00:18:27,690 ٹھیک ہے، بہت اچھا. 435 00:18:27,690 --> 00:18:32,290 >> تو اب ہم نے ایک سے منسلک فہرست ہے، اور مجھے دو میں کردار ادا کریں گے کہ تجویز 436 00:18:32,290 --> 00:18:35,110 PTR، تو میں پریشان نہیں رکھا جائے اس کے ارد گرد لے جانے والے. 437 00:18:35,110 --> 00:18:37,830 اور پھر - کسی کو بیوکوف کنونشن - اگر آپ چاہتے ہیں یہ کچھ بھی کال کر سکتے ہیں - 438 00:18:37,830 --> 00:18:39,800 پیشرو پوائنٹر، pred پوائنٹر - 439 00:18:39,800 --> 00:18:43,930 یہ صرف ہم میں دی عرفیت ہے میرے بائیں ہاتھ پر ہمارے نمونے کے کوڈ. 440 00:18:43,930 --> 00:18:47,240 کو مدنظر رکھتے ہوئے کیا جا رہا ہے کہ دوسری طرف جو میں ہے جو سراغ 441 00:18:47,240 --> 00:18:48,400 منظرنامے کے بعد. 442 00:18:48,400 --> 00:18:52,390 >> تو سب سے پہلے، میں نے بند کر جمع کرنا چاہتے ہیں، لگتا ہے ڈالنے کی ہے کہ سب سے پہلے مثال کے طور پر، کا کہنا ہے کہ 443 00:18:52,390 --> 00:18:54,330 20، فہرست میں. 444 00:18:54,330 --> 00:18:57,160 تو میں نے کسی کو کرنے کی ضرورت کرنے جا رہا ہوں ہمارے لئے نمبر 20 embody. 445 00:18:57,160 --> 00:18:58,950 تو میں نے malloc کسی کو کرنے کی ضرورت ہے ناظرین سے. 446 00:18:58,950 --> 00:18:59,380 اپ چلو. 447 00:18:59,380 --> 00:19:00,340 آپ کا نام کیا ہے؟ 448 00:19:00,340 --> 00:19:01,300 >> طالب: برائن. 449 00:19:01,300 --> 00:19:05,270 >> اسپیکر 1: برائن، ٹھیک ہے، تو آپ کو 20 نوڈ پر مشتمل ہو گا. 450 00:19:05,270 --> 00:19:06,810 ٹھیک ہے، یہاں آو. 451 00:19:06,810 --> 00:19:10,025 اور ظاہر ہے، جہاں برائن کا تعلق ہے؟ 452 00:19:10,025 --> 00:19:12,190 تو، کے وسط میں - اصل میں، ایک منٹ رکو. 453 00:19:12,190 --> 00:19:13,420 ہم اس کے حکم کی باہر کر رہے ہیں. 454 00:19:13,420 --> 00:19:17,170 ہم نے بہت مشکل بنا رہے ہیں یہ سب سے پہلے کرنے کی ضرورت سے زیادہ. 455 00:19:17,170 --> 00:19:21,210 ٹھیک ہے، ہم مفت برائن جا رہے ہیں اور پانچ کے طور پر realloc برائن. 456 00:19:21,210 --> 00:19:23,680 >> ٹھیک ہے، تو اب ہم داخل کرنا چاہتے ہیں پانچ کے طور پر برائن. 457 00:19:23,680 --> 00:19:25,960 تو اس کے لئے اگلے یہاں پر آئے صرف ایک لمحے کے لئے بین. 458 00:19:25,960 --> 00:19:28,250 اور آپ شاید بتا سکتے ہیں اس کہانی کو کہاں جا رہی ہے. 459 00:19:28,250 --> 00:19:30,500 لیکن دو کے بارے میں احتیاط سے سوچنا آپریشن کا حکم. 460 00:19:30,500 --> 00:19:32,880 اور یہ بالکل واضح طور پر اس بصری ہے قطار جا رہا ہے کہ 461 00:19:32,880 --> 00:19:34,080 اس نمونے کے کوڈ کے ساتھ. 462 00:19:34,080 --> 00:19:40,120 تو میں یہاں PTR ابتدائی طور پر کی طرف اشارہ کیا ہے نہیں فی SE بین، میں، لیکن جو کچھ بھی میں 463 00:19:40,120 --> 00:19:43,245 انہوں نے کہا کہ پر مشتمل ہے جس کی قدر اس معاملے میں ہے - آپ کا نام ایک بار پھر کیا ہے؟ 464 00:19:43,245 --> 00:19:43,670 >> طالب: جیسن. 465 00:19:43,670 --> 00:19:47,350 >> اسپیکر: 1 جیسن، بین اور میں دونوں ہیں تو اس وقت جیسن طرف اشارہ. 466 00:19:47,350 --> 00:19:49,700 تو اب میں اس بات کا تعین کرنے کے لئے ہے، برائن جہاں تعلق ہے؟ 467 00:19:49,700 --> 00:19:53,500 صرف ایک ہی چیز تو میں تک رسائی حاصل ہے ابھی ان کی (ن) کے اعداد و شمار شے ہے. 468 00:19:53,500 --> 00:19:58,280 لہذا میں چیک کرنے کے لئے کیا جاتا ہے جا رہا ہوں جیسن سے زیادہ برائن کم؟ 469 00:19:58,280 --> 00:19:59,770 جواب درست ہے. 470 00:19:59,770 --> 00:20:03,680 >> تو کیا اب ایسا کرنے کی ضرورت ہے صحیح ترتیب میں؟ 471 00:20:03,680 --> 00:20:07,120 میں کتنے اشارہ کو اپ ڈیٹ کرنے کی ضرورت ہے اس کہانی میں کل میں؟ 472 00:20:07,120 --> 00:20:10,720 میرا ہاتھ اب بھی طرف اشارہ ہے کہاں جیسن، اور آپ کے ہاتھ - اگر آپ چاہتے ہیں تو 473 00:20:10,720 --> 00:20:12,930 قسم کے، کی طرح آپ کے ہاتھ ڈال دیا، میں ، ایک سوالیہ نشان نہیں جانتے. 474 00:20:12,930 --> 00:20:14,070 ٹھیک ہے، اچھا ہے. 475 00:20:14,070 --> 00:20:15,670 >> ٹھیک ہے، آپ کے پاس اتنی چند امیدواروں کی. 476 00:20:15,670 --> 00:20:20,500 بین یا میں یا برائن یا جیسن یا تو یا پھر ہر کوئی، جس 477 00:20:20,500 --> 00:20:21,370 اشارہ کار کو تبدیل کرنے کی ضرورت ہے؟ 478 00:20:21,370 --> 00:20:23,260 کس طرح کل میں بہت سے؟ 479 00:20:23,260 --> 00:20:24,080 >> ٹھیک ہے، تو دو. 480 00:20:24,080 --> 00:20:27,090 میرا پوائنٹر واقعی میں اب کوئی فرق نہیں پڑتا میں صرف عارضی ہوں کیونکہ. 481 00:20:27,090 --> 00:20:31,370 تو یہ، شاید، ان دو لڑکوں ہے بین اور برائن دونوں. 482 00:20:31,370 --> 00:20:34,410 تو ہم کو اپ ڈیٹ نے مجھے تجویز کرتے ہیں بین کے بعد وہ سب سے پہلے ہے. 483 00:20:34,410 --> 00:20:36,350 اس فہرست کے پہلے عنصر اب برائن بننے جا رہی ہے. 484 00:20:36,350 --> 00:20:38,070 برائن میں تو بین نقطہ. 485 00:20:38,070 --> 00:20:39,320 ٹھیک ہے، اب میں کیا کروں؟ 486 00:20:39,320 --> 00:20:41,950 487 00:20:41,950 --> 00:20:43,460 >> کون کس پر کی طرف اشارہ کیا جاتا ہے؟ 488 00:20:43,460 --> 00:20:44,710 >> طالب: [اشراوی]. 489 00:20:44,710 --> 00:20:46,180 >> اسپیکر 1: ٹھیک ہے تو برائن ہے جیسن میں اشارہ. 490 00:20:46,180 --> 00:20:48,360 لیکن میں نے اس پوائنٹر کے ٹریک کھو دیا ہے؟ 491 00:20:48,360 --> 00:20:49,980 جیسن ہے جہاں میں معلوم ہے؟ 492 00:20:49,980 --> 00:20:50,790 >> طالب: [اشراوی]. 493 00:20:50,790 --> 00:20:52,620 >> اسپیکر 1: میں ہوں کے بعد میں، کر عارضی پوائنٹر. 494 00:20:52,620 --> 00:20:55,110 اور شاید، میں تبدیل نہیں ہوئی ہیں نئے نوڈ میں اشارہ. 495 00:20:55,110 --> 00:20:58,300 تو ہم صرف برائن نقطہ ہو سکتا ہے جو کوئی بھی میں کی طرف اشارہ کر رہا ہوں. 496 00:20:58,300 --> 00:20:59,000 اور ہم کیا کر رہے ہیں. 497 00:20:59,000 --> 00:21:01,890 تو ایک کیس میں اندراج فہرست کے شروع. 498 00:21:01,890 --> 00:21:02,950 دو اہم اقدامات تھے. 499 00:21:02,950 --> 00:21:06,750 ایک، ہم بین اپ ڈیٹ کرنے کی ہے، اور پھر ہم بھی برائن کو اپ ڈیٹ کرنا پڑے گا. 500 00:21:06,750 --> 00:21:09,230 اور پھر میں فکر کرنے کی ضرورت نہیں ہے باقی کے ذریعے traipsing 501 00:21:09,230 --> 00:21:12,680 ہم نے پہلے ہی پایا فہرست، کیونکہ اس کے وہ سے تعلق رکھتے محل وقوع، کیونکہ 502 00:21:12,680 --> 00:21:14,080 پہلا عنصر کے چھوڑ دیا. 503 00:21:14,080 --> 00:21:15,400 >> ٹھیک ہے، بہت خوبصورت براہ راست. 504 00:21:15,400 --> 00:21:18,110 ہم تقریبا ہو جیسے اصل میں، محسوس ہوتا ہے یہ بہت پیچیدہ بنا رہے ہیں. 505 00:21:18,110 --> 00:21:20,240 تو اب آخر دور پلک دو فہرست میں، اور جہاں دیکھنا 506 00:21:20,240 --> 00:21:21,380 پیچیدگی شروع ہوتا ہے. 507 00:21:21,380 --> 00:21:24,560 سامعین کی جانب سے تو اب تو میں alloc. 508 00:21:24,560 --> 00:21:25,540 55 کوئی بھی کھیلنا چاہتے ہیں؟ 509 00:21:25,540 --> 00:21:26,700 ٹھیک ہے، میں سب سے پہلے اپنے ہاتھ دیکھا. 510 00:21:26,700 --> 00:21:29,620 اپ چلو. 511 00:21:29,620 --> 00:21:30,030 جی ہاں. 512 00:21:30,030 --> 00:21:31,177 آپ کا نام کیا ہے؟ 513 00:21:31,177 --> 00:21:32,310 >> طالب: [اشراوی]. 514 00:21:32,310 --> 00:21:33,240 >> اسپیکر: 1 Habata. 515 00:21:33,240 --> 00:21:33,890 ٹھیک ہے، اپ آو. 516 00:21:33,890 --> 00:21:35,730 آپ کی تعداد 55 ہو جائے گی. 517 00:21:35,730 --> 00:21:37,820 تو آپ کو، کورس کی، سے تعلق رکھتے ہیں فہرست کے آخر میں. 518 00:21:37,820 --> 00:21:41,850 تو میرے ساتھ تخروپن ری پلے کرتے ہیں صرف ایک لمحے کے لئے PTR کیا جا رہا ہے. 519 00:21:41,850 --> 00:21:44,050 تو میں نے پہلے کی طرف اشارہ کرنے جا رہا ہوں بین طرف اشارہ ہے جو کچھ بھی. 520 00:21:44,050 --> 00:21:45,900 اب ہم برائن طرف اشارہ کر رہے ہیں دونوں. 521 00:21:45,900 --> 00:21:48,420 تو 55 سے بھی کم پانچ نہیں ہے. 522 00:21:48,420 --> 00:21:52,510 تو میں نے کی طرف سے اپنے آپ کو اپ ڈیٹ کرنے جا رہا ہوں برائن کے اگلے پوائنٹر، کی طرف اشارہ ہے جو 523 00:21:52,510 --> 00:21:54,450 اب کورس جیسن ہے. 524 00:21:54,450 --> 00:21:57,310 55 ہاں، تو اس سے بھی کم نو نہیں ہے میں PTR کو اپ ڈیٹ کرنے جا رہا ہوں. 525 00:21:57,310 --> 00:21:58,890 میں PTR کو اپ ڈیٹ کرنے جا رہا ہوں. 526 00:21:58,890 --> 00:22:02,290 میں PTR کو اپ ڈیٹ کرنے جا رہا ہوں میں PTR کو اپ ڈیٹ کرنے جا رہے ہیں. 527 00:22:02,290 --> 00:22:05,060 اور میں کرنے جا رہا ہوں - ہمم، کیا ہے آپ کا نام ایک بار پھر؟ 528 00:22:05,060 --> 00:22:05,560 >> طالب: ڈیانا. 529 00:22:05,560 --> 00:22:09,190 >> اسپیکر: 1 ڈیانا کی طرف اشارہ کر رہا ہے، کورس کے، اس کے بائیں ہاتھ کے ساتھ میں انگیز null. 530 00:22:09,190 --> 00:22:13,030 تو جہاں Habata اصل میں کرتا ہے واضح طور پر تعلق رکھتے ہیں؟ 531 00:22:13,030 --> 00:22:15,050 بائیں کرنے کے لئے، یہاں. 532 00:22:15,050 --> 00:22:19,460 تو کس طرح میں نے اسے یہاں ڈال کرنے کے لئے جانتے ہیں میں نے میں نے خراب کر دیا ہے لگتا ہے. 533 00:22:19,460 --> 00:22:22,420 کیا PTR فن ہے کیونکہ وقت میں اس لمحے؟ 534 00:22:22,420 --> 00:22:23,240 شہوت انگیز null. 535 00:22:23,240 --> 00:22:25,580 لہذا، اگرچہ ضعف، ہم کر سکتے ہیں ظاہر ہے ان سب کو دیکھ 536 00:22:25,580 --> 00:22:26,610 یہاں اسٹیج پر لڑکوں. 537 00:22:26,610 --> 00:22:29,680 میں گزشتہ کے ٹریک رکھ نہیں ہے فہرست میں انسان. 538 00:22:29,680 --> 00:22:33,210 میں نے باہر کی طرف اشارہ کر ایک انگلی نہیں ہے اس صورت میں، نوڈ نمبر 34. 539 00:22:33,210 --> 00:22:34,760 >> تو اصل میں اس سے زیادہ شروع کرتے ہیں. 540 00:22:34,760 --> 00:22:37,560 تو اب میں واقعی میں ضرورت ہے ایک دوسرے مقامی متغیر. 541 00:22:37,560 --> 00:22:40,980 اور اس میں آپ دیکھیں گے کیا ہے اصل نمونہ سی کوڈ، کے طور پر میں جا جہاں، 542 00:22:40,980 --> 00:22:45,860 میں نے کی طرف اشارہ کرنے کے لئے میری دائیں ہاتھ کو اپ ڈیٹ کریں جب جیسن، اس طرح میں نے پیچھے چھوڑ برائن 543 00:22:45,860 --> 00:22:51,440 بہتر میرے بائیں ہاتھ کا استعمال کرتے ہوئے شروع کرنے کے لئے میں کہاں تھا میں جا کے طور پر، تاکہ اپ ڈیٹ 544 00:22:51,440 --> 00:22:52,700 اس فہرست کے ذریعے - 545 00:22:52,700 --> 00:22:55,040 مزید awkwardly میں ارادہ سے زیادہ اب یہاں ضعف - 546 00:22:55,040 --> 00:22:56,740 میں حاصل کرنے کے لئے جا رہا ہوں فہرست کے آخر میں. 547 00:22:56,740 --> 00:23:00,020 >> یہ ہاتھ خوبصورت ہے، جو اب بھی شہوت انگیز null ہے اس بات کی نشاندہی کرنے کے علاوہ، بیکار 548 00:23:00,020 --> 00:23:02,980 میں، فہرست کے آخر میں واضح طور پر ہوں لیکن اب کم از کم میں نے یہ ہے 549 00:23:02,980 --> 00:23:08,270 پیشرو پوائنٹر ایسا ہے، تو یہاں اشارہ کرتے ہوئے اب کس کے ہاتھ اور کس کے اشارہ کی ضرورت ہے 550 00:23:08,270 --> 00:23:10,150 اپ ڈیٹ کیا جائے گا؟ 551 00:23:10,150 --> 00:23:13,214 جس کے ہاتھ میں تم کیا چاہتے ہو پہلی reconfigure ہے؟ 552 00:23:13,214 --> 00:23:15,190 >> طالب: [اشراوی]. 553 00:23:15,190 --> 00:23:16,220 >> اسپیکر 1: ٹھیک ہے، ڈیانا کی تو. 554 00:23:16,220 --> 00:23:21,110 تم کہاں کی طرف اشارہ کرنا چاہتے ہیں میں ڈیانا کی بائیں پوائنٹر؟ 555 00:23:21,110 --> 00:23:23,620 55 میں، شاید، تاکہ ہم وہاں داخل ہے. 556 00:23:23,620 --> 00:23:25,560 اور جہاں 55 پوائنٹر جانا چاہئے؟ 557 00:23:25,560 --> 00:23:27,000 نیچے، شہوت انگیز null نمائندگی کرتے ہیں. 558 00:23:27,000 --> 00:23:28,890 اور میرے ہاتھوں کو، اس نقطہ پر، ایسا نہیں کرتے وہ صرف تھے کیونکہ کوئی فرق 559 00:23:28,890 --> 00:23:30,070 عارضی متغیر. 560 00:23:30,070 --> 00:23:31,030 تو اب ہم کیا کر رہے ہیں. 561 00:23:31,030 --> 00:23:34,650 >> تو اضافی وہاں پیچیدگی - اور اس کو نافذ کرنے کا ہے کہ مشکل نہیں ہے 562 00:23:34,650 --> 00:23:38,660 لیکن ہم بنانے کے لئے ایک ثانوی متغیر کی ضرورت ہے اس بات کا یقین ہے کہ میں اپنے حق میں منتقل کرنے سے پہلے 563 00:23:38,660 --> 00:23:42,140 ہاتھ، میں نے اپنے بائیں کی قیمت کو اپ ڈیٹ کریں ہاتھ، pred اس کیس میں پوائنٹر، تو 564 00:23:42,140 --> 00:23:45,860 میں نے ایک پشت بندی پوائنٹر ہے کہ میں کہاں تھا کی یاد رکھیں. 565 00:23:45,860 --> 00:23:49,360 اب ایک ایک طرف کے طور پر، آپ کو اس بارے میں سوچ رہے ہیں تو یہ ہے کی طرح کے ذریعے، یہ محسوس ہوتا ہے ایک 566 00:23:49,360 --> 00:23:51,490 رکھنے کے لئے ہے کے لئے بہت کم پریشان کن اس کے بائیں ہاتھ سے باخبر رھنے کے لئے. 567 00:23:51,490 --> 00:23:54,015 >> کیا ایک اور حل کرے گا اس مسئلہ پر کیا گیا ہے؟ 568 00:23:54,015 --> 00:23:56,500 آپ اعداد و شمار کے redesign کے ہے تو ہم بات کر رہے ہیں کی ساخت 569 00:23:56,500 --> 00:23:59,630 ابھی کے ذریعے؟ 570 00:23:59,630 --> 00:24:02,690 یہ صرف قسم کا ایک چھوٹا سا محسوس ہوتا ہے تو ، پسند، دو اشارہ کرنے کے لئے پریشان کن 571 00:24:02,690 --> 00:24:08,430 اور کون، فہرست کے ذریعے کر سکتے ہیں جا ایک مثالی دنیا میں، کو برقرار رکھا ہے 572 00:24:08,430 --> 00:24:10,160 ہمیں ضرورت ہے کہ معلومات؟ 573 00:24:10,160 --> 00:24:11,360 جی ہاں؟ 574 00:24:11,360 --> 00:24:12,610 >> طالب: [اشراوی]. 575 00:24:12,610 --> 00:24:15,160 576 00:24:15,160 --> 00:24:16,150 >> اسپیکر 1: بالکل درست. 577 00:24:16,150 --> 00:24:19,130 حق تو ایک دلچسپ اصل میں ہے ایک خیال کے جراثیم. 578 00:24:19,130 --> 00:24:22,470 اور ایک سابقہ ​​پوائنٹر کے اس خیال، پچھلے عنصر کی طرف اشارہ. 579 00:24:22,470 --> 00:24:25,580 کیا میں صرف مجسم کہ اگر فہرست خود کے اندر؟ 580 00:24:25,580 --> 00:24:27,810 اور یہ دیکھ مشکل ہونے جا رہا ہے یہ سب کاغذ کے بغیر 581 00:24:27,810 --> 00:24:28,830 فرش پر گر. 582 00:24:28,830 --> 00:24:31,860 لیکن یہ لوگ دونوں کا استعمال کیا ہے کہ لگتا ہے ان کے ہاتھوں کی ایک سابقہ ​​ہے 583 00:24:31,860 --> 00:24:35,950 اس طرح پوائنٹر، اور ایک اگلے پوائنٹر، ہم نے ایک دوگنا فون کروں گا کیا عمل درآمد 584 00:24:35,950 --> 00:24:36,830 منسلک فہرست. 585 00:24:36,830 --> 00:24:41,090 یہی وجہ ہے کہ مجھے ماضی کے کرنے کی اجازت دے گا بہت زیادہ آسانی سے میرے بغیر، 586 00:24:41,090 --> 00:24:43,800 پروگرامر، رکھنے کے لئے ہونا دستی طور پر نظر رکھنے کے - 587 00:24:43,800 --> 00:24:44,980 صحیح معنوں میں دستی طور پر - 588 00:24:44,980 --> 00:24:47,280 میں نے پہلے کیا گیا تھا جہاں فہرست میں. 589 00:24:47,280 --> 00:24:48,110 تو ہم ایسا نہیں کریں گے. 590 00:24:48,110 --> 00:24:50,950 کہ ہے کیونکہ ہم اس سادہ رکھیں گے دو مرتبہ کے طور پر، ایک قیمت پر آنے والا 591 00:24:50,950 --> 00:24:53,450 اشارہ کے لئے زیادہ سے زیادہ کی جگہ، آپ کو ایک دوسرا چاہتے ہیں تو. 592 00:24:53,450 --> 00:24:55,760 لیکن یہ واقعی ایک عام ہے آنکڑا ڈھانچہ ایک کے طور پر جانا 593 00:24:55,760 --> 00:24:57,410 دوگنا فہرست منسلک. 594 00:24:57,410 --> 00:25:01,310 >> یہاں آخری مثال کے طور پر کرتے ہیں اور ڈال چلو ان کے مصائب سے باہر یہ لوگ. 595 00:25:01,310 --> 00:25:03,270 malloc 20 تو. 596 00:25:03,270 --> 00:25:05,320 وہاں گلیارے سے چلو. 597 00:25:05,320 --> 00:25:06,280 ٹھیک ہے، آپ کا نام کیا ہے؟ 598 00:25:06,280 --> 00:25:07,440 >> طالب: [اشراوی]. 599 00:25:07,440 --> 00:25:07,855 >> اسپیکر: 1 معذرت؟ 600 00:25:07,855 --> 00:25:08,480 >> طالب: [اشراوی]. 601 00:25:08,480 --> 00:25:09,410 >> اسپیکر: 1 Demeron؟ 602 00:25:09,410 --> 00:25:10,230 ٹھیک ہے اپ آو. 603 00:25:10,230 --> 00:25:11,910 آپ 20 ہو گا. 604 00:25:11,910 --> 00:25:14,720 آپ کو ظاہر کرنے کے لئے جا رہے ہیں 17 اور 22 کے درمیان تعلق رکھتے ہیں. 605 00:25:14,720 --> 00:25:16,150 تو مجھے اپنے سبق سیکھ لیں. 606 00:25:16,150 --> 00:25:18,150 مجھے پوائنٹر شروع کرنے کے لئے جا رہا ہوں برائن طرف اشارہ. 607 00:25:18,150 --> 00:25:21,190 اور میں اپنے بائیں ہاتھ کرنے جا رہا ہوں میں منتقل کے طور پر صرف برائن کی تازہ کاری 608 00:25:21,190 --> 00:25:23,600 جیسن، چیکنگ نو کے مقابلے میں 20 سے بھی کم ہے؟ 609 00:25:23,600 --> 00:25:24,060 نمبر 610 00:25:24,060 --> 00:25:25,430 17 20 سے زائد کم ہے؟ 611 00:25:25,430 --> 00:25:25,880 نمبر 612 00:25:25,880 --> 00:25:27,450 22 20 سے زائد کم ہے؟ 613 00:25:27,450 --> 00:25:28,440 جی ہاں. 614 00:25:28,440 --> 00:25:34,070 تو کیا اشارہ یا ہاتھوں کو تبدیل کرنے کی ضرورت جہاں وہ اب کی طرف اشارہ کر رہے ہیں؟ 615 00:25:34,070 --> 00:25:37,070 >> تو ہم 20 سے کم کی طرف اشارہ کر 17 کر سکتے ہیں. 616 00:25:37,070 --> 00:25:37,860 تو ٹھیک ہے. 617 00:25:37,860 --> 00:25:40,080 ہم کہاں کی طرف اشارہ کرنا چاہتے ہیں آپ پوائنٹر اب؟ 618 00:25:40,080 --> 00:25:41,330 22 میں. 619 00:25:41,330 --> 00:25:45,410 22 کہاں ہے اور ہم ایک بار پھر، شکریہ جانتے میری عارضی پوائنٹر کرنے کے لئے. 620 00:25:45,410 --> 00:25:46,760 تو ہم ٹھیک وہاں ہو. 621 00:25:46,760 --> 00:25:49,440 تو اس کی وجہ سے عارضی اسٹوریج کے مجھے سب ہے جہاں کے ٹریک رکھ دیا ہے. 622 00:25:49,440 --> 00:25:55,055 اور اب اگر آپ ضعف جہاں میں جا سکتے ہیں آپ سے تعلق رکھتے ہیں، اور اب ہم 1، 2، 3، کی ضرورت ہے 623 00:25:55,055 --> 00:25:58,410 4، 5، 6، 7، 8، 9 کشیدگی گیندوں، اور اس کے لئے تعریف کا ایک چکر 624 00:25:58,410 --> 00:25:59,770 یہ لوگ، ہم تو. 625 00:25:59,770 --> 00:26:00,410 اچھی طرح سے کیا. 626 00:26:00,410 --> 00:26:05,320 >> [تالیاں] 627 00:26:05,320 --> 00:26:06,330 >> اسپیکر 1: ٹھیک ہے. 628 00:26:06,330 --> 00:26:09,860 اور آپ کو ٹکڑے ٹکڑے رکھ سکتے ہیں mementos کے طور پر کاغذ کے. 629 00:26:09,860 --> 00:26:15,930 >> ٹھیک ہے، تو، یہ ایک بہت ہے مجھ پر اعتماد آسان کے ساتھ اس کے ذریعے چلنے کے لئے 630 00:26:15,930 --> 00:26:17,680 یہ اصل کوڈ کے ساتھ ہے کے مقابلے میں انسانوں. 631 00:26:17,680 --> 00:26:22,690 لیکن آپ کو صرف ایک لمحے میں تلاش کر لیں گے اب، کہ ایک ہی ہے - اوہ، شکریہ. 632 00:26:22,690 --> 00:26:23,630 آپ کا شکریہ - 633 00:26:23,630 --> 00:26:29,360 آپ اسی کے اعداد و شمار تلاش کر لیں گے یہ ہے کہ ساخت، ایک سے منسلک فہرست میں، اصل میں کر سکتے ہیں 634 00:26:29,360 --> 00:26:33,200 اس سے بھی زیادہ کے لئے ایک عمارت بلاک کے طور پر استعمال کیا جائے جدید ترین اعداد و شمار کے ڈھانچے. 635 00:26:33,200 --> 00:26:37,620 >> اور یہاں بھی مرکزی خیال، موضوع کا احساس ہے کہ ہم بالکل زیادہ متعارف کرایا ہے 636 00:26:37,620 --> 00:26:40,060 نفاذ میں پیچیدگی اس الگورتھم کی. 637 00:26:40,060 --> 00:26:43,940 اضافے، اور ہم اس کے ذریعے چلا گیا ہے تو، منسوخی اور تلاش، ایک چھوٹی سی ہے 638 00:26:43,940 --> 00:26:46,660 اس سے زیادہ پیچیدہ ایک سرنی کے ساتھ تھا. 639 00:26:46,660 --> 00:26:48,040 لیکن ہم کچھ تحرک حاصل ہے. 640 00:26:48,040 --> 00:26:50,180 ہم ایک انکولی آنکڑا ڈھانچہ ملے. 641 00:26:50,180 --> 00:26:54,010 >> لیکن ایک بار پھر، ہم نے کچھ ہونے کی قیمت ادا اضافی پیچیدگی، میں دونوں 642 00:26:54,010 --> 00:26:54,910 اس پر عمل درآمد. 643 00:26:54,910 --> 00:26:56,750 اور ہم بے ترتیب تک رسائی چھوڑ دیا کر رہے ہیں. 644 00:26:56,750 --> 00:27:00,450 اور ایماندار ہو، کچھ اچھی نہیں ہے سلائڈ صاف میں تمہیں دے سکتے ہیں 645 00:27:00,450 --> 00:27:03,120 یہاں کہتے ہیں کہ کیوں ایک سے منسلک فہرست ہے ایک سرنی سے بہتر ہے. 646 00:27:03,120 --> 00:27:04,100 اور یہ کہ اسے چھوڑ دیں. 647 00:27:04,100 --> 00:27:07,520 مرکزی خیال، موضوع بھی، اب reoccurring کیونکہ مزید تو آنے والے ہفتوں میں، ہے 648 00:27:07,520 --> 00:27:10,200 ضروری نہیں ہے کہ ایک درست جواب. 649 00:27:10,200 --> 00:27:13,830 >> ہم علیحدہ محور ہے یہی وجہ ہے مسئلہ سیٹ کے لئے ڈیزائن کی. 650 00:27:13,830 --> 00:27:17,700 یہ بہت سیاق و سباق کے حساس ہو جائے گا آپ اس ڈیٹا کو استعمال کرنا چاہتے ہیں یا نہیں 651 00:27:17,700 --> 00:27:21,750 ساخت یا یہ کہ ایک، اور یہ ہو گا معاملے میں آپ کو فرق پڑتا ہے کیا اس پر منحصر ہے 652 00:27:21,750 --> 00:27:24,620 وسائل اور پیچیدگی کے. 653 00:27:24,620 --> 00:27:28,830 >> لیکن مجھے تجویز کرتے ہیں کہ مثالی اعداد و شمار ساخت، مقدس grail، ہو جائے گا 654 00:27:28,830 --> 00:27:32,200 مسلسل وقت ہے کہ کچھ، قطع نظر بہت سامان ہے کس طرح 655 00:27:32,200 --> 00:27:36,940 اس کے اندر یہ حیرت انگیز نہیں ہو گی ایک تو اعداد و شمار کے ڈھانچے میں جوابات لوٹ آئے 656 00:27:36,940 --> 00:27:37,920 مسلسل وقت. 657 00:27:37,920 --> 00:27:38,330 جی ہاں. 658 00:27:38,330 --> 00:27:40,110 یہ لفظ آپ کی بڑی ڈکشنری میں ہے. 659 00:27:40,110 --> 00:27:41,550 یا نہیں، یہ لفظ نہیں ہے. 660 00:27:41,550 --> 00:27:43,270 یا وہاں ایسے کسی بھی مسئلہ ہے. 661 00:27:43,270 --> 00:27:46,360 ٹھیک ہے چلو دیکھتے ہیں کہ ہم کم از کم نہیں کر سکتے ہیں اس کی طرف ایک قدم. 662 00:27:46,360 --> 00:27:50,190 >> مجھے ایک نئے اعداد و شمار کے ڈھانچے کی تجویز پیش کرتے ہیں کہ مختلف چیزوں کے لئے استعمال کیا جا سکتا ہے، 663 00:27:50,190 --> 00:27:52,260 اس کیس میں ایک ہیش میز سے ملاقات کی. 664 00:27:52,260 --> 00:27:55,590 اور اس طرح ہم glancing واپس اصل میں ہیں ایک اس معاملے میں صف،، اور میں 665 00:27:55,590 --> 00:28:00,550 کسی حد تک منمانے، میں نے یہ تیار کی ہے ایک قسم کے ساتھ ایک سرنی کے طور پر ہیش کی میز 666 00:28:00,550 --> 00:28:02,810 دو جہتی سرنی - 667 00:28:02,810 --> 00:28:05,410 یا بلکہ یہ ایک دو کے طور پر یہاں دکھایا گیا ہے جہتی سرنی - لیکن یہ صرف ہے 668 00:28:05,410 --> 00:28:10,770 اس طرح کے سائز 26 کے ایک سرنی، کہ اگر ہم سرنی میز، ٹیبل بریکٹ فون 669 00:28:10,770 --> 00:28:12,440 صفر سے اوپر دیئے گئے مستطیل ہے. 670 00:28:12,440 --> 00:28:15,090 ٹیبل بریکٹ 25 مستطیل ہے کے نیچے دیے گئے. 671 00:28:15,090 --> 00:28:18,620 اور اس میں ایک اعداد و شمار اپنی طرف متوجہ کر سکتے ہیں کس طرح ہے میں ذخیرہ کرنے کے لئے کرنا چاہتے ہیں جس میں ڈھانچہ 672 00:28:18,620 --> 00:28:19,790 لوگوں کے ناموں کے. 673 00:28:19,790 --> 00:28:24,370 >> لہذا مثال کے طور پر، اور میں اپنی طرف متوجہ نہیں رکھا جائے یہاں ہیڈ پر پوری بات، تو میں 674 00:28:24,370 --> 00:28:29,160 میں اب جا رہا ہوں جو اس سرنی، تھا ایک ہیش ٹیبل فون، اور یہ دوبارہ ہے 675 00:28:29,160 --> 00:28:31,360 محل وقوع صفر. 676 00:28:31,360 --> 00:28:34,840 یہ مقام ہے ایک، اور تو آگے. 677 00:28:34,840 --> 00:28:37,880 میں اس کے اعداد و شمار استعمال کرنا چاہتے ہیں کا دعوی ہے کہ ساخت، بحث کی خاطر، 678 00:28:37,880 --> 00:28:42,600 لوگوں کے ناموں کا ذخیرہ کرنے کے لئے، ایلس اور باب اور چارلی اور اس جیسے دیگر ناموں کے. 679 00:28:42,600 --> 00:28:46,110 تو آغاز کے طور پر اب اس کے بارے میں سوچنا ایک ڈکشنری، کا کہنا ہے کہ، کے 680 00:28:46,110 --> 00:28:47,520 الفاظ کی بہت سی کے ساتھ. 681 00:28:47,520 --> 00:28:49,435 وہ ناموں ہو ہو یہاں ہماری مثال میں. 682 00:28:49,435 --> 00:28:52,560 اور یہ کرنے کے لئے، شاید، سب بھی germane ہے ہم کے طور پر، ایک سپیل چیکر کے نفاذ 683 00:28:52,560 --> 00:28:54,400 مسئلہ کے لئے چھ قائم ہو سکتا ہے. 684 00:28:54,400 --> 00:28:59,300 >> ہم کل سائز 26 کے ایک سرنی ہے اگر ایسا ہے تو اس 25th جگہ ہے تا کہ 685 00:28:59,300 --> 00:29:03,390 کے نیچے دیے گئے، اور میں ایلس ہے کا دعوی ہے کہ کی لغت میں پہلا لفظ 686 00:29:03,390 --> 00:29:07,260 میں ریم میں داخل کرنا چاہتے ہیں کہ نام، اس اعداد و شمار کے ڈھانچے میں، کہاں ہیں 687 00:29:07,260 --> 00:29:12,480 تم سے کہہ instincts کہ ایلس کی نام اس صف میں جانا چاہئے؟ 688 00:29:12,480 --> 00:29:13,510 >> ہم 26 اختیارات ہیں. 689 00:29:13,510 --> 00:29:14,990 ہم نے اسے ڈال کرنا چاہتے ہیں کہاں؟ 690 00:29:14,990 --> 00:29:16,200 ہم نے بریکٹ صفر میں اس کا حق چاہتے ہیں؟ 691 00:29:16,200 --> 00:29:18,280 یلس کے لئے ایک، صفر کی کہ فون کرنے دو. 692 00:29:18,280 --> 00:29:20,110 اور بی ایک ہو جائے گا، اور C دو ہو جائے گا. 693 00:29:20,110 --> 00:29:22,600 تو ہم لکھنے کے لئے جا رہے ہیں یہاں ایلس کے نام تک. 694 00:29:22,600 --> 00:29:24,890 پھر ہم باب، ان کے داخل ہو تو نام یہاں جائیں گے. 695 00:29:24,890 --> 00:29:27,280 چارلی یہاں جائیں گے. 696 00:29:27,280 --> 00:29:30,500 اور تو آگے نیچے کے ذریعے اس ڈیٹا کی ساخت. 697 00:29:30,500 --> 00:29:32,090 >> یہ ایک حیرت انگیز آنکڑا ڈھانچہ ہے. 698 00:29:32,090 --> 00:29:32,730 کیوں؟ 699 00:29:32,730 --> 00:29:37,460 ویسے کے رننگ ٹائم کیا ہے اس میں ایک انسان کا نام ڈالنے 700 00:29:37,460 --> 00:29:39,850 ابھی آنکڑا ڈھانچہ؟ 701 00:29:39,850 --> 00:29:43,702 اس ٹیبل لاگو کیا جاتا ہے کہ اس کو دیکھتے ہوئے، واقعی، ایک سرنی کے طور پر. 702 00:29:43,702 --> 00:29:44,940 ویسے یہ مسلسل وقت ہے. 703 00:29:44,940 --> 00:29:45,800 یہ ایک حکم ہے. 704 00:29:45,800 --> 00:29:46,360 کیوں؟ 705 00:29:46,360 --> 00:29:48,630 >> ویسے آپ کس طرح کا تعین کرتے ہیں ایلس کا تعلق کہاں؟ 706 00:29:48,630 --> 00:29:51,000 تم نے اس کے نام کے جس خط پر نظر ڈالیں؟ 707 00:29:51,000 --> 00:29:51,490 سب سے پہلے. 708 00:29:51,490 --> 00:29:54,350 یہ ایک تار ہے اور اگر آپ کو وہاں مل سکتا ہے صرف سٹرنگ کو دیکھ کر 709 00:29:54,350 --> 00:29:55,200 بریکٹ صفر. 710 00:29:55,200 --> 00:29:57,110 سٹرنگ کی zeroth کردار تو. 711 00:29:57,110 --> 00:29:57,610 یہ آسان ہے. 712 00:29:57,610 --> 00:30:00,350 ہم crypto میں نے تفویض ہفتے قبل. 713 00:30:00,350 --> 00:30:05,310 اور پھر ایک بار جب آپ اس ایلس ہے خط دارالحکومت ہے، ہم منہا کر سکتے ہیں 714 00:30:05,310 --> 00:30:08,160 65 سال یا اس کے دارالحکومت کے ایک ہی دور کہ ہم صفر دیتا ہے. 715 00:30:08,160 --> 00:30:10,940 تو کیا اب ہم جانتے ہیں کہ ایلس کا تعلق محل وقوع کے صفر پر. 716 00:30:10,940 --> 00:30:14,240 >> اور یہ اعداد و شمار کے ایک پوائنٹر دی ساخت، کسی قسم کے، کتنی دیر تک کرتا ہے 717 00:30:14,240 --> 00:30:18,840 یہ محل وقوع کے تلاش کرنے کے لئے مجھے لے چلو ایک صف میں صفر؟ 718 00:30:18,840 --> 00:30:22,080 بس ایک قدم ہے، درست یہ مسلسل وقت ہے بے ترتیب تک رسائی کی وجہ سے ہم 719 00:30:22,080 --> 00:30:23,780 مجوزہ ایک سرنی کی ایک خصوصیت تھی. 720 00:30:23,780 --> 00:30:28,570 لہذا مختصر میں، باہر figuring کیا انڈیکس کی ایلس کے نام، ہے، ہے 721 00:30:28,570 --> 00:30:32,610 اس کیس، ایک ہے، یا دو کی صرف حل صفر، جہاں بی سے ایک ہے اور سی ہے 722 00:30:32,610 --> 00:30:34,900 دو، کہ باہر figuring مسلسل وقت ہے. 723 00:30:34,900 --> 00:30:38,510 میں صرف اپنے پہلے خط کو دیکھنے کے لئے ہے صفر ہے جہاں باہر figuring ایک 724 00:30:38,510 --> 00:30:40,460 سرنی بھی مسلسل وقت ہے. 725 00:30:40,460 --> 00:30:42,140 لہذا تکنیکی طور پر ہے اب دو مراحل کی طرح. 726 00:30:42,140 --> 00:30:43,330 لیکن یہ اب بھی مسلسل ہے. 727 00:30:43,330 --> 00:30:46,880 تو ہم میں سے ایک کی ہے کہ بڑی اے کال، تو ہم ہے میں اس ٹیبل میں ایلس ڈالا 728 00:30:46,880 --> 00:30:48,440 مسلسل وقت. 729 00:30:48,440 --> 00:30:50,960 >> لیکن کورس کی، میں جا رہا ہوں یہاں بولی، ٹھیک؟ 730 00:30:50,960 --> 00:30:53,240 کیا کلاس میں ایک ہارون ہے تو کیا ہوگا؟ 731 00:30:53,240 --> 00:30:53,990 یا ایلیسیا؟ 732 00:30:53,990 --> 00:30:57,230 یا کسی دوسرے کے نام سے شروع اے ہم کہاں ڈال کرنے کے لئے جا رہے ہیں 733 00:30:57,230 --> 00:31:00,800 اس شخص، صحیح؟ 734 00:31:00,800 --> 00:31:03,420 میرا مطلب ہے، ابھی صرف تین ہے میز پر لوگوں کو، تو شاید ہم 735 00:31:03,420 --> 00:31:07,490 مقام پر ہارون ڈال چاہئے صفر ایک دو تین. 736 00:31:07,490 --> 00:31:09,480 >> ٹھیک ہے، میں یہاں ایک ڈال سکتا ہے. 737 00:31:09,480 --> 00:31:13,350 لیکن اس وقت، ہم میں ڈیوڈ داخل کرنے کی کوشش کریں تو اس فہرست، ڈیوڈ کہاں جاتا ہے؟ 738 00:31:13,350 --> 00:31:15,170 اب ہمارے نظام توڑ شروع ہوتا ہے نیچے، ہے نا؟ 739 00:31:15,170 --> 00:31:19,210 اب ڈیوڈ یہاں ختم ہو جاتی ہے کیونکہ ہارون یہاں اصل میں ہے. 740 00:31:19,210 --> 00:31:23,060 ایک ہونے کی اور اس طرح اب اس پورے خیال ہمیں دیتا ہے صاف آنکڑا ڈھانچہ 741 00:31:23,060 --> 00:31:28,010 مسلسل اضافے کا وقت نہیں رہ گیا ہے میں کیونکہ مسلسل وقت، 742 00:31:28,010 --> 00:31:31,240 چیک کریں، اوہ، damnit، کسی نے پہلے سے ہی ہے ایلس کی جگہ پر. 743 00:31:31,240 --> 00:31:35,320 >> مجھے اس کے اعداد و شمار کے باقی حصوں کی تحقیقات کرتے ہیں ساخت، ڈال کرنے کے لئے ایک جگہ کے لئے تلاش کر 744 00:31:35,320 --> 00:31:37,130 ہارون کے نام جیسا کوئی. 745 00:31:37,130 --> 00:31:39,390 اور اس لیے بھی شروع کر رہا ہے کہ لکیری وقت لگے گا. 746 00:31:39,390 --> 00:31:42,710 اس کے علاوہ، اب آپ تلاش کرنے کے لئے چاہتے ہیں تو اس اعداد و شمار کے ڈھانچے میں ہارون، اور آپ 747 00:31:42,710 --> 00:31:45,430 چیک کریں، اور ہارون کے نام یہاں نہیں ہے. 748 00:31:45,430 --> 00:31:47,960 مثالی طور پر، آپ کو صرف ہارون کی کہیں گے نہیں اعداد و شمار کے ڈھانچے میں. 749 00:31:47,960 --> 00:31:51,530 لیکن اگر آپ ایسا کرتے کے لئے کمرے بنانے شروع ہارون جہاں ڈی وہاں ہونا چاہیے 750 00:31:51,530 --> 00:31:55,600 یا ایک ای، آپ، بدترین کیس، چیک کرنے کے لئے ہے میں پورے اعداد و شمار کے ڈھانچے، 751 00:31:55,600 --> 00:31:59,480 یہ کچھ میں devolves جس صورت ٹیبل کے سائز میں لکیری. 752 00:31:59,480 --> 00:32:00,920 >> ٹھیک ہے تو، میں اس کو ٹھیک کر دیں گے. 753 00:32:00,920 --> 00:32:04,200 یہاں مسئلہ یہ ہے کہ میرے پاس تھا اس صف میں 26 عناصر. 754 00:32:04,200 --> 00:32:05,000 مجھے اسے تبدیل کرتے ہیں. 755 00:32:05,000 --> 00:32:06,010 افوہ. 756 00:32:06,010 --> 00:32:10,600 بلکہ کے کیا جا رہا ہے تاکہ مجھے اسے تبدیل کرتے ہیں کل سائز 26، نیچے نوٹس 757 00:32:10,600 --> 00:32:12,720 انڈیکس ن مائنس 1 تبدیل کرنے کی جا رہی ہے. 758 00:32:12,720 --> 00:32:16,610 26 انسانوں کے لئے واضح طور پر بہت چھوٹا ہے تو ناموں، کی وجہ سے ہزاروں کی ہے 759 00:32:16,610 --> 00:32:20,830 دنیا کے نام، کی صرف کرنے دو 100 یا 1،000 10،000 یا میں. 760 00:32:20,830 --> 00:32:22,960 کی صرف ایک بہت زیادہ جگہ مختص ہیں. 761 00:32:22,960 --> 00:32:27,230 >> ویسے ضروری کم نہیں ہے ہم دو نہیں پڑے گا کہ امکان 762 00:32:27,230 --> 00:32:31,510 ناموں کے ساتھ لوگوں کو ایک ساتھ شروع کرنے کے، اور لہذا، آپ کو ایک ڈالنے کے لئے کوشش کرنے کے لئے جا رہے تھے 763 00:32:31,510 --> 00:32:33,120 اب بھی صفر پر محل وقوع کے نام. 764 00:32:33,120 --> 00:32:36,850 وہ اب بھی، ٹکرانے کے لئے جا رہے ہیں جو ہم اب بھی ڈال کرنے کے لئے ایک حل کی ضرورت کا مطلب ہے 765 00:32:36,850 --> 00:32:41,020 ایلس اور ہارون اور ایلیسیا اور دیگر ایک دوسری جگہوں سے شروع ہونے والے ناموں کے. 766 00:32:41,020 --> 00:32:43,460 لیکن یہ کتنا ایک مسئلہ ہے؟ 767 00:32:43,460 --> 00:32:46,870 احتمال کیا ہے کہ آپ ایک اعداد و شمار میں collisions ہے 768 00:32:46,870 --> 00:32:48,240 اس طرح کی ساخت؟ 769 00:32:48,240 --> 00:32:52,570 >> ٹھیک ہے، مجھے دو - ہم واپس آ جائیں گے یہاں یہ سوال کرنے کے لئے. 770 00:32:52,570 --> 00:32:55,530 اور ہم کس طرح طاقت کی طرف دیکھو سب سے پہلے اس مسئلہ کو حل. 771 00:32:55,530 --> 00:32:58,480 مجھے یہاں اس تجویز ھیںچو ہیں. 772 00:32:58,480 --> 00:33:02,020 کیا ہم صرف بیان کیا ہے، ایک الگورتھم ہے لکیری نامی ایک heuristic 773 00:33:02,020 --> 00:33:05,030 آپ کو داخل کرنے کی کوشش کی ہو، جس کی تحقیقات اس اعداد و شمار میں یہاں کچھ 774 00:33:05,030 --> 00:33:08,920 ایک ہیش میز کہا جاتا ہے جس کی ساخت،، اور کوئی گنجائش تم وہاں ہے 775 00:33:08,920 --> 00:33:12,000 واقعی آنکڑا ڈھانچہ کی تحقیقات جانچ پڑتال، یہ دستیاب ہے؟ 776 00:33:12,000 --> 00:33:13,430 اس کا یہ دستیاب ہے ہے؟ 777 00:33:13,430 --> 00:33:13,980 یہ دستیاب ہے؟ 778 00:33:13,980 --> 00:33:17,550 اور اس کے آخر میں ہے، تو آپ داخل آپ کو اصل مقصد اس کے نام 779 00:33:17,550 --> 00:33:19,370 دوسری جگہوں پر اس جگہ پر. 780 00:33:19,370 --> 00:33:23,360 لیکن بدترین صورت میں، صرف جگہ اعداد و شمار کے بہت نیچے ہو سکتا ہے 781 00:33:23,360 --> 00:33:25,090 ساخت، سرنی کے اختتام. 782 00:33:25,090 --> 00:33:30,130 >> تو لکیری بدترین صورت میں، تحقیقات، ایک لکیری الگورتھم میں devolves جہاں 783 00:33:30,130 --> 00:33:34,500 ہارون، وہ گزشتہ داخل ہو تو اس اعداد و شمار کے ڈھانچے میں، وہ شاید 784 00:33:34,500 --> 00:33:39,540 یہ پہلی محل وقوع کے ساتھ ٹکرانے، لیکن پھر آخر میں بہت بدقسمتی کی طرف سے ختم. 785 00:33:39,540 --> 00:33:43,940 تو یہ ایک مسلسل نہیں ہے ہمارے لیے وقت مقدس grail. 786 00:33:43,940 --> 00:33:47,650 ڈالنے عناصر کا یہ نقطہ نظر میں ایک آنکڑا ڈھانچہ ایک ہیش کہا جاتا ہے 787 00:33:47,650 --> 00:33:52,050 میز کے مستقل وقت نہیں ہے کم از کم عام کیس میں. 788 00:33:52,050 --> 00:33:54,000 یہ لکیری کچھ میں devolve کر سکتے ہیں. 789 00:33:54,000 --> 00:33:56,970 >> ہم collisions حل تو کیا ہوا اگر کسی حد تک مختلف طریقے سے؟ 790 00:33:56,970 --> 00:34:00,740 تو یہاں ایک سے زیادہ بہتر ہے اب بھی کیا ہے کے نقطہ نظر 791 00:34:00,740 --> 00:34:02,800 ایک ہیش میز سے ملاقات کی. 792 00:34:02,800 --> 00:34:05,890 اور ہیش کی طرف سے، ایک طرف، کیا کے طور پر میں اس انڈیکس مطلب ہے 793 00:34:05,890 --> 00:34:07,070 میں نے پہلے کہا جاتا ہے. 794 00:34:07,070 --> 00:34:09,810 کرنے کے لئے ہیش کچھ ہو سکتا ہے ایک فعل کے طور پر کے بارے میں سوچا. 795 00:34:09,810 --> 00:34:13,690 >> اگر آپ ہیش ایلس ایک نام ہے اگر ایسا ہے تو ایک ہیش کی تقریب،، تو بات کرنے 796 00:34:13,690 --> 00:34:14,710 ایک بڑی تعداد واپس آ جانا چاہئے. 797 00:34:14,710 --> 00:34:18,199 وہ کم سے تعلق رکھتا ہے تو اس صورت میں صفر ہے وہ کم سے تعلق رکھتا ہے تو محل وقوع صفر، ایک 798 00:34:18,199 --> 00:34:20,000 محل وقوع سے ایک، اور تو آگے. 799 00:34:20,000 --> 00:34:24,360 تو میری ہیش تقریب اس طرح دور کر دیا گیا ہے سادہ سپر، صرف دیکھ 800 00:34:24,360 --> 00:34:26,159 کسی کے نام سے پہلا حرف. 801 00:34:26,159 --> 00:34:29,090 لیکن ایک ہیش تقریب کے طور پر لیتا ہے ان پٹ کے اعداد و شمار کے کچھ ٹکڑے، ایک 802 00:34:29,090 --> 00:34:30,210 سٹرنگ، ایک INT، جو کچھ بھی. 803 00:34:30,210 --> 00:34:32,239 اور یہ عام طور پر ایک بڑی تعداد باہر spits. 804 00:34:32,239 --> 00:34:35,739 اور یہ نمبر ہے جہاں اس کے اعداد و شمار عنصر ایک ڈیٹا ڈھانچے میں تعلق رکھتا ہے 805 00:34:35,739 --> 00:34:37,800 ایک ہیش میز کے طور پر یہاں پر جانا جاتا ہے. 806 00:34:37,800 --> 00:34:41,400 >> تو صرف intuitively، یہ ہے تھوڑا سا مختلف سیاق و سباق. 807 00:34:41,400 --> 00:34:44,170 یہ اصل میں ایک مثال کا حوالہ دیتے ہوئے ہے شامل سالگرہ، جہاں 808 00:34:44,170 --> 00:34:46,850 کے طور پر کئی کے طور پر ہو سکتا ہے مہینے میں 31 دن. 809 00:34:46,850 --> 00:34:52,239 لیکن اس شخص کو کیا فیصلہ کیا تھا ایک تصادم کی صورت میں کرتے ہیں؟ 810 00:34:52,239 --> 00:34:55,304 سیاق و سباق، اب کے ایک تصادم نہیں ہونے کی وجہ سے ناموں، لیکن سالگرہ کا تصادم، 811 00:34:55,304 --> 00:35:00,760 دو افراد پر ایک ہی سالگرہ ہے تو مثال کے طور پر اکتوبر کے 2nd،. 812 00:35:00,760 --> 00:35:02,120 >> طالب: [اشراوی]. 813 00:35:02,120 --> 00:35:05,010 >> اسپیکر 1: جی ہاں، تو ہم یہاں ہیں منسلک کی فہرست کے فائدہ. 814 00:35:05,010 --> 00:35:07,830 تو یہ مختلف طریقے سے ایک چھوٹا سا لگ رہا ہے ہم پہلے اس سے زیادہ مبذول کرائی. 815 00:35:07,830 --> 00:35:10,790 لیکن ہم ایک سرنی کرنے کی ضرورت کو نظر آئے بائیں ہاتھ کی طرف پر. 816 00:35:10,790 --> 00:35:13,230 یہی نہیں کے لئے، ایک اشاریہ ہے خاص وجہ کے. 817 00:35:13,230 --> 00:35:14,630 لیکن یہ اب بھی ایک سرنی ہے. 818 00:35:14,630 --> 00:35:16,160 یہ اشارہ کی ایک سرنی ہے. 819 00:35:16,160 --> 00:35:20,670 اور ہر ایک کے ان عناصر میں سے ہر ایک، ان حلقوں یا slashes - سلیش 820 00:35:20,670 --> 00:35:23,970 کی نمائندگی اتارنا null - ان میں سے ہر ایک اشارہ بظاہر کی طرف اشارہ کیا جاتا ہے 821 00:35:23,970 --> 00:35:25,730 کیا آنکڑا ڈھانچہ؟ 822 00:35:25,730 --> 00:35:26,890 ایک سے منسلک فہرست. 823 00:35:26,890 --> 00:35:30,530 >> تو اب ہم کرنے کی صلاحیت ہے اپنے پروگرام میں مشکل کوڈ 824 00:35:30,530 --> 00:35:32,010 ٹیبل کے سائز. 825 00:35:32,010 --> 00:35:35,360 اس صورت میں، ہم وہاں کبھی نہیں ہے ایک ماہ میں زیادہ سے زیادہ 31 دنوں. 826 00:35:35,360 --> 00:35:38,480 بہت مشکل 31 کی طرح ایک قیمت ہے کوڈنگ اس سیاق و سباق میں مناسب. 827 00:35:38,480 --> 00:35:42,700 ناموں کے تناظر میں، مشکل کوڈنگ 26 اکارن نہیں ہے، یہ لوگوں کی 828 00:35:42,700 --> 00:35:46,340 ناموں صرف مثال کے طور پر، کے ساتھ شروع زیڈ کے ذریعے ایک شامل حروف تہجی 829 00:35:46,340 --> 00:35:50,180 >> ہم اس کے اعداد و شمار میں ان سب کو رٹنا کر سکتے ہیں ساخت اتنی دیر تک ہم ایک ہو جاؤ، جب کے طور پر 830 00:35:50,180 --> 00:35:55,330 تصادم، ہم یہاں ناموں میں نہ ڈالو، ہم اس کے بجائے ان خلیات کے بارے میں سوچنا 831 00:35:55,330 --> 00:36:00,270 نہیں ڈور خود، لیکن کے طور پر کے طور پر مثال کے طور پر، یلس کرنے کے لئے اشارہ. 832 00:36:00,270 --> 00:36:03,660 اور پھر ایک اور ایلس پوائنٹر کر سکتے ہیں کے ساتھ شروع کرنے کے لئے ایک اور نام 833 00:36:03,660 --> 00:36:06,150 اے اور باب اصل میں یہاں چلا جاتا ہے. 834 00:36:06,150 --> 00:36:10,850 >> اور شروع ہونے والے ایک اور نام ہے تو بی کے ساتھ، وہ یہاں تک ختم ہوتا ہے. 835 00:36:10,850 --> 00:36:15,070 اور اس طرح اس کے عناصر میں سے ہر ایک ہم یہ ایک ڈیزائن کیا تو میز دو، 836 00:36:15,070 --> 00:36:17,350 تھوڑا زیادہ چالاکی - 837 00:36:17,350 --> 00:36:18,125 پر آئے - 838 00:36:18,125 --> 00:36:22,950 ہم یہ تھوڑا زیادہ ڈیزائن کیا گیا تو چالاکی، اب ایک انکولی اعداد و شمار ہو جاتا ہے 839 00:36:22,950 --> 00:36:27,720 کوئی مشکل حد ہوتی ہے جہاں ڈھانچہ، آپ کو داخل کر سکتے ہیں کس طرح بہت سے عناصر پر 840 00:36:27,720 --> 00:36:30,700 اس میں اگر آپ ایسا کرتے ہیں کیونکہ ایک تصادم، ٹھیک ہے. 841 00:36:30,700 --> 00:36:34,690 آگے بڑھو اور اس شامل ہم تھا تھوڑا سا پہلے کیا دیکھا 842 00:36:34,690 --> 00:36:38,290 ایک لنک کی فہرست کے طور پر جانا جاتا ہے. 843 00:36:38,290 --> 00:36:39,690 >> ٹھیک ہے صرف ایک لمحے کے لئے روکنے کی ہیں. 844 00:36:39,690 --> 00:36:42,570 ایک تصادم کے امکانات کیا ہے پہلی جگہ میں؟ 845 00:36:42,570 --> 00:36:45,480 ٹھیک ہے، شاید میں سے زیادہ ہو سکتا ہے، سوچ رہا ہوں میں، اس مسئلہ انجینئرنگ سے زیادہ ہوں 846 00:36:45,480 --> 00:36:46,370 کیا آپ کو معلوم ہے؟ 847 00:36:46,370 --> 00:36:49,070 جی ہاں، میں من مانی کے ساتھ آ سکتا ہے کی طرح میرے سر کے اوپر بند مثالیں 848 00:36:49,070 --> 00:36:52,870 یلیسن اور ہارون، لیکن حقیقت میں، کے ایک ہی تقسیم دی 849 00:36:52,870 --> 00:36:56,990 کچھ بے ترتیب اضافے ہے کہ آدانوں، ایک اعداد و شمار کے ڈھانچے میں، سچ کیا ہے 850 00:36:56,990 --> 00:36:58,580 ایک تصادم کے امکانات؟ 851 00:36:58,580 --> 00:37:01,670 ویسے باہر کر دیتا ہے، یہ اصل میں ہے سپر ہائی. 852 00:37:01,670 --> 00:37:03,850 اس سے مجھے وسیع کرتے ہیں مسئلہ اس کے طور پر ہے. 853 00:37:03,850 --> 00:37:08,890 >> تو (ن) کے ایک کمرے میں CS50 طالب علموں کو، کیا ہے امکان ہے کہ کم از کم 854 00:37:08,890 --> 00:37:11,010 کمرے میں دو طالب علموں کو اسی سالگرہ ہے؟ 855 00:37:11,010 --> 00:37:13,346 تو کیا ہوا ہے. چند hund - 856 00:37:13,346 --> 00:37:16,790 یہاں اور کئی 200، 300 افراد آج گھر میں سو افراد. 857 00:37:16,790 --> 00:37:20,670 آپ کو کیا خود سے پوچھنا چاہتا تھا تو اگر دو افراد کے امکانات 858 00:37:20,670 --> 00:37:23,930 اسی سالگرہ رکھنے والے اس کمرے میں، ہم نے یہ اندازہ لگا سکتا ہے. 859 00:37:23,930 --> 00:37:26,250 اور میں دونوں موجود ہیں اصل میں دعوی اسی سالگرہ کے ساتھ لوگوں کے. 860 00:37:26,250 --> 00:37:29,560 >> مثال کے طور پر، کسی کو کرتا ہے آج سالگرہ ہے؟ 861 00:37:29,560 --> 00:37:31,340 کل؟ 862 00:37:31,340 --> 00:37:32,590 کل؟ 863 00:37:32,590 --> 00:37:35,980 میں جا رہا ہوں جیسے ٹھیک ہے، تو یہ محسوس ہوتا ہے مزید یہ 363 یا ایسا کرنے کے لئے ہے 864 00:37:35,980 --> 00:37:39,500 اوقات اصل میں معلوم کرنا ہم ایسا کرتے ہیں تو ایک تصادم ہے. 865 00:37:39,500 --> 00:37:42,350 یا ہم صرف mathematically ایسا کر سکتا ہے بلکہ tediously سے زیادہ 866 00:37:42,350 --> 00:37:43,200 یہ کر رہے. 867 00:37:43,200 --> 00:37:44,500 اور مندرجہ ذیل تجویز پیش کی. 868 00:37:44,500 --> 00:37:48,740 >> لہذا میں ہم ماڈل سکتا ہے تجویز ہونے دو افراد کے امکانات 869 00:37:48,740 --> 00:37:55,320 1 کے امکانات کے طور پر اسی سالگرہ ہونے کا کوئی ایک کی مائنس امکان 870 00:37:55,320 --> 00:37:56,290 اسی سالگرہ. 871 00:37:56,290 --> 00:37:59,960 تو یہ حاصل کرنے کے لئے، اور یہ صرف ہے کے لئے یہ لکھنے کا طریقہ پسند ہیں، 872 00:37:59,960 --> 00:38:03,090 کمرے میں پہلا شخص، وہ یا وہ ممکن میں سے کوئی ایک ہو سکتا ہے 873 00:38:03,090 --> 00:38:07,370 سالگرہ، سال میں 365 دن سنبھالنے کے کے ساتھ افراد کو مستثنی تقاضہ کرنے کے ساتھ 874 00:38:07,370 --> 00:38:08,760 فروری 29th سالگرہ. 875 00:38:08,760 --> 00:38:13,470 >> تو اس کمرے میں پہلے شخص آزاد ہے سالگرہ کی کسی بھی تعداد ہے 876 00:38:13,470 --> 00:38:18,280 باہر 365 امکانات کے تاکہ ہم نے 365 کی طرف سے 365 تقسیم ویسا ہی کروں گا 877 00:38:18,280 --> 00:38:18,990 جس میں سے ایک ہے. 878 00:38:18,990 --> 00:38:22,700 کمرے میں اگلے شخص، اگر مقصد ایک تصادم سے بچنے کے لئے ہے، کر سکتے ہیں صرف 879 00:38:22,700 --> 00:38:26,460 کس طرح اس کا یا اس کی سالگرہ ہے بہت سے مختلف ممکن دن؟ 880 00:38:26,460 --> 00:38:27,610 364. 881 00:38:27,610 --> 00:38:31,430 تو اس کے اظہار میں دوسری اصطلاح ہے بنیادی طور پر ہمارے لئے جو ریاضی کر 882 00:38:31,430 --> 00:38:33,460 ایک ممکن چھٹی کا دن تفریق کی طرف سے. 883 00:38:33,460 --> 00:38:36,390 اور پھر اگلے دن، اگلے دن، نیچے کل تعداد کے لئے اگلے دن 884 00:38:36,390 --> 00:38:38,100 کمرے میں لوگوں کی. 885 00:38:38,100 --> 00:38:41,290 >> اور پھر ہم غور کریں تو کیا ہے نہ رکھنے والے ہر شخص کے امکانات 886 00:38:41,290 --> 00:38:45,265 منفرد سالگرہ، لیکن ایک بار پھر 1 مائنس کہ ہم جو حاصل ایک اظہار ہے 887 00:38:45,265 --> 00:38:47,810 بہت fancifully کر سکتے ہیں اس طرح نظر آئے. 888 00:38:47,810 --> 00:38:50,330 لیکن اس سے زیادہ دلچسپ ہے ضعف کو دیکھنے کے لئے. 889 00:38:50,330 --> 00:38:55,120 یہ X-محور پر ہے جہاں ایک چارٹ ہے کمرے میں لوگوں کی تعداد، 890 00:38:55,120 --> 00:38:56,180 سالگرہ کی تعداد. 891 00:38:56,180 --> 00:38:59,840 Y-محور پر امکان ہے ایک تصادم کی وجہ سے، دو افراد 892 00:38:59,840 --> 00:39:01,230 اسی سالگرہ ہے. 893 00:39:01,230 --> 00:39:05,020 >> اور یہ وکر سے takeaway ہے کہ اگر آپ 40 کو پسند کرنے کے لئے حاصل کے طور پر جلد کے طور پر 894 00:39:05,020 --> 00:39:11,110 طالب علموں کو، آپ کو 90 فی صد امکان میں ہو combinatorically دونوں میں سے 895 00:39:11,110 --> 00:39:13,550 لوگوں یا اس سے زیادہ ہونا اسی سالگرہ. 896 00:39:13,550 --> 00:39:18,600 اور ایک بار آپ یہ 58 لوگوں کو پسند کرنے کے لئے حاصل ایک موقع دو میں سے تقریبا 100٪ 897 00:39:18,600 --> 00:39:21,310 کمرے میں لوگ کرنے جا رہے ہیں اسی سالگرہ، ہے اگرچہ 898 00:39:21,310 --> 00:39:26,650 365 یا 366 ممکن بالٹیاں، اور کمرے میں صرف 58 لوگوں. 899 00:39:26,650 --> 00:39:29,900 بس اعدادوشمار آپ کو ہونے کا امکان ہو ، collisions ملے جو مختصر میں 900 00:39:29,900 --> 00:39:31,810 اس بحث ابھارتا ہے. 901 00:39:31,810 --> 00:39:35,890 ہم یہاں پسند ہیں حاصل کرنے کے، اور یہاں تک کہ اگر ان زنجیروں شروع، ہم اب بھی ہیں 902 00:39:35,890 --> 00:39:36,950 collisions پڑے گا. 903 00:39:36,950 --> 00:39:42,710 >> سوال جنم لیتا ہے، تا کہ کیا ہے اضافے اور حذف کرنے کی لاگت 904 00:39:42,710 --> 00:39:44,850 اس طرح کے اعداد و شمار کے ڈھانچے میں؟ 905 00:39:44,850 --> 00:39:46,630 ویسے مجھے تجویز کرتے ہیں - 906 00:39:46,630 --> 00:39:51,570 اور مجھ سے زیادہ کی سکرین پر واپس جانے دو یہاں - ہم میں عناصر کو ن ہے تو 907 00:39:51,570 --> 00:39:56,330 فہرست، تو ہم داخل کرنے کی کوشش کر رہے ہیں تو (ن) کے عناصر، اور ہم ہیں 908 00:39:56,330 --> 00:39:58,050 کتنے کل بالٹیاں؟ 909 00:39:58,050 --> 00:40:03,450 چلو کا کہنا ہے کہ 31 کل بالٹیاں سالگرہ کی صورت میں. 910 00:40:03,450 --> 00:40:09,240 ایک کی زیادہ سے زیادہ لمبائی کیا ہے ممکنہ طور پر ان زنجیروں کے؟ 911 00:40:09,240 --> 00:40:12,670 >> پھر ممکن 31 ہے تو ایک دیئے گئے مہینے میں سالگرہ. 912 00:40:12,670 --> 00:40:14,580 اور ہم صرف سب clumping رہے ہیں - 913 00:40:14,580 --> 00:40:15,580 اصل میں یہ ایک احمقانہ مثال ہے. 914 00:40:15,580 --> 00:40:16,960 بجائے 26 کرتے ہیں. 915 00:40:16,960 --> 00:40:20,890 اصل میں جن کے نام لوگ ہیں اگر ایسا ہے تو اس طرح دے، Z کے ذریعے ایک ساتھ شروع 916 00:40:20,890 --> 00:40:22,780 ہمیں 26 امکانات. 917 00:40:22,780 --> 00:40:25,920 اور ہم جیسے آنکڑا ڈھانچہ استعمال کر رہے ہیں ہم نے جس کے تحت ہم نے ابھی دیکھا ایک، 918 00:40:25,920 --> 00:40:30,210 اشارہ کی ایک سرنی، جس میں سے ہر ایک جہاں منسلک فہرست پوائنٹس 919 00:40:30,210 --> 00:40:32,360 پہلی فہرست ہر کوئی ہے نام Alice کے ساتھ. 920 00:40:32,360 --> 00:40:35,770 دوسری فہرست میں ہر کے ساتھ ہے شروع، ایک کے ساتھ شروع ہونے والے کا نام 921 00:40:35,770 --> 00:40:36,980 بی کے ساتھ، اور تو آگے. 922 00:40:36,980 --> 00:40:41,020 >> میں سے ہر ایک کے امکان کی لمبائی کیا ہے ان فہرستوں میں ہم ایک اچھے صاف فرض تو 923 00:40:41,020 --> 00:40:45,410 AZ کرنے کے ذریعے کے ناموں کی تقسیم سارا آنکڑا ڈھانچہ بھر میں؟ 924 00:40:45,410 --> 00:40:50,210 اعداد و شمار کے ڈھانچے میں (ن) کے لوگوں کو ہے وہ اچھی طرح سے ہو، 26 سے تقسیم 925 00:40:50,210 --> 00:40:52,110 پوری سے زیادہ باہر پھیل آنکڑا ڈھانچہ. 926 00:40:52,110 --> 00:40:54,970 تو ان میں سے ہر ایک کی لمبائی زنجیروں 26 سے تقسیم (ن) ہے. 927 00:40:54,970 --> 00:40:57,380 لیکن بڑی اے سنکیتن میں، وہ کیا ہے؟ 928 00:40:57,380 --> 00:41:00,100 929 00:41:00,100 --> 00:41:02,440 واقعی وہ کیا ہے؟ 930 00:41:02,440 --> 00:41:04,150 تو یہ درست ہے، واقعی صرف ن ہے؟ 931 00:41:04,150 --> 00:41:06,620 ہم نے ماضی میں کہہ دیا ہے کیونکہ، اہ آپ 26 کی طرف سے تقسیم ہے. 932 00:41:06,620 --> 00:41:08,710 جی ہاں، حقیقت میں یہ تیز تر ہے. 933 00:41:08,710 --> 00:41:12,720 لیکن اصول میں، یہ بنیادی طور پر نہیں ہے تمام ہے کہ تیزی سے. 934 00:41:12,720 --> 00:41:16,040 >> تو ہم سب اتنا نہیں لگتے ہیں قریب اس مقدس grail کرنے کے لئے. 935 00:41:16,040 --> 00:41:17,750 اصل میں، یہ صرف لکیری وقت ہے. 936 00:41:17,750 --> 00:41:20,790 Heck، اس نقطہ پر، ہم کیوں نہیں کرتے صرف ایک بہت بڑی منسلک فہرست کا استعمال کرتے ہیں؟ 937 00:41:20,790 --> 00:41:23,510 کیوں نہ ہم صرف ایک بھاری استعمال نہیں کرتے کے ناموں کا ذخیرہ کرنے کے لئے سرنی 938 00:41:23,510 --> 00:41:25,010 کمرے میں ہر کسی کو؟ 939 00:41:25,010 --> 00:41:28,280 ٹھیک ہے، کچھ بھی نہیں ہے ایک ہیش میز کے بارے میں مجبور؟ 940 00:41:28,280 --> 00:41:30,810 مجبور کچھ بھی نہیں ہے ایک ڈیٹا کی ساخت کے بارے میں 941 00:41:30,810 --> 00:41:33,940 اس طرح لگتا ہے؟ 942 00:41:33,940 --> 00:41:35,182 یہ. 943 00:41:35,182 --> 00:41:37,050 >> طالب: [اشراوی]. 944 00:41:37,050 --> 00:41:39,840 >> اسپیکر 1: یہ صرف کا حق ہے، اور پھر اگر ایک لکیری وقت الگورتھم، اور ایک 945 00:41:39,840 --> 00:41:42,780 لکیری وقت کے اعداد و شمار کے ڈھانچے، مجھے کیوں نہیں کرتے صرف ایک بڑا میں سب کے نام کی دکان 946 00:41:42,780 --> 00:41:44,210 سرنی، یا ایک بڑا منسلک فہرست میں؟ 947 00:41:44,210 --> 00:41:47,010 اور اتنا مشکل سرفنگ بنانا بند کرو یہ کرنے کی ضرورت کے مقابلے میں؟ 948 00:41:47,010 --> 00:41:49,600 949 00:41:49,600 --> 00:41:53,190 بھی، اس کے بارے میں مجبور کیا ہے میں نے اسے نوچا اگرچہ؟ 950 00:41:53,190 --> 00:41:54,930 >> طالب: [اشراوی]. 951 00:41:54,930 --> 00:41:57,040 >> اسپیکر: 1 اضافے نہیں ہیں؟ 952 00:41:57,040 --> 00:41:58,140 اب مہنگی. 953 00:41:58,140 --> 00:42:03,390 تو اضافے ممکنہ طور پر اب بھی کر سکتے تھے ، مسلسل وقت یہاں تک کہ اگر آپ کے ڈیٹا 954 00:42:03,390 --> 00:42:07,910 ساخت، اس طرح کی ایک سرنی لگتا ہے اشارہ، کی طرف اشارہ کر رہا ہے جن میں سے ہر 955 00:42:07,910 --> 00:42:09,550 ممکنہ طور پر ایک لنک کی فہرست. 956 00:42:09,550 --> 00:42:15,220 تم کس طرح مسلسل کو حاصل کر سکتا ہے ناموں کے اندراج کے وقت؟ 957 00:42:15,220 --> 00:42:16,280 حق، سامنے رہنا؟ 958 00:42:16,280 --> 00:42:19,290 >> ہم سے ڈیزائن مقصد قربانی تو پہلے، ہم کو رکھنے کے لئے کرنا چاہتا تھا جہاں 959 00:42:19,290 --> 00:42:22,650 سب کا نام، مثال کے طور پر، حل، یا اسٹیج پر اعداد کی تمام، حل 960 00:42:22,650 --> 00:42:25,020 ہم ایک ہیں جو فرض ناچھانٹا ہوا منسلک فہرست. 961 00:42:25,020 --> 00:42:29,960 یہ صرف ہم سے ایک یا دو اقدامات کی قیمت بین اور برائن کی صورت میں پسند 962 00:42:29,960 --> 00:42:32,750 پہلے، میں ایک عنصر داخل کرنے کے لیے فہرست کے آغاز. 963 00:42:32,750 --> 00:42:36,090 ہم سب کو چھانٹ رہا ہے کے بارے میں کوئی پرواہ نہیں ہے اگر ایسا ہے تو سے شروع ہونے والے ناموں میں سے ایک یا تمام 964 00:42:36,090 --> 00:42:39,660 ب سے شروع ہونے والے نام، ہم اب بھی کر سکتے ہیں مسلسل وقت کے اندراج کے حصول کے. 965 00:42:39,660 --> 00:42:43,900 اب ایلس یا باب یا کسی نام کو دیکھ زیادہ عام طور پر اب بھی کیا ہے؟ 966 00:42:43,900 --> 00:42:48,100 اس میں 26 سے تقسیم (ن) کے بڑے اے، ہے سب یکساں ہے جہاں مثالی کیس 967 00:42:48,100 --> 00:42:51,190 تقسیم کیا، کے طور پر کئی ایک کی ہے جہاں Z کی، شاید ہے جو موجود ہیں کے طور پر 968 00:42:51,190 --> 00:42:52,220 غیر حقیقی. 969 00:42:52,220 --> 00:42:53,880 لیکن یہ اب بھی لکیری ہے. 970 00:42:53,880 --> 00:42:57,120 >> لیکن یہاں، ہم نقطہ پر واپس آنا ہونے asymptotic سنکیتن کے 971 00:42:57,120 --> 00:42:58,600 نظریاتی طور پر سچ ہے. 972 00:42:58,600 --> 00:43:02,960 لیکن حقیقی دنیا میں، اگر میں نے کا دعوی ہے کہ میرا پروگرام 26 بار کچھ کر سکتے ہیں 973 00:43:02,960 --> 00:43:06,210 جن کے پروگرام تمہارا ہے، کے مقابلے میں زیادہ تیزی سے آپ کو ترجیح دیتے ہیں کا استعمال کرتے ہوئے جا رہے ہیں؟ 974 00:43:06,210 --> 00:43:09,660 تمہارا یا میرا، جس 26 گنا تیزی ہے؟ 975 00:43:09,660 --> 00:43:14,320 حقیقت پسندانہ، جس شخص 26 ہے گنا تیزی، یہاں تک کہ نظریاتی طور پر تو 976 00:43:14,320 --> 00:43:18,790 ہمارے الگورتھم اسی میں چلانے کے وقت چل رہا asymptotic. 977 00:43:18,790 --> 00:43:20,940 >> مجھے ایک مختلف تجویز کرتے ہیں مکمل طور پر حل. 978 00:43:20,940 --> 00:43:24,380 اور یہ آپ کے دماغ اڑا نہ ہو، ہم نے اعداد و شمار کے ڈھانچے سے باہر ہیں. 979 00:43:24,380 --> 00:43:27,420 تو یہ ہے کہ یہ ایک trie ہے - 980 00:43:27,420 --> 00:43:28,520 ایک پاگل کے نام کی طرح. 981 00:43:28,520 --> 00:43:32,880 یہ لفظ retrievals سے آتا ہے، اور کی وجہ سے trie، T-R-I-E، ہجے ہے 982 00:43:32,880 --> 00:43:34,450 کورس حاصل trie جیسا لگتا ہے. 983 00:43:34,450 --> 00:43:36,580 لیکن اس کی تاریخ ہے لفظ trie کی. 984 00:43:36,580 --> 00:43:40,980 >> تو ایک trie، یقینا درخت کے کچھ قسم ہے اور یہ بھی کہ لفظ پر ایک ڈرامہ ہے. 985 00:43:40,980 --> 00:43:46,330 اور تم بالکل یہ نہیں دیکھ سکتے ہیں اگرچہ اس تصور کے ساتھ ایک trie ہے 986 00:43:46,330 --> 00:43:50,790 درخت کے ساتھ ایک خاندان کے درخت کی طرح کا ڈھانچہ سب سے اوپر اور بہت کم ایک پرکھا 987 00:43:50,790 --> 00:43:54,530 پوتے اور عظیم پوتے کے کے طور پر نچلے حصے پر چھوڑ دیتا ہے. 988 00:43:54,530 --> 00:43:58,100 لیکن ایک trie میں ہر نوڈ ایک سرنی ہے. 989 00:43:58,100 --> 00:44:00,680 اور یہ ایک سرنی میں ہے - اور لشکر طیبہ کی ایک لمحے کے لئے oversimplify - یہ ہے ایک 990 00:44:00,680 --> 00:44:04,600 سرنی، اس معاملے میں، سائز 26، جہاں ہر نوڈ دوبارہ سائز کی ایک سرنی ہے 991 00:44:04,600 --> 00:44:09,000 26، جہاں اس میں zeroth عنصر سرنی ایک کی نمائندگی کرتا ہے، اور آخری 992 00:44:09,000 --> 00:44:11,810 ہر ایسے میں عنصر سرنی زیڈ کی نمائندگی کرتا ہے 993 00:44:11,810 --> 00:44:15,520 >> تو میں نے، پھر، کی تجویز ہے کہ اس کے اعداد و شمار ایک trie طور پر جانا جاتا ساخت،، ہو سکتا ہے 994 00:44:15,520 --> 00:44:17,600 الفاظ ذخیرہ کرنے کے لئے بھی استعمال کیا. 995 00:44:17,600 --> 00:44:21,740 ہم کو محفوظ کر سکتے ہیں کہ کس طرح ایک لمحے پہلے دیکھا الفاظ، یا اس کیس کے ناموں میں، اور ہم 996 00:44:21,740 --> 00:44:25,440 ، ہم نمبرز محفوظ کر سکتے ہیں کہ کس طرح پہلے دیکھا لیکن ہم نام یا تار پر توجہ مرکوز اگر 997 00:44:25,440 --> 00:44:27,460 یہاں، دلچسپ ہے کیا محسوس. 998 00:44:27,460 --> 00:44:32,210 میں نام Maxwell ہے کا دعوی ہے کہ اس اعداد و شمار کے ڈھانچے کے اندر. 999 00:44:32,210 --> 00:44:33,730 تم کہاں میکسویل دیکھتے ہیں؟ 1000 00:44:33,730 --> 00:44:35,140 >> طالب: [اشراوی]. 1001 00:44:35,140 --> 00:44:36,240 >> اسپیکر 1: بائیں طرف. 1002 00:44:36,240 --> 00:44:39,910 تو اس کے اعداد و شمار کے ساتھ دلچسپ کیا ہے ساخت بلکہ سٹور سے زیادہ ہے 1003 00:44:39,910 --> 00:44:46,200 سٹرنگ M-A-X-W-E-L-L الٹا سلیش صفر، تمام contiguously، آپ اس کے بجائے کیا کریں 1004 00:44:46,200 --> 00:44:46,890 عمل پیرا ہے. 1005 00:44:46,890 --> 00:44:50,510 اس ڈیٹا کی ساخت کی طرح ایک trie ہے تو، جن کی گانٹھوں میں سے ہر ایک، ایک بار پھر ایک سرنی ہے 1006 00:44:50,510 --> 00:44:54,650 اور آپ میکسویل ذخیرہ کرنے کے لئے چاہتے ہیں، آپ کو پہلے انڈیکس اور اتنی اتنی جڑ کی نوڈ، 1007 00:44:54,650 --> 00:44:57,810 ،، اولین نوڈ بات کرنے کے لئے ٹھیک ہے، تو محل ایم میں 1008 00:44:57,810 --> 00:44:59,160 تقریبا وسط میں. 1009 00:44:59,160 --> 00:45:03,740 اور پھر وہاں سے، آپ کو ایک کی پیروی ایک بچے کی گانٹھوں پر پوائنٹر، تو بات کرنے کے لئے. 1010 00:45:03,740 --> 00:45:06,150 لہذا خاندان کے درخت کے معنوں میں، آپ نیچے کی طرف اس پر عمل. 1011 00:45:06,150 --> 00:45:09,030 اور یہ کہ ایک اور نوڈ کرنے کے لئے آپ کی قیادت ہے جو وہاں بائیں، پر 1012 00:45:09,030 --> 00:45:10,540 صرف ایک سرنی. 1013 00:45:10,540 --> 00:45:14,710 >> اور پھر آپ، میکسویل محفوظ کرنا چاہتے ہیں تو آپ کی نمائندگی کرتا ہے کہ پوائنٹر تلاش 1014 00:45:14,710 --> 00:45:16,430 ایک، جو یہاں اس سے ایک ہے. 1015 00:45:16,430 --> 00:45:17,840 تو پھر تم اگلے نوڈ کے پاس جاؤ. 1016 00:45:17,840 --> 00:45:20,100 اور نوٹس - یہی وجہ ہے تصویر کی تھوڑا دھوکہ - 1017 00:45:20,100 --> 00:45:21,990 یہ نوڈ چھوٹے سپر نظر آتے ہیں. 1018 00:45:21,990 --> 00:45:26,050 لیکن اس کے دائیں جانب Y اور Z. ہے یہ صرف مصنف چھوٹا ہے ہے 1019 00:45:26,050 --> 00:45:27,630 تصویر تاکہ آپ اصل میں چیزوں کو دیکھتے ہیں. 1020 00:45:27,630 --> 00:45:30,400 ورنہ اس تصویر انتہائی وسیع ہو جائے گا. 1021 00:45:30,400 --> 00:45:36,180 پھر محل وقوع ایکس میں تو اب تم انڈیکس، اس کے بعد پھر W، پھر ای، ایل، ایل کیا ہے 1022 00:45:36,180 --> 00:45:37,380 یہ تجسس؟ 1023 00:45:37,380 --> 00:45:41,250 >> ٹھیک ہے، ہم نئے اس طرح استعمال کر رہے ہیں تو ایک میں ایک سٹرنگ ذخیرہ کرنے کے لئے کس طرح لے 1024 00:45:41,250 --> 00:45:44,500 آنکڑا ڈھانچہ، آپ کو اب بھی کرنے کی ضرورت ہے بنیادی طور پر اعداد و شمار میں سے باہر کی جانچ پڑتال 1025 00:45:44,500 --> 00:45:47,250 ایک لفظ یہاں ختم ہو جاتی ہے کہ ڈھانچہ. 1026 00:45:47,250 --> 00:45:50,830 دوسرے الفاظ، یہ نوڈ سے ہر ایک میں کسی نہ کسی طرح یاد ہے کہ ہم 1027 00:45:50,830 --> 00:45:53,500 اصل میں کے بعد ان کے اشارہ کے تمام اور تھوڑا جا رہے ہیں 1028 00:45:53,500 --> 00:45:58,370 یہ یہاں کے نیچے دیے گئے روٹی crumb M-A-X-W-E-ایل ایل اس بات کی نشاندہی کرنے کے لئے ڈھانچہ ہے 1029 00:45:58,370 --> 00:46:00,230 بے شک اس اعداد و شمار کے ڈھانچے میں. 1030 00:46:00,230 --> 00:46:02,040 >> تو ہم نے مندرجہ ذیل کے طور پر یہ کر سکتے ہیں. 1031 00:46:02,040 --> 00:46:06,810 ہم صرف تصویر میں نوڈس میں سے ہر ایک ص ایک، سائز 27 کے ایک سرنی ہے. 1032 00:46:06,810 --> 00:46:10,550 P میں، چھ سیٹ کی وجہ سے اور یہ، اب 27 ہے ہم اصل میں، اگر آپ کو ایک apostrophe دیں گے 1033 00:46:10,550 --> 00:46:13,590 تاکہ ہم O'Reilly جیسے ناموں کر سکتے ہیں apostrophes کے ساتھ اور دیگر. 1034 00:46:13,590 --> 00:46:14,820 لیکن ایک ہی خیال ہے. 1035 00:46:14,820 --> 00:46:17,710 میں ان عناصر میں سے ہر ایک ایک struct پر سرنی پوائنٹس 1036 00:46:17,710 --> 00:46:19,320 نوڈ، تو صرف ایک نوڈ. 1037 00:46:19,320 --> 00:46:21,430 تو یہ بہت یاد تازہ ہے ہمارے منسلک فہرست میں. 1038 00:46:21,430 --> 00:46:24,550 >> اور پھر میں ایک بولین ہے، جو میں کروں گا لفظ کہتے ہیں، جس میں صرف ہونے جا رہا ہے 1039 00:46:24,550 --> 00:46:29,120 ایک لفظ بھی اس میں ختم ہو جاتی ہے سچ تو درخت میں نوڈ. 1040 00:46:29,120 --> 00:46:32,870 یہ مؤثر طریقے سے بہت کم کی نمائندگی کرتا ہے مثلث ہم ایک لمحے پہلے دیکھا. 1041 00:46:32,870 --> 00:46:37,190 ایک لفظ میں اس نوڈ پر ختم ہو جاتی ہے اگر ایسا ہے تو درخت، کہ لفظ میدان، سچ ہو جائے گا 1042 00:46:37,190 --> 00:46:41,990 جس conceptually بند کی جانچ پڑتال، یا ہے جی ہاں ہم وہاں، اس مثلث ڈرائنگ کر رہے ہیں 1043 00:46:41,990 --> 00:46:44,080 یہاں ایک لفظ ہے. 1044 00:46:44,080 --> 00:46:45,120 >> تو یہ ایک trie ہے. 1045 00:46:45,120 --> 00:46:48,540 اور اب سوال یہ ہے کہ: اس وقت چل رہا ہے؟ 1046 00:46:48,540 --> 00:46:49,930 یہ (ن) کے بڑے اے ہے؟ 1047 00:46:49,930 --> 00:46:51,410 یہ کچھ اور ہے؟ 1048 00:46:51,410 --> 00:46:57,330 ٹھیک ہے، اگر آپ کو یہ اعداد و شمار میں ناموں کو ن ہے تو ساخت، میکسویل کا صرف ایک کیا جا رہا ہے 1049 00:46:57,330 --> 00:47:02,330 ان کی رننگ ٹائم کیا ہے ڈالنے یا میکسویل کی تلاش؟ 1050 00:47:02,330 --> 00:47:06,230 1051 00:47:06,230 --> 00:47:09,050 رننگ ٹائم کیا ہے میکسویل ڈالنے کے؟ 1052 00:47:09,050 --> 00:47:11,740 (ن) کے دیگر نام ہے تو پہلے سے جدول میں؟ 1053 00:47:11,740 --> 00:47:12,507 جی ہاں؟ 1054 00:47:12,507 --> 00:47:15,429 >> طالب: [اشراوی]. 1055 00:47:15,429 --> 00:47:17,550 >> اسپیکر 1: جی ہاں، اس کی لمبائی ہے نام کا، ہے نا؟ 1056 00:47:17,550 --> 00:47:24,420 ایم کے ایک X-W-ای L-L تو اس کو اس طرح محسوس کرتا ہے تو الگورتھم سات کے بڑے اے ہے. 1057 00:47:24,420 --> 00:47:26,580 اب، کورس کے، نام لمبائی میں فرق ہوگا. 1058 00:47:26,580 --> 00:47:27,380 شاید یہ ایک مختصر نام ہے. 1059 00:47:27,380 --> 00:47:28,600 شاید یہ ایک طویل نام ہے. 1060 00:47:28,600 --> 00:47:33,390 لیکن یہاں اہم ہے یہ ہے کہ یہ ایک مسلسل نمبر ہے. 1061 00:47:33,390 --> 00:47:36,810 اور شاید یہ سچ مسلسل نہیں ہے لیکن خدا، حقیقت پسندانہ، اگر ایک میں 1062 00:47:36,810 --> 00:47:41,570 ڈکشنری، کچھ حد شاید ہے ایک کے حروف کی تعداد 1063 00:47:41,570 --> 00:47:43,820 کسی خاص ملک میں اس شخص کے نام. 1064 00:47:43,820 --> 00:47:46,940 >> اور اس طرح ہم یہ فرض کر سکتے ہیں قیمت مسلسل جاری ہے. 1065 00:47:46,940 --> 00:47:47,750 میں نے یہ کیا ہے نہیں جانتے. 1066 00:47:47,750 --> 00:47:50,440 شاید یہ سے بڑا ہے ہم نے اسے ہے. 1067 00:47:50,440 --> 00:47:52,720 کسی کونے ہمیشہ وہاں ہے کیونکہ ایک پاگل طویل نام کے ساتھ کیس. 1068 00:47:52,720 --> 00:47:56,360 تو اس K فون کرنے دو، لیکن یہ اب بھی ایک ہے مسلسل شاید، کیونکہ ہر 1069 00:47:56,360 --> 00:48:00,190 کم از کم ایک میں، پوری دنیا میں نام خاص طور پر ملک، اس کی لمبائی یا ہے 1070 00:48:00,190 --> 00:48:01,780 چھوٹا ہے، تو یہ دائم ہے. 1071 00:48:01,780 --> 00:48:04,490 لیکن ہم نے کہا ہے جب کچھ بڑا ہے ایک مسلسل قدر اے، کیا ہے کہ 1072 00:48:04,490 --> 00:48:07,760 واقعی برابر؟ 1073 00:48:07,760 --> 00:48:10,420 یہ واقعی ایک ہی بات ہے مسلسل وقت کہہ کے طور پر. 1074 00:48:10,420 --> 00:48:11,530 >> اب ہم، دھوکہ دہی کی طرح ہو نا؟ 1075 00:48:11,530 --> 00:48:15,340 ہم نے کچھ اصول مثبت انداز سے اچھے ہو یہاں ٹھیک ہے، کشمیر کا حکم ہے یہ کہنا 1076 00:48:15,340 --> 00:48:17,450 واقعی صرف ایک کا حکم اور یہ مسلسل وقت ہے. 1077 00:48:17,450 --> 00:48:18,200 لیکن یہ واقعی ہے. 1078 00:48:18,200 --> 00:48:22,550 یہاں اہم بصیرت ہے کیونکہ کہ ہم نے اس میں پہلے ہی کے نام (ن) ہے تو 1079 00:48:22,550 --> 00:48:26,010 آنکڑا ڈھانچہ، اور ہم ڈالیں میکسویل، یہ ہمیں لے جاتا ہے وقت کی رقم ہے 1080 00:48:26,010 --> 00:48:29,530 تمام متاثرہ میکسویل میں داخل کس طرح بہت سے دوسرے لوگوں کی طرف سے 1081 00:48:29,530 --> 00:48:31,100 اعداد و شمار کے ڈھانچے میں ہیں؟ 1082 00:48:31,100 --> 00:48:31,670 لگتے ہو نہیں کرتا. 1083 00:48:31,670 --> 00:48:36,280 میں نے اس پر ایک ارب سے زیادہ عناصر ہوتا تو پھر trie، اور، ہے میکسویل داخل 1084 00:48:36,280 --> 00:48:38,650 وہ بالکل متاثر؟ 1085 00:48:38,650 --> 00:48:39,050 نمبر 1086 00:48:39,050 --> 00:48:42,950 اور اس دن کے اعداد و شمار کے کسی بھی برعکس ہے ہم، جہاں ابھی تک دیکھا ہے ڈھانچے 1087 00:48:42,950 --> 00:48:46,820 اپنے الگورتھم کے چلانے کا وقت ہے کتنا کے مکمل طور پر آزاد 1088 00:48:46,820 --> 00:48:51,430 سامان ہے یا پہلے سے ہی نہیں ہے کہ اعداد و شمار کے ڈھانچے میں. 1089 00:48:51,430 --> 00:48:54,650 >> یہ affords کے ساتھ اور اس لئے تم اب ایک ہے P سیٹ چھ، کا موقع ہے جس گے 1090 00:48:54,650 --> 00:48:58,310 ایک بار پھر آپ کا اپنا عمل درآمد شامل 150،000 میں پڑھنے سپیل چیکر، 1091 00:48:58,310 --> 00:49:01,050 الفاظ، کس طرح سب سے بہتر ہے کہ ذخیرہ کرنے کے لئے لازمی طور پر واضح نہیں ہے. 1092 00:49:01,050 --> 00:49:04,030 اور میں تلاش کرنے کے لئے aspired ہے اگرچہ مقدس grail، مجھے نہیں پتہ 1093 00:49:04,030 --> 00:49:05,330 ایک trie ہے جو دعوی کرتے ہیں. 1094 00:49:05,330 --> 00:49:09,810 اصل میں، ایک ہیش میز بہت اچھی طرح سے کر سکتے ہیں بہت زیادہ موثر ثابت ہو. 1095 00:49:09,810 --> 00:49:10,830 لیکن ان لوگوں کو صرف کر رہے ہیں - 1096 00:49:10,830 --> 00:49:14,620 یہ صرف ڈیزائن کے فیصلوں میں سے ایک ہے آپ کو کرنا پڑے گا. 1097 00:49:14,620 --> 00:49:18,920 >> لیکن بند میں لے جانے کی 50 یا تو کھنگالیں جھوٹ کیا میں ایک جھانکنا لے جانے کے لئے 1098 00:49:18,920 --> 00:49:22,190 آگے ہفتے کے اگلے اور ہم منتقلی سے پرے یہ کمانڈ لائن سے 1099 00:49:22,190 --> 00:49:26,220 چیزوں کو ویب پر دنیا سی کے پروگراموں تو مبنی ہے اور پی ایچ پی کی طرح زبانوں اور 1100 00:49:26,220 --> 00:49:30,350 جاوا اسکرپٹ اور انٹرنیٹ کے خود کو، آپ نے جس طرح HTTP پروٹوکول، 1101 00:49:30,350 --> 00:49:32,870 سال کے لئے حاصل کی جاچکی کے لئے لے لیا ہر سب سے زیادہ اب، اور ٹائپ 1102 00:49:32,870 --> 00:49:34,440 دن، شاید، یا دیکھا. 1103 00:49:34,440 --> 00:49:37,420 اور ہم چھیل واپس کرنے کے لئے شروع کریں گے کیا تہوں انٹرنیٹ ہے. 1104 00:49:37,420 --> 00:49:40,650 اور کوڈ کیا ہے underlies آج کے اوزار. 1105 00:49:40,650 --> 00:49:43,230 یہاں اس چھیڑ کے تو 50 سیکنڈ. 1106 00:49:43,230 --> 00:49:46,570 میں آپ کے نیٹ کے یودقاوں دے. 1107 00:49:46,570 --> 00:49:51,370 >> [ویڈیو پلے بیک] 1108 00:49:51,370 --> 00:49:56,764 >> -انہوں نے ایک پیغام کے ساتھ آئے تھے. 1109 00:49:56,764 --> 00:50:00,687 ایک پروٹوکول سب ان کے اپنے ہی کے ساتھ. 1110 00:50:00,687 --> 00:50:13,370 1111 00:50:13,370 --> 00:50:19,780 انہوں نے کہا کہ ظالمانہ فائر والز کی دنیا میں آئے لاپرواہ راوٹرز، اور خطرات سے دور 1112 00:50:19,780 --> 00:50:22,600 موت سے بھی بدتر. 1113 00:50:22,600 --> 00:50:23,590 انہوں نے کہا کہ تیز ہے. 1114 00:50:23,590 --> 00:50:25,300 انہوں نے کہا کہ مضبوط ہے. 1115 00:50:25,300 --> 00:50:27,700 انہوں نے کہا کہ TCPIP ہے. 1116 00:50:27,700 --> 00:50:30,420 اور اس نے آپ کا پتہ ہے. 1117 00:50:30,420 --> 00:50:32,920 1118 00:50:32,920 --> 00:50:34,590 نیٹ کے یودقاوں. 1119 00:50:34,590 --> 00:50:35,290 >> [END ویڈیو پلے بیک] 1120 00:50:35,290 --> 00:50:38,070 >> اسپیکر 1: ہے کہ کس طرح انٹرنیٹ اگلے ہفتے کے طور پر کام کرے گا. 1121 00:50:38,070 --> 00:50:40,406