1 00:00:00,000 --> 00:00:03,423 >> [موسیقی بجانے] 2 00:00:03,423 --> 00:00:05,380 3 00:00:05,380 --> 00:00:08,210 >> ANDI پینگ: سیکشن کے ہفتے 6 میں خوش آمدید. 4 00:00:08,210 --> 00:00:11,620 ہم اپنے معیار سے انحراف منگل کے سیکشن وقت 5 00:00:11,620 --> 00:00:14,130 اس خوبصورت اتوار کی صبح کے لئے دوپہر. 6 00:00:14,130 --> 00:00:17,330 سب کے لئے آپ کا شکریہ کہ ، آج، لیکن سنجیدگی سے مجھ میں شمولیت اختیار 7 00:00:17,330 --> 00:00:18,170 تعریف کی ایک گول. 8 00:00:18,170 --> 00:00:20,600 >> یہ ایک بہت بڑی کوشش ہے. 9 00:00:20,600 --> 00:00:23,600 میں نے تقریبا یہاں تک کہ یہ نہیں کیا وقت میں، لیکن یہ ٹھیک تھا. 10 00:00:23,600 --> 00:00:27,520 تو میں آپ کے اس سب جانتے ہیں صرف کوئز پر کر دیا ہے. 11 00:00:27,520 --> 00:00:30,370 سب سے پہلے، کرنے کے لئے کا خیر مقدم اس کا دوسرا پہلو. 12 00:00:30,370 --> 00:00:32,917 >> دوسری بات، ہم اس کے بارے میں بات کریں گے. 13 00:00:32,917 --> 00:00:34,000 ہم کوئز کے بارے میں بات کریں گے. 14 00:00:34,000 --> 00:00:35,700 ہم کے بارے میں بات کریں گے آپ کو کلاس میں کر رہے ہیں. 15 00:00:35,700 --> 00:00:36,550 تم ٹھیک ہو جائے گا. 16 00:00:36,550 --> 00:00:39,080 میں نے آپ کے quizzes ہے کے لئے ہے یہاں سے آخر میں آپ کو، 17 00:00:39,080 --> 00:00:42,120 تو تم لوگ لینے کے لئے چاہتے ہیں تو ایک، یہ مکمل طور پر ٹھیک نظر. 18 00:00:42,120 --> 00:00:46,590 >> تو فوری طور پر ہم، شروع کرنے سے پہلے مندرجہ ذیل کے طور پر آج کے لئے ایجنڈا ہے. 19 00:00:46,590 --> 00:00:48,430 آپ دیکھ سکتے ہیں کے طور پر، ہم ہیں بنیادی طور پر تیزی سے فائرنگ 20 00:00:48,430 --> 00:00:52,120 ڈیٹا ڈھانچے کی ایک پوری چڑھانے کے ذریعے واقعی، واقعی، واقعی بہت تیزی سے. 21 00:00:52,120 --> 00:00:54,380 اس طرح کے طور پر تو، یہ نہیں ہو گا سپر انٹرایکٹو آج. 22 00:00:54,380 --> 00:00:59,620 یہ صرف مجھے قسم کی چللا جائے گا چیزیں جو آپ کو، اور میں آپ کو الجھانے تو، 23 00:00:59,620 --> 00:01:02,680 میں بھی تیزی سے جا رہی ہوں تو، مجھے بتائیں. 24 00:01:02,680 --> 00:01:05,200 وہ صرف مختلف اعداد و شمار ہیں ڈھانچے، اور حصہ کے طور پر 25 00:01:05,200 --> 00:01:07,070 اس کے لئے آپ pset کے آئندہ ہفتے، تمہیں 26 00:01:07,070 --> 00:01:10,340 ان میں سے ایک کو لاگو کرنے کو کہا جائے، شاید دو ان میں سے دو کے غار 27 00:01:10,340 --> 00:01:12,319 آپ pset میں. 28 00:01:12,319 --> 00:01:14,610 ٹھیک ہے، تو میں صرف کرنے جا رہا ہوں کچھ اعلانات کے ساتھ شروع. 29 00:01:14,610 --> 00:01:19,070 ہم پوٹ اور میں زیادہ سے زیادہ قطار جائیں گے ہم کوئز پہلے کیا ہے کے مقابلے میں گہرائی. 30 00:01:19,070 --> 00:01:20,990 ہم سے زیادہ جانا منسلک ہوں ، ایک بار پھر، ایک بار پھر فہرست 31 00:01:20,990 --> 00:01:23,899 سے گہرائی میں مزید کیا ہم کوئز سے پہلے تھا. 32 00:01:23,899 --> 00:01:26,440 اور پھر ہم ہیش کے بارے میں بات کریں گے میزیں، درختوں اور کوشش کرتا ہے، جس 33 00:01:26,440 --> 00:01:28,890 تمام pset کے لئے بہت ضروری ہیں. 34 00:01:28,890 --> 00:01:32,925 اور پھر ہم نے کچھ چلے جائیں گے pset5 کے لئے مددگار تجاویز. 35 00:01:32,925 --> 00:01:37,360 >> ٹھیک ہے، تو کوئز 0. 36 00:01:37,360 --> 00:01:41,090 اوسط 58 فی صد تھی. 37 00:01:41,090 --> 00:01:45,370 یہ بہت کم تھی، اور تاکہ تم لوگ مطابق میں بہت، بہت اچھی طرح سے کیا 38 00:01:45,370 --> 00:01:46,510 اس کے ساتھ. 39 00:01:46,510 --> 00:01:49,970 >> تم تو بہت زیادہ، انگوٹھے کی حکمرانی ہے مطلب کا ایک معیاری انحراف کے اندر اندر 40 00:01:49,970 --> 00:01:52,990 ہم نے ایک کم میں ہیں خاص طور پر کے بعد سے آرام سیکشن، آپ مکمل طور پر ٹھیک ہو. 41 00:01:52,990 --> 00:01:54,120 آپ کو ٹریک پر ہیں. 42 00:01:54,120 --> 00:01:55,190 زندگی اچھی ہے. 43 00:01:55,190 --> 00:01:58,952 >> مجھے یہ لگتا ہے کہ ڈراونا ہے جانتے ہیں میں نے اس کوئز پر 40 فی صد کی طرح ہے. 44 00:01:58,952 --> 00:02:00,160 میں اس کلاس میں ناکام کرنے کے لئے جا رہا ہوں. 45 00:02:00,160 --> 00:02:02,243 میں وعدہ کرتا ہوں، تم نہیں ہو کلاس میں ناکام رہتے ہیں کے لئے جا رہا. 46 00:02:02,243 --> 00:02:03,680 تم بالکل ٹھیک ہو. 47 00:02:03,680 --> 00:02:06,850 >> ختم ہو گیا جو تم میں سے ان لوگوں کے لئے مطلب، شاندار، شاندار، 48 00:02:06,850 --> 00:02:08,780 کی طرح، سنجیدگی سے اچھی طرح سے کیا. 49 00:02:08,780 --> 00:02:09,689 میرے ساتھ ان کے پاس. 50 00:02:09,689 --> 00:02:11,730 انہیں حاصل کرنے کے لئے آنے کے لئے آزاد محسوس کرتے ہیں سیکشن کے آخر میں. 51 00:02:11,730 --> 00:02:14,520 آپ کو کسی بھی ہے تو مجھے بتائیں مسائل، ان کے ساتھ سوالات. 52 00:02:14,520 --> 00:02:17,204 ہم آپ کا سکور کا اضافہ اگر غلط، ہمیں بتائیں. 53 00:02:17,204 --> 00:02:21,240 >> ٹھیک ہے، pset5 تو، یہ ایک بہت ہے معنوں میں ییل کے لئے عجیب ہفتے 54 00:02:21,240 --> 00:02:24,240 ہمارے pset کے وجہ سے ہے کہ سمیت دوپہر میں بدھ 55 00:02:24,240 --> 00:02:27,317 دیر سے دن، تو یہ اصل میں ہے دوپہر میں منگل نظریاتی وجہ سے. 56 00:02:27,317 --> 00:02:29,150 شاید کوئی نہیں ختم ہو گیا دوپہر میں منگل. 57 00:02:29,150 --> 00:02:30,830 کہ مکمل طور پر ٹھیک ہے. 58 00:02:30,830 --> 00:02:33,700 ہم دفتر کے اوقات کے لئے جا رہے ہیں آج رات کے طور پر اچھی طرح سے کے طور پر پیر کی رات. 59 00:02:33,700 --> 00:02:36,810 اور حصوں کے تمام اس ہفتے گے اصل میں ورکشاپوں میں تبدیل کر دیا جائے، 60 00:02:36,810 --> 00:02:38,800 اس میں پاپ کرنے کے لئے آزاد محسوس کرتے ہیں آپ چاہتے ہیں کسی بھی حصے، 61 00:02:38,800 --> 00:02:42,810 اور وہ کس قسم کی منی pset کے ہو جائے گا اس پر مدد کے لئے ورکشاپس. 62 00:02:42,810 --> 00:02:45,620 تو اس طرح کے طور پر، یہ صرف سیکشن ہے ہم کہاں مواد سکھا رہے ہیں. 63 00:02:45,620 --> 00:02:49,220 دیگر تمام حصوں پر توجہ مرکوز کی جائے گی خصوصی pset کے لئے مدد پر. 64 00:02:49,220 --> 00:02:50,146 جی ہاں؟ 65 00:02:50,146 --> 00:02:52,000 >> سامعین: کہاں دفتر کے اوقات ہیں؟ 66 00:02:52,000 --> 00:02:56,120 >> ANDI پینگ: دفتری اوقات ، اوہ اچھا سوال tonight--. 67 00:02:56,120 --> 00:03:00,580 مجھے لگتا ہے کہ دفتری اوقات آج رات نیلگوں ہرا یا دارالعوام میں ہیں. 68 00:03:00,580 --> 00:03:02,984 آپ آن لائن CS50 چیک کریں اور آپ، دفتر کے اوقات پر جائیں 69 00:03:02,984 --> 00:03:05,650 ایک شیڈول ہونا چاہئے کہ ان میں سے سب کہاں ہیں آپ کو بتاتا ہے. 70 00:03:05,650 --> 00:03:07,954 >> میں آج رات یا تو پتہ یا کل چیتی، ہے 71 00:03:07,954 --> 00:03:10,120 اور میں ہم کر سکتے ہیں لگتا ہے اس رات کے لئے العام. 72 00:03:10,120 --> 00:03:11,020 مجھے یقین نہیں ہے. 73 00:03:11,020 --> 00:03:11,700 اچھا سوال. 74 00:03:11,700 --> 00:03:14,430 CS50 پر چیک کریں. 75 00:03:14,430 --> 00:03:18,780 >> کے بارے میں ڈاؤن لوڈ، اتارنا، کوئی سوالات تین دنوں کی طرح اگلے کے لئے شیڈول؟ 76 00:03:18,780 --> 00:03:21,690 میں داؤد کی طرح آپ لوگ وعدہ اس پہاڑی کی سب سے اوپر ہے، نے کہا. 77 00:03:21,690 --> 00:03:23,050 تم لوگ تقریبا وہاں ہو. 78 00:03:23,050 --> 00:03:24,644 صرف تین سے زیادہ دن. 79 00:03:24,644 --> 00:03:26,310 وہاں جاؤ، اور اس کے بعد ہم سب نیچے آ جائے گا. 80 00:03:26,310 --> 00:03:28,114 ہم نے ایک اچھا کاوچ سرفنگ فری وقفے پڑے گا. 81 00:03:28,114 --> 00:03:28,780 ہم واپس آ جائیں گے. 82 00:03:28,780 --> 00:03:30,779 ہم ویب میں کودو گے پروگرامنگ اور ترقی، 83 00:03:30,779 --> 00:03:35,150 بہت مزہ ہے کہ چیزوں مقابلے دیگر psets کے کچھ کرنے کے لئے. 84 00:03:35,150 --> 00:03:37,974 اور یہ سرد ہو، کریں گے اور ہم بہت مزا آتا پڑے گا. 85 00:03:37,974 --> 00:03:38,890 ہم زیادہ کینڈی پڑے گا. 86 00:03:38,890 --> 00:03:39,730 کینڈی کے لئے معذرت. 87 00:03:39,730 --> 00:03:40,945 میں کینڈی بھول. 88 00:03:40,945 --> 00:03:43,310 یہ کسی نہ کسی طرح صبح تھی. 89 00:03:43,310 --> 00:03:46,340 تو تم لوگ، تقریبا وہاں ہو اور میں نے تم لوگوں پر فخر ہوں. 90 00:03:46,340 --> 00:03:49,570 >> ٹھیک ہے، تو پوٹ. 91 00:03:49,570 --> 00:03:53,331 کون جیک کے بارے میں سوال سے محبت اور گئے تمام سوالات پر اپنے کپڑے؟ 92 00:03:53,331 --> 00:03:53,830 کوئی نہیں؟ 93 00:03:53,830 --> 00:03:56,500 ٹھیک ہے، ٹھیک ہے. 94 00:03:56,500 --> 00:04:00,200 >> تو بنیادی طور پر آپ کر سکتے ہیں کے طور پر تصویر جیک، یہاں اس آدمی کو، 95 00:04:00,200 --> 00:04:03,350 کپڑے لینے سے محبت کرتا اسٹیک کے سب سے اوپر کے باہر، 96 00:04:03,350 --> 00:04:05,750 اور وہ پر اسے واپس رکھتا ہے انہوں نے کے بعد اسٹیک کیا ہے. 97 00:04:05,750 --> 00:04:07,600 اس طرح میں، وہ کبھی نہیں ہوتی جا رہی ہے 98 00:04:07,600 --> 00:04:10,090 کے سب سے نیچے اپنے کپڑے میں ڈھیر لگانا. 99 00:04:10,090 --> 00:04:12,600 تو اس قسم کے بیان کرتا ہے بنیادی آنکڑا ڈھانچہ 100 00:04:12,600 --> 00:04:16,610 ایک اسٹیک کے لاگو کیا جاتا ہے کہ کس طرح کا. 101 00:04:16,610 --> 00:04:20,060 >> بنیادی طور پر، ایک کے بارے میں سوچنا اشیاء میں سے کسی اسٹیک کے طور پر اسٹیک 102 00:04:20,060 --> 00:04:24,900 آپ سب سے اوپر پر چیزیں ڈال، اور کہاں اس کے بعد آپ سب سے باہر پاپ. 103 00:04:24,900 --> 00:04:28,600 تو LIFO ہم چاہتے مخفف ہے آخری میں، سب سے پہلے باہر use-- کرنے. 104 00:04:28,600 --> 00:04:32,480 اور اس طرح کے سب سے اوپر میں آخری اسٹیک باہر آتا ہے کہ سب سے پہلے میں سے ایک ہے. 105 00:04:32,480 --> 00:04:34,260 اور اس طرح دو شرائط ہم منسلک کرنے کے لئے پسند 106 00:04:34,260 --> 00:04:36,190 اس کے ساتھ دھکا اور پاپ کہا جاتا ہے. 107 00:04:36,190 --> 00:04:39,790 جب آپ پر کچھ دھکا اسٹیک، اور آپ کو واپس اپ پاپ. 108 00:04:39,790 --> 00:04:43,422 >> اور تو میں اس ایک کی طرح لگتا ہے تم میں سے ان لوگوں کے لئے تجریدی تصور 109 00:04:43,422 --> 00:04:45,630 جو ایک طرح دیکھنا چاہتے ہیں اس کی اصل پر عمل درآمد 110 00:04:45,630 --> 00:04:46,740 حقیقی دنیا میں. 111 00:04:46,740 --> 00:04:50,170 تم میں سے کتنے ایک مضمون لکھا ہے شاید ایک گھنٹے کی طرح اس، کی وجہ سے تھا اس سے پہلے کہ 112 00:04:50,170 --> 00:04:54,510 اور آپ کو اتفاقی طور پر ایک بہت بڑا خارج اتفاقی طور پر کی طرح اس کا حصہ،؟ 113 00:04:54,510 --> 00:04:58,560 اور پھر کیا کنٹرول کرتے ہم اسے واپس ڈال کرنے کے لئے استعمال کرتے ہیں؟ 114 00:04:58,560 --> 00:05:00,030 کنٹرول-Z، جی ہاں؟ 115 00:05:00,030 --> 00:05:03,640 کنٹرول-Z، تاکہ اوقات کی رقم کنٹرول Z میری زندگی کو بچایا ہے، 116 00:05:03,640 --> 00:05:08,820 ، ہر بار میری گدا بچایا ہے کہ ایک اسٹیک کے ذریعے لاگو کیا گیا ہے. 117 00:05:08,820 --> 00:05:13,020 >> بنیادی طور پر تمام معلومات اپنے ورڈ دستاویز پر ہے 118 00:05:13,020 --> 00:05:15,080 اسے دھکیل دیا اور اپنی مرضی سے کھولے ہو جاتا ہے. 119 00:05:15,080 --> 00:05:19,460 اور تو بنیادی طور پر جب بھی آپ کچھ بھی حذف، آپ کو اسے واپس پاپ. 120 00:05:19,460 --> 00:05:22,820 اور پھر آپ پر اسے واپس کی ضرورت ہے تو، آپ کنٹرول C کرتا ہے جو، اسے دھکا. 121 00:05:22,820 --> 00:05:26,770 اور اس طرح حقیقی دنیا تقریب کہ کس طرح سادہ آنکڑا ڈھانچہ 122 00:05:26,770 --> 00:05:28,690 آپ کی روز مرہ کی زندگی کے ساتھ مدد کر سکتے ہیں. 123 00:05:28,690 --> 00:05:31,710 124 00:05:31,710 --> 00:05:40,150 >> تو ایک struct طریقہ ہے ہم اصل میں ایک اسٹیک تشکیل دے. 125 00:05:40,150 --> 00:05:44,720 اس کے بعد ہم struct کی وضاحت ٹائپ کریں، اور ہم اسے نچلے حصے میں اسٹیک کو فون. 126 00:05:44,720 --> 00:05:47,440 اور اسٹیک کے اندر اندر، ہم دو پیرامیٹرز ہے 127 00:05:47,440 --> 00:05:51,580 ، ہم بنیادی طور پر جوڑتوڑ کر سکتے ہیں تو ہم چار ستارہ ڈور کی صلاحیت ہے. 128 00:05:51,580 --> 00:05:55,150 >> کر رہا ہے کہ تمام ایک سرنی پیدا کر رہا ہے 129 00:05:55,150 --> 00:05:58,835 ہم آپ چاہتے ہیں جو کچھ بھی محفوظ کر سکتے ہیں جس میں ہم اس کی صلاحیت کا تعین کر سکتے. 130 00:05:58,835 --> 00:06:01,990 صلاحیت کے زیادہ سے زیادہ رقم ہے اشیاء ہم اس صف میں ڈال کر سکتے ہیں. 131 00:06:01,990 --> 00:06:05,660 INT سائز رکھتا ہے کہ کاؤنٹر ہے کتنے اشیاء کے ٹریک ہیں 132 00:06:05,660 --> 00:06:07,850 اسٹیک میں. 133 00:06:07,850 --> 00:06:11,860 تو ہم نے ایک، کے ٹریک رکھ سکتے ہیں دونوں اصل اسٹیک ہے کس طرح بڑی، 134 00:06:11,860 --> 00:06:14,850 اور، بی، کہ کس طرح اسٹیک کے بہت ہم نہیں چاہتے کیونکہ ہم نے بھر لئے 135 00:06:14,850 --> 00:06:18,800 ہماری صلاحیت ہے کیا اتپرواہ کرنے کے لئے. 136 00:06:18,800 --> 00:06:24,340 >> مثال کے طور پر، اس خوبصورت تو سوال آپ کا کوئز تھا. 137 00:06:24,340 --> 00:06:28,160 بنیادی طور پر ہم کس طرح دھکا کرنا ایک اسٹیک کے سب سے اوپر پر. 138 00:06:28,160 --> 00:06:28,830 بہت آسان. 139 00:06:28,830 --> 00:06:30,621 تم اسے دیکھو تو، ہم اس کے ذریعے چل گے. 140 00:06:30,621 --> 00:06:32,640 [اشراوی] size-- تو جب بھی آپ کو یاد ہے، 141 00:06:32,640 --> 00:06:35,300 کسی بھی رسائی کے لئے چاہتے ہیں ایک struct کے اندر پیرامیٹر، 142 00:06:35,300 --> 00:06:40,320 آپ struct.parameter کے نام کرتے ہیں. 143 00:06:40,320 --> 00:06:42,720 >> اس صورت میں، ے اپنے اسٹیک کے نام. 144 00:06:42,720 --> 00:06:46,230 ہم سائز تک رسائی حاصل کرنا چاہتے ہیں اس کے، تو ہم s.size کرتے. 145 00:06:46,230 --> 00:06:50,280 سائز نہیں ہے تو کے طور پر جب تک صلاحیت یا جب تک کے برابر 146 00:06:50,280 --> 00:06:52,940 یہ صلاحیت سے بھی کم ہے کے طور پر، تو یہاں کام کریں گے. 147 00:06:52,940 --> 00:06:57,180 >> تم اندر تک رسائی حاصل کرنا چاہتے ہیں اپنے اسٹیک کے، s.strings تو، 148 00:06:57,180 --> 00:07:00,790 اور تم اس نیا نمبر ڈال کرنے کے لئے جا رہے ہیں تم وہاں میں داخل کرنا چاہتے ہیں. 149 00:07:00,790 --> 00:07:05,030 صرف ہم چاہتے ہیں کریں گے کا کہنا ہے کہ اسٹیک پر int ن داخل، 150 00:07:05,030 --> 00:07:08,905 ہم s.strings کر سکتے ہیں بریکٹ، s.size N برابر. 151 00:07:08,905 --> 00:07:11,030 سائز کہاں ہے کیونکہ ہم فی الحال اسٹیک میں ہیں 152 00:07:11,030 --> 00:07:14,590 ہم آگے بڑھانے کے لئے جا رہے ہیں اس پر، ہم صرف تک رسائی حاصل 153 00:07:14,590 --> 00:07:17,370 سائز ہے جہاں کہیں بھی، اسٹیک کے موجودہ پرپورنتا، 154 00:07:17,370 --> 00:07:21,729 اور ہم اس پر int ن دھکا. 155 00:07:21,729 --> 00:07:24,770 اور پھر ہم اس بات کو یقینی بنانا چاہتے ہیں ہم بھی (ن) کے سائز incrementing رہے ہیں 156 00:07:24,770 --> 00:07:27,436 ہم نے کی تاکہ ہم ٹریک رکھ سکتے ہیں اسٹیک پر ایک اضافی چیز شامل. 157 00:07:27,436 --> 00:07:29,660 اب ہم زیادہ سائز ہے. 158 00:07:29,660 --> 00:07:33,196 یہ یہاں سے کوئی مطلب ہے سب، کس طرح منطقی طور پر یہ کام کرتا ہے؟ 159 00:07:33,196 --> 00:07:34,160 یہ قسم کی جلدی تھی. 160 00:07:34,160 --> 00:07:39,535 161 00:07:39,535 --> 00:07:42,160 سامعین: آپ پر جا سکتے ہیں s.stringss.strings [s.size] دوبارہ؟ 162 00:07:42,160 --> 00:07:45,808 ANDI پینگ: ضرور، تو کیا کرتا ہے ہمیں اس وقت s.size؟ 163 00:07:45,808 --> 00:07:47,440 سامعین: یہ موجودہ سائز ہے. 164 00:07:47,440 --> 00:07:50,890 ANDI پینگ: بالکل، تو ہمارے سائز پر ہے کہ موجودہ انڈیکس، 165 00:07:50,890 --> 00:07:57,780 اور اسی طرح ہم نئے عددی ڈال کرنا چاہتے ہیں ہم s.size میں داخل کرنا چاہتے ہیں. 166 00:07:57,780 --> 00:07:58,760 اس کا کوئی مطلب ہے؟ 167 00:07:58,760 --> 00:08:01,110 s.strings کیونکہ، کہ تمام ہے سرنی کا نام ہے. 168 00:08:01,110 --> 00:08:03,510 یہ سب تک رسائی حاصل ہے ہماری struct کے اندر صف، 169 00:08:03,510 --> 00:08:06,030 اور اسی طرح ہم کرنا چاہتے ہیں تو کہ انڈیکس میں (ن) کی جگہ، 170 00:08:06,030 --> 00:08:09,651 ہم صرف اس تک رسائی حاصل کر سکتے ہیں استعمال بریکٹ s.size. 171 00:08:09,651 --> 00:08:10,150 ٹھنڈا. 172 00:08:10,150 --> 00:08:13,580 173 00:08:13,580 --> 00:08:18,916 >> ٹھیک ہے، پاپ، میں نے اسے باہر pseudocode کے تم لوگوں کو، لیکن اسی تصور کے لئے. 174 00:08:18,916 --> 00:08:19,790 اس کا کوئی مطلب ہے؟ 175 00:08:19,790 --> 00:08:22,310 سائز بڑا ہے پھر صفر، کے مقابلے میں آپ 176 00:08:22,310 --> 00:08:25,350 تم سے کچھ لے جانا چاہتا ہوں جانتے ہیں کہ باہر سائز نہیں ہے کیونکہ اگر 177 00:08:25,350 --> 00:08:27,620 زیادہ صفر، تو آپ اسٹیک میں کچھ بھی نہیں ہے. 178 00:08:27,620 --> 00:08:29,840 >> تو آپ کو صرف پھانسی کرنا چاہتے ہیں اس کوڈ، یہ صرف کر سکتے ہیں 179 00:08:29,840 --> 00:08:32,320 پاپ کرنے وہاں کچھ ہے تو پاپ. 180 00:08:32,320 --> 00:08:35,830 سائز بڑا ہے تو 0 سے، ہم مائنس سائز. 181 00:08:35,830 --> 00:08:40,020 ہم سائز تدریج اور پھر واپس کیونکہ اس کے اندر جو کچھ بھی ہے 182 00:08:40,020 --> 00:08:42,710 پوپ آؤٹ کی طرف سے، ہم چاہتے ہیں محفوظ کیا جاتا ہے جو کچھ بھی رسائی 183 00:08:42,710 --> 00:08:45,694 اسٹیک کے سب سے اوپر کے انڈیکس میں. 184 00:08:45,694 --> 00:08:46,610 سب کچھ احساس بنانے کے؟ 185 00:08:46,610 --> 00:08:49,693 میں نے کر دیا ہے تو آپ لوگ، اس کو لکھنے تم لوگوں کو اس سے باہر لکھنے کے قابل ہو جائے گا؟ 186 00:08:49,693 --> 00:08:52,029 187 00:08:52,029 --> 00:08:53,570 ٹھیک ہے، تم لوگ اس کے ساتھ کے ارد گرد ادا کر سکتے ہیں. 188 00:08:53,570 --> 00:08:55,252 کوئی تشویش نہیں تم نے اسے حاصل نہیں ہے تو. 189 00:08:55,252 --> 00:08:57,460 ہم کوڈ کرنے کے لئے وقت نہیں ہے یہ آج ہم نے کی وجہ سے 190 00:08:57,460 --> 00:08:59,959 ان ڈھانچے کی ایک بہت ہے کے ذریعے جانا، لیکن بنیادی طور پر کرنے کے لئے 191 00:08:59,959 --> 00:09:02,214 pseudocode کے، بہت، بہت ہی اسی طرح آگے بڑھانے کے لئے. 192 00:09:02,214 --> 00:09:03,380 صرف منطق کے ساتھ عمل. 193 00:09:03,380 --> 00:09:06,092 آپ سب تک رسائی حاصل کرنے کر رہے ہیں بات کو یقینی بنائیں درست طریقے سے آپ struct کے خصوصیات. 194 00:09:06,092 --> 00:09:06,574 جی ہاں؟ 195 00:09:06,574 --> 00:09:09,282 >> سامعین: گا ان سلائڈ اور اس پوری چیز آج ish کے ہو؟ 196 00:09:09,282 --> 00:09:11,586 ANDI پینگ: ہمیشہ، جی ہاں. 197 00:09:11,586 --> 00:09:13,710 میں ڈال کرنے کی کوشش کرنے جا رہا ہوں اس کے بعد ایک گھنٹے کی طرح. 198 00:09:13,710 --> 00:09:16,626 میں داؤد کو کرنا ہو گا، ڈیوڈ کی کوشش کریں گے اس کے بعد ایک گھنٹے کی طرح اسے ڈال. 199 00:09:16,626 --> 00:09:20,040 200 00:09:20,040 --> 00:09:25,470 >> ٹھیک ہے، تو ہم اس دوسرے میں منتقل خوبصورت آنکڑا ڈھانچہ ایک قطار بلایا. 201 00:09:25,470 --> 00:09:30,140 تم لوگوں کو یہاں دیکھ سکتے ہیں کے طور پر، ایک قطار، ہمارے درمیان برطانوی، 202 00:09:30,140 --> 00:09:32,010 یہ سب ایک سطر ہے. 203 00:09:32,010 --> 00:09:34,680 کے لئے اتنا برعکس کیا آپ، ایک اسٹیک ہے 204 00:09:34,680 --> 00:09:37,750 ایک قطار بالکل وہی جو ہے منطقی طور پر آپ کو لگتا ہے کہ. 205 00:09:37,750 --> 00:09:41,914 یہ، فیفو کے قوانین کی طرف سے منعقد ہے جس میں سب سے پہلے، سب سے پہلے باہر ہے. 206 00:09:41,914 --> 00:09:43,705 آپ سب سے پہلے ہو تو لائن میں ایک، تم 207 00:09:43,705 --> 00:09:46,230 سب سے پہلے کہ لائن سے باہر آتا ہے. 208 00:09:46,230 --> 00:09:49,680 >> تو ہم نے اس فون کرنے کی پسند dequeueing اور enqueueing ہے. 209 00:09:49,680 --> 00:09:52,380 ہم کچھ شامل کرنا چاہتے ہیں ہمارے قطار میں، ہم ان enqueue. 210 00:09:52,380 --> 00:09:55,690 ہم چاہتے تو dequeue، یا لینے کے لئے کچھ دور، ہم dequeue. 211 00:09:55,690 --> 00:10:03,350 >> ہم اس قسم کی ہیں تاکہ ایک ہی احساس مقررہ سائز عناصر پیدا کرنے کہ ہم 212 00:10:03,350 --> 00:10:06,500 کچھ محفوظ کر سکتے ہیں چیزیں، لیکن ہم یہ بھی کر سکتے ہیں 213 00:10:06,500 --> 00:10:10,100 ہم رکھ رہے ہیں جہاں تبدیل ان کے اندر پیرامیٹرز 214 00:10:10,100 --> 00:10:13,140 کس قسم کی کی بنیاد پر فعالیت ہم چاہتے ہیں. 215 00:10:13,140 --> 00:10:16,700 پوٹ تو، ہم نے گزشتہ مطلوب ایک، (ن) سب سے پہلے باہر ہو. 216 00:10:16,700 --> 00:10:19,800 قطار ہم سب سے پہلے بات یہ ہے چاہتے ہیں میں سب سے پہلی چیز ہونا. 217 00:10:19,800 --> 00:10:22,510 218 00:10:22,510 --> 00:10:26,710 >> struct کے قسم تو آپ دیکھ سکتے ہیں کے طور پر، کی وضاحت، 219 00:10:26,710 --> 00:10:29,470 یہ تھوڑا سا مختلف ہے اسٹیک کیا تھا سے 220 00:10:29,470 --> 00:10:33,120 صرف ہم رکھنے کے لئے ہے نہیں ہے کیونکہ سائز فی الحال ہے جہاں کے ٹریک، 221 00:10:33,120 --> 00:10:37,420 ہم بھی سر کا ٹریک رکھنے کے لئے چاہتے ہیں اس کے ساتھ ساتھ جہاں ہم ہیں. 222 00:10:37,420 --> 00:10:39,580 لہذا میں نے یہ آسان ہے لگتا ہے میں نے اس کو اپنی طرف متوجہ ہے. 223 00:10:39,580 --> 00:10:53,270 تو ہم ایک قطار مل گیا ہے تصور کرتے ہیں، تو سر یہیں ہے کا کہنا ہے کہ. 224 00:10:53,270 --> 00:10:55,811 225 00:10:55,811 --> 00:10:58,310 لائن کے سر، چلو صرف، کہ وہاں اس وقت کا کہنا ہے کہ 226 00:10:58,310 --> 00:11:01,809 اور ہم داخل کرنا چاہتے ہیں قطار میں کچھ. 227 00:11:01,809 --> 00:11:04,350 میں بنیادی طور پر سائز کو فون کرنے جا رہا ہوں پونچھ کے طور پر ایک ہی بات ہے، 228 00:11:04,350 --> 00:11:06,314 آپ کی قطار ہے جہاں کے اختتام. 229 00:11:06,314 --> 00:11:07,730 صرف سائز یہیں ہے کا کہنا ہے کہ. 230 00:11:07,730 --> 00:11:14,380 231 00:11:14,380 --> 00:11:18,400 >> تو کس طرح ایک feasibly کرتا ایک قطار میں کچھ داخل؟ 232 00:11:18,400 --> 00:11:21,000 233 00:11:21,000 --> 00:11:24,130 کیا ہم نے اس جگہ انڈیکس کرنا چاہتے ہیں جہاں ہم میں داخل کرنا چاہتے ہیں. 234 00:11:24,130 --> 00:11:29,320 اس کا آغاز ہے اگر آپ قطار اور اس کا اختتام ہے 235 00:11:29,320 --> 00:11:31,860 یا اس کا سائز، جہاں ہم کرتے ہیں اگلے چیز کو شامل کرنا چاہتے ہیں؟ 236 00:11:31,860 --> 00:11:32,920 >> سامعین: [اشراوی] 237 00:11:32,920 --> 00:11:35,920 ANDI پینگ: بالکل، آپ کو شامل کرنے کے لئے چاہتے ہیں پر منحصر ہے آپ کو یہ لکھا ہے. 238 00:11:35,920 --> 00:11:37,840 یا تو یہ خالی ہے یا یہ کہ خالی ہے. 239 00:11:37,840 --> 00:11:42,630 تو آپ کو شاید یہ شامل کرنا چاہتے ہیں کیونکہ یہاں سائز is-- تو 240 00:11:42,630 --> 00:11:50,540 یہ سب مکمل ہیں، آپ چاہتے ہیں حق، حق اسے یہاں شامل کرنے کے لئے؟ 241 00:11:50,540 --> 00:11:57,150 >> اور تو ہے کہ، بہت، بہت دیر سادہ، کافی نہیں ہمیشہ صحیح 242 00:11:57,150 --> 00:12:00,690 بنیادی فرق کی وجہ سے ایک قطار اور ایک اسٹیک کے درمیان 243 00:12:00,690 --> 00:12:04,350 کہ قطار کر سکتے ہیں ہے اصل میں توڑ کیا جا 244 00:12:04,350 --> 00:12:06,980 تاکہ سر تبدیلیاں جہاں آپ چاہتے ہیں پر منحصر ہے 245 00:12:06,980 --> 00:12:08,650 اپنے کیو کے آغاز شروع کرنے کے لئے. 246 00:12:08,650 --> 00:12:11,900 اور اس کے نتیجے کے طور پر، آپ کی دم بھی تبدیل کرنے کی جا رہی ہے. 247 00:12:11,900 --> 00:12:14,770 اور اس پر ایک نظر ڈالیں اب اس کوڈ. 248 00:12:14,770 --> 00:12:18,620 تم لوگوں کو بھی کہا گیا تھا کے طور پر ان enqueue، گئے تمام سوالات پر لکھنے. 249 00:12:18,620 --> 00:12:22,580 ہو سکتا ہے کہ ہم کیوں کے ذریعے بات کریں گے جواب یہ تھا کیا تھا. 250 00:12:22,580 --> 00:12:26,790 >> میں بالکل، میں سے ایک پر اس لائن فٹ نہیں کر سکتے کوڈ کی لیکن بنیادی طور پر یہ ٹکڑا 251 00:12:26,790 --> 00:12:29,030 ایک لائن پر ہونا چاہئے. 252 00:12:29,030 --> 00:12:30,140 30 سیکنڈ کی طرح خرچ. 253 00:12:30,140 --> 00:12:33,000 ایک نظر ڈالیں، اور کیوں دیکھیں یہ ہے کہ طریقہ ہے. 254 00:12:33,000 --> 00:12:50,030 255 00:12:50,030 --> 00:12:55,420 >> بہت، بہت ہی اسی طرح struct کی، بہت، بہت گزشتہ کے طور پر اسی طرح کی ساخت 256 00:12:55,420 --> 00:12:58,090 شاید کے علاوہ اسٹیک کوڈ کی ایک لائن. 257 00:12:58,090 --> 00:13:01,190 اور کوڈ کی ایک لائن ہے فعالیت کا تعین کرتا ہے. 258 00:13:01,190 --> 00:13:03,900 اور یہ واقعی فرق ایک اسٹیک سے ایک قطار. 259 00:13:03,900 --> 00:13:18,510 260 00:13:18,510 --> 00:13:22,010 >> کوئی بھی ایک کوشش لینے کے لئے چاہتے ہیں آپ نے کیوں کی وضاحت میں 261 00:13:22,010 --> 00:13:24,980 یہاں میں اس پیچیدہ چیز ہے؟ 262 00:13:24,980 --> 00:13:27,845 ہم واپسی کو دیکھنے کے ہماری بہت اچھا دوست معامل. 263 00:13:27,845 --> 00:13:31,020 تم لوگ جلد ہی آئے گا کے طور پر پروگرامنگ میں تسلیم کرنے، 264 00:13:31,020 --> 00:13:34,910 تقریبا کسی بھی وقت آپ کسی چیز کی ضرورت کچھ کے ارد گرد لپیٹ، 265 00:13:34,910 --> 00:13:36,850 معامل ایسا کرنے کا طریقہ ہو جا رہا ہے. 266 00:13:36,850 --> 00:13:40,510 تو یہ جان کر کہ، کسی چاہتا ہے کوڈ کے لائن کی وضاحت کرنے کی کوشش کرنے کے لئے؟ 267 00:13:40,510 --> 00:13:44,060 268 00:13:44,060 --> 00:13:47,507 جی ہاں، تمام جوابات ہیں کو قبول کیا اور میں خوش آمدید. 269 00:13:47,507 --> 00:13:48,840 سامعین: تم مجھ سے بات کر رہے ہیں؟ 270 00:13:48,840 --> 00:13:49,506 ANDI پینگ: جی ہاں. 271 00:13:49,506 --> 00:13:56,200 سامعین: اوہ، کوئی افسوس. 272 00:13:56,200 --> 00:14:00,250 ANDI پینگ: ٹھیک ہے، تو چلو اس کوڈ کے ذریعے چلنے. 273 00:14:00,250 --> 00:14:03,642 تو جب آپ کو کوشش کر رہے ہیں ایک قطار پر کچھ شامل، 274 00:14:03,642 --> 00:14:08,510 سر ہوتا ہے کہ خوبصورت صورت میں یہیں ہونا، یہ ہمارے لئے بہت آسان ہے 275 00:14:08,510 --> 00:14:10,960 صرف آخر پر جانے کے لئے صحیح کچھ، داخل؟ 276 00:14:10,960 --> 00:14:14,690 لیکن ایک قطار کے پورے نقطہ ہے کر سکتے ہیں کہ اصل میں متحرک طور پر سر 277 00:14:14,690 --> 00:14:17,280 جہاں پر منحصر ہے کو تبدیل ہم ہماری ق کا آغاز ہو کرنا چاہتے ہیں، 278 00:14:17,280 --> 00:14:19,880 اور اس طرح، پونچھ کے طور پر بھی تبدیل کرنے کی جا رہی ہے. 279 00:14:19,880 --> 00:14:31,100 >> اور اس طرح یہ نہیں تھا کہ اس کا تصور قطار، بلکہ یہ قطار تھا. 280 00:14:31,100 --> 00:14:37,900 281 00:14:37,900 --> 00:14:39,330 کے سر یہیں ہے کا کہنا ہے کہ. 282 00:14:39,330 --> 00:14:54,900 283 00:14:54,900 --> 00:14:56,980 ہمارے قطار اس طرح دیکھا کا کہنا ہے کہ. 284 00:14:56,980 --> 00:15:00,190 ہم کہاں منتقل کرنے کے لئے چاہتا تھا، تو لائن کے آغاز، ہے 285 00:15:00,190 --> 00:15:03,400 ہم سر منتقل کر دیا کہنے دو اس طرح اور یہاں سائز. 286 00:15:03,400 --> 00:15:07,100 >> اب ہم کچھ اضافہ کرنا چاہتے اس قطار، لیکن تم لوگوں کو دیکھ سکتے ہیں کے طور پر، 287 00:15:07,100 --> 00:15:11,150 یہ صرف کے طور پر اتنا آسان نہیں ہے سائز کے بعد جو کچھ بھی شامل 288 00:15:11,150 --> 00:15:13,630 پھر ہم سے باہر چلانے کی وجہ سے ہماری اصل صف کی حد. 289 00:15:13,630 --> 00:15:16,190 ہم واقعی شامل کرنا چاہتے ہیں جہاں یہاں ہے. 290 00:15:16,190 --> 00:15:18,610 یہ ایک قطار کی خوبصورتی ہے کہ اس کے ضعف، ہمارے لئے ہے 291 00:15:18,610 --> 00:15:22,380 لائن اس طرح ہے جیسے، لگتا ہے لیکن ایک آنکڑا ڈھانچہ میں ذخیرہ جب، 292 00:15:22,380 --> 00:15:29,370 وہ ایک سائیکل کی طرح کے طور پر دے. 293 00:15:29,370 --> 00:15:32,360 یہ قسم کی کے ارد گرد wraps سامنے اسی طرح کرنے کے لئے 294 00:15:32,360 --> 00:15:34,780 ایک لائن بھی لپیٹ کر سکتے ہیں کے ارد گرد جہاں کہیں بھی آپ پر منحصر 295 00:15:34,780 --> 00:15:36,279 بننے کے لئے لائن کے آغاز کرنا چاہتے ہیں. 296 00:15:36,279 --> 00:15:38,630 اور اس طرح ہم نے ایک لے تو یہاں نیچے دیکھو، چلو 297 00:15:38,630 --> 00:15:40,880 ہم ایک تخلیق کرنے کے لئے کرنا چاہتا تھا کا کہنا ہے کہ تقریب ان enqueue بلایا. 298 00:15:40,880 --> 00:15:43,980 ہم نے اس (ق) میں int ن شامل کرنے کے لئے کرنا چاہتا تھا. 299 00:15:43,980 --> 00:15:49,250 q.size ہم ہمارے اعداد و شمار ہے کہ فون کروں گا (ق) تو ہمارے queue.size نہیں ہے تو structure-- 300 00:15:49,250 --> 00:15:52,520 صلاحیت یا تو برابر یہ صلاحیت سے بھی کم ہے 301 00:15:52,520 --> 00:15:55,120 q.strings ہماری ق کے اندر صف ہے. 302 00:15:55,120 --> 00:15:58,380 ہم قائم کرنے کے لئے جا رہے ہیں کہ q.heads کے برابر، 303 00:15:58,380 --> 00:16:02,730 جو یہیں ہے، کے علاوہ q.size صلاحیت، کی طرف سے معامل جس 304 00:16:02,730 --> 00:16:04,290 یہاں ہمیں واپس لپیٹ. 305 00:16:04,290 --> 00:16:08,040 >> اس مثال، انڈیکس میں تو سر کے دائیں، 1 ہے؟ 306 00:16:08,040 --> 00:16:11,480 سائز کے انڈیکس 0، 1، 2، 3، 4 ہے. 307 00:16:11,480 --> 00:16:19,500 تو ہم 1 پلس 4 معامل کر سکتے ہیں 5 جو ہمارے صلاحیت کی طرف سے. 308 00:16:19,500 --> 00:16:20,920 کیا کہ ہمیں دیتا ہے؟ 309 00:16:20,920 --> 00:16:23,270 انڈیکس کیا ہے اس سے باہر آتا ہے؟ 310 00:16:23,270 --> 00:16:24,080 >> سامعین: 0. 311 00:16:24,080 --> 00:16:27,870 >> ANDI پینگ: 0، جس یہیں ہو، 312 00:16:27,870 --> 00:16:30,640 اور ہم قابل بننا چاہتا ہوں یہیں میں داخل کرنے کی. 313 00:16:30,640 --> 00:16:34,730 اور اس طرح یہ مساوات یہاں قسم کے کسی بھی تعداد کے ساتھ کام کرتا ہے 314 00:16:34,730 --> 00:16:36,750 جہاں پر منحصر ہے آپ سر اور آپ کے سائز کے ہیں. 315 00:16:36,750 --> 00:16:38,541 تم کیا لوگ جانتے ہیں چیزیں آپ کو معلوم ہے، ہیں 316 00:16:38,541 --> 00:16:43,170 بالکل آپ داخل کرنا چاہتے ہیں، جہاں جو کچھ بھی آپ کی قطار کے بعد ہے. 317 00:16:43,170 --> 00:16:44,640 کہ سب کو احساس ہے؟ 318 00:16:44,640 --> 00:16:48,560 >> میں ایک دماغ کی طرح جانتے ہیں چھیڑ خاص طور پر کے بعد سے اس 319 00:16:48,560 --> 00:16:50,512 آپ کے کوئز کے بعد میں آیا. 320 00:16:50,512 --> 00:16:52,220 لیکن امید ہے کہ سب اب سمجھ سکتے ہیں 321 00:16:52,220 --> 00:16:57,800 کیوں اس کا حل یا اس تقریب ہے کہ طریقہ ہے. 322 00:16:57,800 --> 00:16:59,840 کوئی بھی تھوڑا سا اس پر واضح؟ 323 00:16:59,840 --> 00:17:03,471 324 00:17:03,471 --> 00:17:03,970 ٹھیک ہے. 325 00:17:03,970 --> 00:17:07,109 326 00:17:07,109 --> 00:17:09,970 >> اور تو اب، اگر آپ ، اس dequeue کرنا چاہتے تھے 327 00:17:09,970 --> 00:17:15,240 ہمارے سر کو منتقل ہو جائے گا جہاں ہے ہم dequeue تھے تو، کیونکہ 328 00:17:15,240 --> 00:17:17,030 ہم ق کے اختتام پر بند نہیں لیتے. 329 00:17:17,030 --> 00:17:19,130 ہم صحیح، سر اتار کرنا چاہتے ہیں؟ 330 00:17:19,130 --> 00:17:24,260 تو نتیجے کے طور پر، سر کو تبدیل کرنے جا رہا ہے، آپ ان enqueue جب یہی وجہ ہے کہ، ہے 331 00:17:24,260 --> 00:17:26,800 آپ کا ٹریک رکھنے کے لئے ہے جہاں آپ کے سر اور آپ کے سائز 332 00:17:26,800 --> 00:17:29,450 داخل کرنے کے قابل ہو رہے ہیں صحیح پوزیشن میں. 333 00:17:29,450 --> 00:17:32,740 >> اور اس لئے تم dequeue جب، میں نے بھی یہ باہر pseudocode کے. 334 00:17:32,740 --> 00:17:35,480 اگر آپ چاہتے ہیں کے لئے بلا جھجھک اس سے باہر کرنے کی کوشش کرنا کوڈنگ. 335 00:17:35,480 --> 00:17:36,980 تم نے صحیح، سر کو منتقل کرنا چاہتے ہیں؟ 336 00:17:36,980 --> 00:17:39,320 میں dequeue کرنا چاہتے تھے تو میں سر پر منتقل کرے گا. 337 00:17:39,320 --> 00:17:40,800 یہ سر ہو جائے گا. 338 00:17:40,800 --> 00:17:45,617 >> اور ہمارے موجودہ سائز گے منہا کریں کیونکہ ہم اب کوئی 339 00:17:45,617 --> 00:17:46,950 صف میں چار عناصر ہیں. 340 00:17:46,950 --> 00:17:51,370 ہم صرف تین ہیں، اور اس کے بعد ہم چاہتے ہیں اندر محفوظ کیا گیا تھا جو واپس کرنے 341 00:17:51,370 --> 00:17:56,260 سر کے ہم اس کو لینے کے لئے چاہتے ہیں کیونکہ اسٹیک کرنے کے لئے بہت اسی طرح کی قیمت باہر. 342 00:17:56,260 --> 00:17:58,010 بس آپ کو لے جا رہے ہیں ایک مختلف جگہ سے، 343 00:17:58,010 --> 00:18:01,770 اور آپ کو آپ پوائنٹر میں reassign کرنا پڑے نتیجے کے طور پر مختلف جگہ پر. 344 00:18:01,770 --> 00:18:03,890 منطقی طور پر، سب کو فالو کریں؟ 345 00:18:03,890 --> 00:18:05,690 عظیم. 346 00:18:05,690 --> 00:18:10,156 >> ٹھیک ہے، تو ہم تھوڑا سا بات کرنے کے لئے جا رہے ہیں منسلک کی فہرست کے بارے میں گہرائی میں زیادہ 347 00:18:10,156 --> 00:18:13,280 وہ بہت، بہت قابل قدر ہو جائے گا، کیونکہ اس ہفتے کے کورس میں آپ کے لئے 348 00:18:13,280 --> 00:18:14,964 کی psets. 349 00:18:14,964 --> 00:18:17,130 لنک کی فہرست کے طور پر تم لوگ وہ سب کے سب ہیں، یاد کر سکتے ہیں 350 00:18:17,130 --> 00:18:22,570 بعض مراکز ہیں کہ نوڈس ہیں ایک قیمت اور پوائنٹر دونوں کی اقدار 351 00:18:22,570 --> 00:18:26,290 ایک دوسرے کے ساتھ جڑے ہوئے ہیں ان اشارہ کی طرف سے. 352 00:18:26,290 --> 00:18:29,880 کس طرح اور تو struct کے ہم یہاں ایک نوڈ ہم ہے پیدا 353 00:18:29,880 --> 00:18:33,569 ہے جس میں، int ن جو بھی ایک سٹور یا سٹرنگ (ن) میں قدر 354 00:18:33,569 --> 00:18:35,610 یا آپ کو جو چاہو چار ستارہ N، یہ کہتے ہیں. 355 00:18:35,610 --> 00:18:41,482 پوائنٹر ہے جو struct نوڈ ستارہ، آپ کو ہر نوڈ میں کرنا چاہتے ہیں کہ، 356 00:18:41,482 --> 00:18:43,690 تم نے اس لئے جا رہے ہیں اگلے کی طرف پوائنٹر نقطہ. 357 00:18:43,690 --> 00:18:48,207 358 00:18:48,207 --> 00:18:50,040 آپ کے سر پڑے گا ہے کہ ایک لنک کی فہرست کے 359 00:18:50,040 --> 00:18:53,140 باقی کی طرف اشارہ کرنے جا رہا تو اور تو آگے اقدار 360 00:18:53,140 --> 00:18:55,290 آپ کو آخر میں آخر تک. 361 00:18:55,290 --> 00:18:58,040 اور یہ آخری نوڈ صرف ہے ایک پوائنٹر نہیں کرنے جا رہے. 362 00:18:58,040 --> 00:18:59,952 اس کی طرف اشارہ کرنے جا رہا ہے شہوت انگیز null، اور یہ کہ جب ہے 363 00:18:59,952 --> 00:19:01,910 آپ مارا ہے جانتے ہیں آپ کے منسلک فہرست کے آخر 364 00:19:01,910 --> 00:19:04,076 ہے جب آپ کی آخری پوائنٹر کچھ کی طرف اشارہ نہیں کرتا. 365 00:19:04,076 --> 00:19:06,670 366 00:19:06,670 --> 00:19:10,990 >> تو ہم زیادہ میں تھوڑا سا جانے کے لئے جا رہے ہیں کے بارے میں گہرائی کے لئے کس طرح ایک ممکنہ طور پر کرے گا 367 00:19:10,990 --> 00:19:12,400 ایک لنک کی فہرست تلاش. 368 00:19:12,400 --> 00:19:15,460 میں سے کچھ کیا ہیں یاد رکھیں لنک کی فہرست کی خرابیوں 369 00:19:15,460 --> 00:19:19,340 تلاش کے حوالے سے ایک سرنی آیات. 370 00:19:19,340 --> 00:19:22,565 ایک صف آپ کر سکتے ہیں بائنری تلاش، لیکن کیوں آپ کو ایک لنک کی فہرست میں ایسا نہیں کر سکتے؟ 371 00:19:22,565 --> 00:19:26,834 372 00:19:26,834 --> 00:19:30,320 >> سامعین: وہ سب سے منسلک کر رہے ہیں کیونکہ، لیکن آپ کو کافی نہیں جانتے 373 00:19:30,320 --> 00:19:31,330 [اشراوی]. 374 00:19:31,330 --> 00:19:34,600 >> ANDI پینگ: جی ہاں، بالکل اتنا یاد کہ ایک صف کی پرتیبھا 375 00:19:34,600 --> 00:19:37,190 ہم نے اس حقیقت تھا رینڈم رسائی میموری جہاں 376 00:19:37,190 --> 00:19:41,580 میں انڈیکس سے قدر کرنا چاہتا تھا تو چھ، میں صرف، انڈیکس چھ کہہ سکتے ہیں 377 00:19:41,580 --> 00:19:42,407 مجھے اس کی قیمت دے. 378 00:19:42,407 --> 00:19:45,240 arrays کے مطابق کر رہے ہیں اور اس وجہ سے ہے کہ میموری کا ایک ملحق خلا میں 379 00:19:45,240 --> 00:19:48,020 ایک جگہ میں، جبکہ لنک کی فہرست کے قسم 380 00:19:48,020 --> 00:19:52,820 ہیں تصادفی، کے ارد گرد تمام interspersed کے اور واحد راستہ آپ کو ایک حاصل کر سکتے ہیں 381 00:19:52,820 --> 00:19:56,890 آپ کو بتاتا ہے کہ ایک پوائنٹر کے ذریعے ہے کہ اگلے نوڈ ہے جہاں کا پتہ. 382 00:19:56,890 --> 00:20:00,290 >> اور اس طرح ایک نتیجہ کے طور پر، صرف ایک ہی طریقہ ایک لنک کی فہرست کے ذریعے تلاش کرنے کے لئے 383 00:20:00,290 --> 00:20:01,560 لکیری تلاش ہے. 384 00:20:01,560 --> 00:20:05,890 میں کہاں نہیں جانتے کیونکہ لنک کی فہرست میں 12th قیمت، ہے 385 00:20:05,890 --> 00:20:08,780 میں مکمل طور پر گزرنا ہے اس سے منسلک فہرست میں سے ایک کے 386 00:20:08,780 --> 00:20:12,450 پہلا نوڈ سر سے ایک کی طرف سے، دوسری نوڈ، تیسری نوڈ، 387 00:20:12,450 --> 00:20:17,690 میں آخر میں ملتا ہے جب تک تمام طریقے سے نیچے میں دیکھ رہا ہوں کہ نوڈ ہے جہاں پر. 388 00:20:17,690 --> 00:20:22,110 اور اس طرح اس معنی میں، تلاش ایک لنک کی فہرست پر ہمیشہ (ن) ہے. 389 00:20:22,110 --> 00:20:23,040 یہ ہمیشہ N ہے. 390 00:20:23,040 --> 00:20:25,690 یہ لکیری وقت میں ہمیشہ ہے. 391 00:20:25,690 --> 00:20:28,470 >> اور تو کوڈ ہے جس میں ہم اس پر عمل درآمد، اور اس 392 00:20:28,470 --> 00:20:32,620 آپ کے بعد تم لوگوں کے لئے تھوڑا سا نیا ہے لوگ واقعی کے بارے میں یا کبھی بات نہیں کی ہے 393 00:20:32,620 --> 00:20:35,000 کے لئے کس طرح میں دیکھا اشارہ اشارہ کے ذریعے تلاش، 394 00:20:35,000 --> 00:20:37,670 تو ہم کے ذریعے چل گے یہ بہت، بہت آہستہ آہستہ. 395 00:20:37,670 --> 00:20:40,200 تو bool تلاش، حق، ہم چاہتے ہیں تصور کرتے ہیں 396 00:20:40,200 --> 00:20:42,820 نامی ایک تقریب پیدا کرنے کے لئے سچ واپس ہے کہ تلاش کے 397 00:20:42,820 --> 00:20:46,820 آپ منسلک اندر ایک قدر پایا تو فہرست، اور یہ دوسری صورت میں جھوٹے واپس. 398 00:20:46,820 --> 00:20:50,030 نوڈ سٹار فہرست ہے فی الحال صرف پوائنٹر 399 00:20:50,030 --> 00:20:52,960 آپ کے منسلک فہرست میں پہلے شے کے لئے. 400 00:20:52,960 --> 00:20:56,700 int ن تم اس قدر ہے اس فہرست میں کے لئے تلاش. 401 00:20:56,700 --> 00:20:58,770 >> تو نوڈ ستارہ پوائنٹر فہرست برابر. 402 00:20:58,770 --> 00:21:00,970 یہی ہے جو ہم پیدا کر رہے ہیں کا مطلب ہے کہ اور ایک پوائنٹر پیدا کرنے 403 00:21:00,970 --> 00:21:03,592 فہرست کے اندر کہ سب سے پہلے نوڈ. 404 00:21:03,592 --> 00:21:04,300 میرے ساتھ ہر کوئی؟ 405 00:21:04,300 --> 00:21:06,530 ہم جانے کے لئے تھے تو یہاں واپس، میں ہوگا 406 00:21:06,530 --> 00:21:13,850 کی طرف اشارہ ہے کہ ایک پوائنٹر initialized سر جو اس فہرست میں ہے. 407 00:21:13,850 --> 00:21:18,600 >> اور پھر آپ، یہاں نیچے حاصل ایک بار پوائنٹر برابر شہوت انگیز null نہیں ہے جبکہ، 408 00:21:18,600 --> 00:21:22,160 تاکہ ہم ہیں جس میں لوپ ہے کی traversing بعد ہونے جا رہا 409 00:21:22,160 --> 00:21:25,940 کیا کیونکہ ہماری فہرست کے باقی پوائنٹر شہوت انگیز null برابر ہوتا ہے جب؟ 410 00:21:25,940 --> 00:21:27,550 ہم جانتے ہیں کہ have-- 411 00:21:27,550 --> 00:21:28,450 >> سامعین: [اشراوی] 412 00:21:28,450 --> 00:21:31,491 >> ANDI پینگ: بالکل، تو ہم جانتے ہیں کہ ہم صحیح فہرست کے آخر تک پہنچ گئے ہیں؟ 413 00:21:31,491 --> 00:21:34,470 آپ یہاں واپس جانا تو، ہر نوڈ دوسرے نوڈ کی طرف اشارہ کیا جانا چاہئے 414 00:21:34,470 --> 00:21:36,550 اور تو اور تو آگے آپ کو آخر میں مارا جب تک 415 00:21:36,550 --> 00:21:41,589 آپ کے منسلک فہرست کی دم، جس میں ایک پوائنٹر ہے کہ صرف 416 00:21:41,589 --> 00:21:43,130 کوئی مقابلے میں کہیں بھی دوسرے کی طرف اشارہ نہیں کرتا. 417 00:21:43,130 --> 00:21:47,510 اور اس طرح آپ بنیادی طور پر جانتے ہیں کہ آپ کی فہرست میں اب بھی موجود ہے 418 00:21:47,510 --> 00:21:50,900 پوائنٹر برابر نہیں کرتا جب تک شہوت انگیز null یہ شہوت انگیز null برابر ایک بار کیونکہ، 419 00:21:50,900 --> 00:21:53,310 آپ کو کوئی زیادہ چیزیں ہے کہ وہاں جانتے ہیں. 420 00:21:53,310 --> 00:21:56,930 >> تو ہے کہ ہم رہے ہیں جس میں لوپ ہے اصل تلاش کرنے جا رہے. 421 00:21:56,930 --> 00:22:01,690 اور پوائنٹر آپ کو دیکھ کر کرتے ہیں تو وہاں تیر تقریب کی اس قسم؟ 422 00:22:01,690 --> 00:22:06,930 تو پوائنٹر پوائنٹس تو (ن) کے، تو (ن) کے برابر ہے (ن) میں پوائنٹر، 423 00:22:06,930 --> 00:22:09,180 تو اس کا مطلب ہے کہ تم اس پوائنٹر 424 00:22:09,180 --> 00:22:13,420 ہر ایک کے آخر پر کے لئے تلاش نوڈ قیمت اصل میں برابر ہے 425 00:22:13,420 --> 00:22:15,990 اگر آپ کے لئے تلاش کر رہے ہیں تم سچے واپس کرنا چاہتے ہیں. 426 00:22:15,990 --> 00:22:19,280 تو بنیادی طور پر، آپ کو ایک نوڈ میں ہیں کہ اگر ، آپ کے لئے تلاش کر رہے ہیں اس قدر ہے 427 00:22:19,280 --> 00:22:23,550 آپ کیا گیا ہے جانتے ہیں کہ کامیابی تلاش کرنے کے قابل. 428 00:22:23,550 --> 00:22:27,150 >> دوسری صورت میں، آپ کو قائم کرنا چاہتے ہیں اگلے نوڈ آپ پوائنٹر. 429 00:22:27,150 --> 00:22:28,850 وہ یہاں اس لائن کیا کر رہا ہے ہے. 430 00:22:28,850 --> 00:22:31,750 اشارہ اگلے پوائنٹر برابر. 431 00:22:31,750 --> 00:22:33,360 کہ کام کر رہا ہے کہ کس طرح سب دیکھ رہے ہو؟ 432 00:22:33,360 --> 00:22:36,580 >> اور بنیادی طور پر آپ کے لئے جا رہے ہیں صرف ، فہرست کے مکمل طور پر گزرنا 433 00:22:36,580 --> 00:22:41,920 آپ پوائنٹر ہر وقت تک ری سیٹ آپ کو آخر میں فہرست کے آخر مارا. 434 00:22:41,920 --> 00:22:45,030 اور آپ کو کوئی جانتے ہیں کہ وہاں زیادہ نوڈس کے ذریعے تلاش کرنے کے لئے 435 00:22:45,030 --> 00:22:47,999 اور پھر آپ جھوٹے واپس آ سکتے ہیں آپ کو معلوم ہے کیونکہ، کہ اچھی طرح سے، اوہ، 436 00:22:47,999 --> 00:22:50,540 میں تلاش کرنے کے قابل ہو گیا ہے تو فہرست مکمل ذریعے. 437 00:22:50,540 --> 00:22:54,530 اس مثال میں، تو میں چاہتا تھا تو 10 قیمت کے لئے دیکھو، 438 00:22:54,530 --> 00:22:57,250 اور میں نے سر سے شروع، اور میں، سارے راستے تلاش 439 00:22:57,250 --> 00:23:00,550 اور میں نے آخر، اس سے مل گیا ہے جس شہوت انگیز null کی طرف اشارہ ہے کہ ایک پوائنٹر، 440 00:23:00,550 --> 00:23:04,415 میں نہیں ہے، قسم کی معمولی ہدایات، میں 10 لگتا ہے جانتے ہیں کہ اس فہرست میں اسے تلاش نہیں کر سکتے کیونکہ. 441 00:23:04,415 --> 00:23:06,520 اور میں نے فہرست کے آخر میں ہوں. 442 00:23:06,520 --> 00:23:11,040 اور جس صورت میں آپ کو معلوم ہے میں جھوٹ پر واپس جا رہا ہوں. 443 00:23:11,040 --> 00:23:12,900 >> کہ تھوڑا سا کے لئے لینا. 444 00:23:12,900 --> 00:23:17,350 یہ خوبصورت ہو جائے گا آپ pset کے لئے اہم. 445 00:23:17,350 --> 00:23:21,140 اس کی منطق شاید، بہت آسان ہے syntactically ہے صرف اس پر عمل درآمد. 446 00:23:21,140 --> 00:23:23,365 تم لوگوں کو بنانے کے لئے چاہتے ہیں آپ سمجھتے ہیں کہ اس بات کا یقین. 447 00:23:23,365 --> 00:23:25,870 448 00:23:25,870 --> 00:23:27,650 ٹھنڈا. 449 00:23:27,650 --> 00:23:32,560 >> ٹھیک ہے، تو ہم کس طرح کیا جائے گا صحیح، نوڈ ڈالنے، 450 00:23:32,560 --> 00:23:35,380 ایک فہرست میں وجہ سے یاد کیا فوائد کے بارے میں کیا ہیں 451 00:23:35,380 --> 00:23:39,230 کی ایک لنک کی فہرست بمقابلہ ہونے سٹوریج کی شرائط میں ایک صف؟ 452 00:23:39,230 --> 00:23:41,110 >> سامعین: یہ متحرک ہے، تو یہ آسان ہے to-- 453 00:23:41,110 --> 00:23:43,180 >> ANDI پینگ: بالکل، تو یہ، متحرک ہے جس 454 00:23:43,180 --> 00:23:46,880 اس کو بڑھانے اور سکڑ کر سکتے ہیں کا مطلب ہے کہ صارف کی ضروریات پر منحصر ہے. 455 00:23:46,880 --> 00:23:56,570 اور اس طرح، اس معنی میں، ہمیں ضرورت نہیں ہے غیر ضروری میموری برباد کرنے کے لئے کیونکہ مجھے پچھلی رات 456 00:23:56,570 --> 00:24:00,850 میں چاہتا ہوں کتنی اقدار نہیں جانتے تو دکان پر، یہ میرے لئے کوئی مطلب نہیں ہے 457 00:24:00,850 --> 00:24:04,310 ایک سرنی کی وجہ سے پیدا کرنے کے لئے میں 10 اقدار کو ذخیرہ کرنا چاہتے ہیں تو 458 00:24:04,310 --> 00:24:08,380 اور میں 1،000 کی ایک سرنی، ہے پیدا برباد میموری کا ایک بہت، الاٹ. 459 00:24:08,380 --> 00:24:11,180 ہم ایک لنک استعمال کرنا چاہتے ہیں یہی وجہ ہے کہ فہرست متحرک طور پر کرنے کے قابل ہونا 460 00:24:11,180 --> 00:24:13,860 تبدیل یا ہمارے سائز سکڑ. 461 00:24:13,860 --> 00:24:17,040 >> اور تو ہے کہ اندراج کرتا ہے تھوڑا سا زیادہ پیچیدہ. 462 00:24:17,040 --> 00:24:20,810 ہم تصادفی عناصر تک رسائی حاصل نہیں کر سکتے ہیں ہم ایک صف کے گا اس طرح. 463 00:24:20,810 --> 00:24:24,270 میں ایک عنصر داخل کرنا چاہتے ہیں تو ساتویں انڈیکس میں، 464 00:24:24,270 --> 00:24:26,930 میں نے صرف اسے داخل کر سکتے ہیں ساتویں انڈیکس میں. 465 00:24:26,930 --> 00:24:30,020 ایک لنک کی فہرست پر، یہ نہیں کرتا کافی کے طور پر آسانی سے کام، 466 00:24:30,020 --> 00:24:34,947 اور ہم تو داخل کرنا چاہتے تھے تو لنک کی فہرست میں یہاں ایک، 467 00:24:34,947 --> 00:24:36,280 ضعف، اسے دیکھنے کے لئے بہت آسان ہے. 468 00:24:36,280 --> 00:24:39,363 ہم صرف، وہیں یہ داخل کرنا چاہتے ہیں صحیح فہرست کے آغاز میں، 469 00:24:39,363 --> 00:24:40,840 سر کے بعد. 470 00:24:40,840 --> 00:24:44,579 >> لیکن ہم جس طرح میں reassign کرنے اشارہ تھوڑا convoluted ہے 471 00:24:44,579 --> 00:24:47,620 یا، منطقی طور پر، یہ، سمجھ میں آتا ہے لیکن آپ یہ ہے کہ بات کو یقینی بنانا چاہتے ہیں 472 00:24:47,620 --> 00:24:50,250 مکمل طور پر نیچے کی وجہ سے آپ چاہتے ہیں آخری چیز 473 00:24:50,250 --> 00:24:52,990 ایک پوائنٹر میں reassign کرنے کے لئے ہے ہم یہاں کیا کر رہے ہیں اس طرح. 474 00:24:52,990 --> 00:24:58,170 اگر آپ dereference ہے 1 سر سے پوائنٹر، 475 00:24:58,170 --> 00:25:01,086 پھر اچانک تمام آپ کے منسلک فہرست کے باقی 476 00:25:01,086 --> 00:25:04,680 آپ اصل میں نہیں ہے، کیونکہ کھو گیا ہے ایک عارضی چیز پیدا. 477 00:25:04,680 --> 00:25:06,220 2 کی طرف اشارہ کیا ہے. 478 00:25:06,220 --> 00:25:10,080 آپ کو تو پوائنٹر، میں reassign تو آپ کی فہرست کے باقی مکمل طور پر کھو گیا ہے. 479 00:25:10,080 --> 00:25:13,310 تو آپ کو بننا چاہتا ہوں یہاں بہت، بہت ہوشیار 480 00:25:13,310 --> 00:25:17,010 پہلے تفویض کرنے آپ کو کسی بھی کی طرف سے پوائنٹر 481 00:25:17,010 --> 00:25:20,150 جہاں میں داخل کرنا چاہتے ہیں آپ چاہتے ہیں، اور پھر آپ کو 482 00:25:20,150 --> 00:25:22,710 آپ کی فہرست کے باقی dereference کر سکتے ہیں. 483 00:25:22,710 --> 00:25:25,250 >> تو اس کے لیے لاگو ہوتا ہے جہاں کہیں بھی آپ میں داخل کرنے کی کوشش کر رہے ہیں. 484 00:25:25,250 --> 00:25:27,520 آپ کو شامل کرنے کے لئے چاہتے ہیں، تو سر، آپ کا جواب یہاں کرنا چاہتے ہیں تو، 485 00:25:27,520 --> 00:25:29,455 آپ کو شامل کرنے کے لئے چاہتے ہیں تو آخر، اچھی طرح سے، آخر میں 486 00:25:29,455 --> 00:25:30,910 لگتا ہے آپ کو صرف کرے گا کوئی پوائنٹر ہے، لیکن آپ 487 00:25:30,910 --> 00:25:33,830 آپ ایسا نہیں کرتے اس بات کو یقینی بنانا چاہتے ہیں آپ کی فہرست کے باقی کھو. 488 00:25:33,830 --> 00:25:36,640 تم نے ہمیشہ بات کو یقینی بنانا چاہتے ہیں اپنے نئے نوڈ کی طرف اشارہ ہے 489 00:25:36,640 --> 00:25:39,330 جو کچھ بھی کی طرف تم میں داخل کرنا چاہتے ہیں، 490 00:25:39,330 --> 00:25:42,170 اور اس کے بعد تم پر جکڑا جانا شامل کر سکتے ہیں. 491 00:25:42,170 --> 00:25:43,330 سب صاف ہے؟ 492 00:25:43,330 --> 00:25:45,427 >> یہ ہونے جا رہا ہے حقیقی مسائل میں سے ایک. 493 00:25:45,427 --> 00:25:48,010 سب سے زیادہ اہم مسائل میں سے ایک آپ اپنے pset پر لئے جا رہے ہیں 494 00:25:48,010 --> 00:25:51,340 آپ کو پیدا کرنے کی کوشش کرنے جا رہے ہیں ایک لنک کی فہرست اور ڈالیں چیزیں 495 00:25:51,340 --> 00:25:53,340 لیکن اس کے بعد صرف کھو آپ کے منسلک فہرست کے باقی. 496 00:25:53,340 --> 00:25:54,900 اور آپ کی طرح جا رہے ہیں، میں یہ ہو رہا ہے پتہ نہیں کیوں؟ 497 00:25:54,900 --> 00:25:58,040 اور اس کے ذریعے جانے کے لئے ایک درد ہے اور آپ کے اشارہ کی تمام تلاش. 498 00:25:58,040 --> 00:26:02,100 >> اور میں اس pset پر آپ اس بات کی ضمانت، ان مراکز کو لکھنے اور ڈرائنگ 499 00:26:02,100 --> 00:26:03,344 بہت، بہت مددگار ثابت ہو جائے گا. 500 00:26:03,344 --> 00:26:06,010 تو آپ کو مکمل طور پر ٹریک رکھ سکتے ہیں تمام اشارہ کہاں کھڑے ہیں، 501 00:26:06,010 --> 00:26:08,540 کیا، غلط ہو رہا ہے تمام مراکز ہیں جہاں، 502 00:26:08,540 --> 00:26:12,660 آپ تک رسائی حاصل کرنے کے لئے کیا کرنے کی ضرورت ہے یا داخل یا خارج کر دیں یا ان میں سے کسی. 503 00:26:12,660 --> 00:26:14,550 اس کے ساتھ اچھا ہر کوئی؟ 504 00:26:14,550 --> 00:26:15,050 ٹھنڈا. 505 00:26:15,050 --> 00:26:19,300 506 00:26:19,300 --> 00:26:22,600 >> ہم نے کوڈ میں نظر کرنا چاہتے تھے تو؟ 507 00:26:22,600 --> 00:26:24,470 اوہ، مجھے پتہ نہیں ہے تو ہم تو، the-- ٹھیک دیکھ سکتے ہیں 508 00:26:24,470 --> 00:26:27,940 سب سے اوپر یہ سب ایک تقریب ہے ہم چاہتے ہیں جہاں کا نام داخل کریں 509 00:26:27,940 --> 00:26:31,365 منسلک فہرست میں int ن شامل کرنے کے لئے. 510 00:26:31,365 --> 00:26:32,740 ہم اس کے ذریعے چلنے کے لئے جا رہے ہیں. 511 00:26:32,740 --> 00:26:34,770 یہ کوڈ کا ایک بہت، نئے نحو کا ایک بہت ہے. 512 00:26:34,770 --> 00:26:36,220 ہم ٹھیک ہو جائے گا. 513 00:26:36,220 --> 00:26:39,120 >> سب سے، جب بھی میں تو ہم کچھ پیدا کرنے کے لئے چاہتے ہیں 514 00:26:39,120 --> 00:26:42,380 ہم کیا کرنے کی ضرورت ہے خاص طور پر اگر آپ کو یہ اسٹیک پر محفوظ کیا جا نہیں کرنا چاہتے 515 00:26:42,380 --> 00:26:43,920 لیکن ڈھیر میں؟ 516 00:26:43,920 --> 00:26:45,460 ہم صحیح، ایک malloc کے لئے جانا؟ 517 00:26:45,460 --> 00:26:48,240 تو ہم نے ایک پوائنٹر پیدا کرنے جا رہے. 518 00:26:48,240 --> 00:26:52,074 گھنڈی، پوائنٹر، نئے برابر ایک نوڈ کا سائز malloc سے 519 00:26:52,074 --> 00:26:53,740 ہم چاہتے ہیں کیونکہ اس نوڈ پیدا کرنے. 520 00:26:53,740 --> 00:26:56,720 ہم رقم کرنا چاہتے ایک نوڈ تک لے جاتا ہے کہ میموری 521 00:26:56,720 --> 00:26:59,300 کے لئے الاٹ کیا جانا نیا نوڈ کی تخلیق. 522 00:26:59,300 --> 00:27:02,270 >> اور پھر ہم چیک کرنے کے لیے جا رہے ہیں نئے برابر شہوت انگیز null برابر ہے کو دیکھنے کے. 523 00:27:02,270 --> 00:27:03,370 ہم نے کہا کیا یاد رکھیں؟ 524 00:27:03,370 --> 00:27:06,470 malloc کا جو کچھ بھی تم، آپ کو ہمیشہ کیا کرنا چاہئے؟ 525 00:27:06,470 --> 00:27:09,490 آپ ہمیشہ دیکھنے کے لئے جانچ پڑتال ضروری ہے یا نہیں کہ شہوت انگیز null ہے. 526 00:27:09,490 --> 00:27:13,620 >> مثال کے طور پر، اگر آپ کے آپریٹنگ نظام، مکمل طور پر بھرا ہوا تھا 527 00:27:13,620 --> 00:27:17,060 آپ کو کوئی زیادہ میموری تھا تو سب آپ malloc کرنے کی کوشش، 528 00:27:17,060 --> 00:27:18,410 یہ آپ کے لئے، شہوت انگیز null واپس آ جائیں گے. 529 00:27:18,410 --> 00:27:21,094 اور اس لئے تم اس کا استعمال کرنے کی کوشش کریں تو شہوت انگیز null کی طرف اشارہ کیا گیا تھا جب، 530 00:27:21,094 --> 00:27:23,260 آپ کرنے کے قابل نہیں کر رہے ہیں کہ معلومات تک رسائی حاصل کرنے. 531 00:27:23,260 --> 00:27:27,010 اور اس طرح کے طور پر، ہم بنانا چاہتے تھے جب بھی آپ mallocing رہے ہیں اس بات کو یقینی، 532 00:27:27,010 --> 00:27:30,500 آپ ہمیشہ دیکھنے کے لئے جانچ پڑتال کر رہے آپ کو دی گئی ہے کہ میموری شہوت انگیز null ہے. 533 00:27:30,500 --> 00:27:33,670 اگر یہ نہیں ہے، تو ہم منتقل کر سکتے ہیں اپنے کوڈ کے باقی حصوں کے ساتھ. 534 00:27:33,670 --> 00:27:36,140 >> تو ہم کرنے جا رہے ہیں نیا نوڈ ابتدا. 535 00:27:36,140 --> 00:27:39,050 ہم نئی ن برابر کرنے جا رہے ہیں. 536 00:27:39,050 --> 00:27:42,390 اور پھر ہم کیا کرنے جا رہے ہیں نئی نئی پوائنٹر قائم 537 00:27:42,390 --> 00:27:46,900 شہوت انگیز null اب ہم ایسا نہیں کرتے کیونکہ اس کی طرف اشارہ کرنے کے لئے کچھ کرنا چاہتے ہیں. 538 00:27:46,900 --> 00:27:48,755 ہم نے کوئی اندازہ کہاں یہ آپ کو ڈال کرنے کے لئے جا رہا ہے 539 00:27:48,755 --> 00:27:50,630 اور پھر ہم کرنا چاہتے ہیں تو سر میں داخل، 540 00:27:50,630 --> 00:27:53,820 پھر ہم reassign کر سکتے ہیں سر پوائنٹر. 541 00:27:53,820 --> 00:27:58,530 سب منطق کی پیروی کرتا ہے کہاں کہ کیا ہو رہا ہے؟ 542 00:27:58,530 --> 00:28:02,502 >> ہم کر رہے ہیں سب ایک نئے پیدا کر رہا ہے نوڈ، شہوت انگیز null پوائنٹر قائم، 543 00:28:02,502 --> 00:28:04,210 اور پھر reassigning اس کے سر پر اگر ہم 544 00:28:04,210 --> 00:28:06,320 ہم سر میں داخل کرنا چاہتے ہیں جانتے. 545 00:28:06,320 --> 00:28:09,420 اور پھر سر جا رہا ہے کہ نئے نوڈ کی طرف اشارہ. 546 00:28:09,420 --> 00:28:11,060 اس کے ساتھ ٹھیک ہر کوئی؟ 547 00:28:11,060 --> 00:28:12,380 >> تو یہ ایک دو قدم عمل ہے. 548 00:28:12,380 --> 00:28:14,760 تم سے پہلے مقرر کرنے کے لئے ہے جو کچھ بھی آپ پیدا کر رہے ہیں. 549 00:28:14,760 --> 00:28:18,260 کرنے کے لئے اس پوائنٹر قائم آپ کے ریفرنس کے، اور اس کے بعد 550 00:28:18,260 --> 00:28:21,400 کر سکتے ہیں dereference ہے کی قسم پہلی پوائنٹر 551 00:28:21,400 --> 00:28:22,972 اور نئے نوڈ کی طرف اشارہ. 552 00:28:22,972 --> 00:28:25,680 آپ داخل کرنا چاہتے ہیں جہاں، کہ منطق کو درست مان منعقد کرنے جا رہا ہے. 553 00:28:25,680 --> 00:28:27,530 >> یہ بتائے طرح کی طرح ہے عارضی متغیر. 554 00:28:27,530 --> 00:28:28,700 یاد رکھیں، آپ کو مل گیا ہے یقینی بنانے کے لئے آپ کو اس کے 555 00:28:28,700 --> 00:28:30,346 آپ گماگمن کر رہے ہیں تو کا ٹریک کھو نہ کرو. 556 00:28:30,346 --> 00:28:33,470 آپ کو ایک ہے اس بات کو یقینی بنانا چاہتے ہیں قسم کے رکھتا ہے کہ عارضی متغیر 557 00:28:33,470 --> 00:28:35,620 جہاں اس چیز کا ٹریک تاکہ ذخیرہ کیا جاتا ہے آپ 558 00:28:35,620 --> 00:28:41,190 کورس میں کسی بھی قیمت کھو نہ کرو اس کے ساتھ کے ارد گرد الجھ کی طرح. 559 00:28:41,190 --> 00:28:42,710 >> ٹھیک ہے، تو کوڈ یہاں ہو جائے گا. 560 00:28:42,710 --> 00:28:45,020 تم لوگوں کو سیکشن کے بعد ایک نظر ڈالیں. 561 00:28:45,020 --> 00:28:48,060 یہ ہو جائے گا. 562 00:28:48,060 --> 00:28:50,280 >> تو میں کرتا ہے کس طرح لگتا ہے ہم چاہتے تھے تو یہ اختلاف 563 00:28:50,280 --> 00:28:52,300 وسط یا آخر میں داخل کرنے کے لئے؟ 564 00:28:52,300 --> 00:28:57,892 کسی کیا ہے ایک خیال ہے منطقی ریفرنس کے طور پر pseudocode کے 565 00:28:57,892 --> 00:29:00,350 ہم چاہتے تھے تو ہم لے جائے گا کہ وسط میں داخل کرنے کے لئے؟ 566 00:29:00,350 --> 00:29:03,391 اگر ایسا ہے تو ہم داخل کرنا چاہتے تھے سر، ہم کرتے ہیں ایک نیا نوڈ بنانے کے ہے. 567 00:29:03,391 --> 00:29:06,311 ہم نے اس کے پوائنٹر قائم جو سر پر نئے نوڈ، 568 00:29:06,311 --> 00:29:08,310 اور پھر ہم سر مقرر نیا نوڈ، ٹھیک ہے؟ 569 00:29:08,310 --> 00:29:11,560 ہم مشرق میں داخل کرنا چاہتے تھے تو فہرست، ہمیں کیا کرنا پڑے گا؟ 570 00:29:11,560 --> 00:29:14,108 571 00:29:14,108 --> 00:29:16,110 >> سامعین: یہ اب بھی کریں گے اسی طرح کی ایک عمل ہو 572 00:29:16,110 --> 00:29:19,114 کا پوائنٹر بتائے طرح پھر، کہ پوائنٹر بتائے 573 00:29:19,114 --> 00:29:20,530 لیکن ہم وہاں تلاش کرنے کے لئے پڑے گا. 574 00:29:20,530 --> 00:29:23,560 >> ANDI پینگ: بالکل، بالکل تو آپ کے علاوہ اسی عمل 575 00:29:23,560 --> 00:29:27,820 کہاں تلاش کرنے کے لئے ہے کہ آپ کہ نئے پوائنٹر میں جانا چاہتے ہیں، 576 00:29:27,820 --> 00:29:44,790 میں میں داخل کرنا چاہتے ہیں تو ٹھیک list-- منسلک کے وسط، 577 00:29:44,790 --> 00:29:46,370 ہے کہ ہمارے سے منسلک فہرست کہتے ہیں. 578 00:29:46,370 --> 00:29:49,500 ہم اسے یہیں سے داخل کرنا چاہتے ہیں، ہم نے ایک نیا نوڈ بنانے کے لئے جا رہے ہیں. 579 00:29:49,500 --> 00:29:50,520 ہم malloc جا رہے ہیں. 580 00:29:50,520 --> 00:29:52,220 ہم نے ایک نیا نوڈ بنانے کے لئے جا رہے ہیں. 581 00:29:52,220 --> 00:29:55,940 ہم تفویض کرنے جا رہے ہیں یہاں اس نوڈ کی پوائنٹر. 582 00:29:55,940 --> 00:29:58,335 >> لیکن مسئلہ یہ ہے کہ مختلف سر ہے جہاں سے 583 00:29:58,335 --> 00:30:00,490 ہم بالکل جانتا ہے جہاں سر ہے. 584 00:30:00,490 --> 00:30:01,930 یہ درست ہے، سب سے پہلے میں درست تھا؟ 585 00:30:01,930 --> 00:30:04,870 لیکن یہاں ہم ٹریک رکھنے کے لئے مل گیا ہے جہاں ہم اس میں داخل کر رہے ہیں. 586 00:30:04,870 --> 00:30:07,930 ہم داخل کر رہے ہیں تو ہماری یہاں نوڈ، ہم مل گیا ہے 587 00:30:07,930 --> 00:30:12,270 بات کو یقینی بنانا کہ اس نوڈ گزشتہ ایک 588 00:30:12,270 --> 00:30:14,172 پوائنٹر reassigns کہ ایک ہے. 589 00:30:14,172 --> 00:30:16,380 تو پھر آپ کی قسم کے لئے ہے دو چیزوں میں سے ٹریک رکھنے. 590 00:30:16,380 --> 00:30:19,420 تم کہاں اس کا ٹریک رکھنے کے تو نوڈ فی الحال میں داخل ہے. 591 00:30:19,420 --> 00:30:23,280 آپ کو بھی جہاں کے ٹریک رکھنے کے لئے ہے آپ دیکھ رہے ہیں کہ گزشتہ نوڈ 592 00:30:23,280 --> 00:30:24,340 وہاں بھی تھا. 593 00:30:24,340 --> 00:30:25,830 اس کے ساتھ اچھا ہر کوئی؟ 594 00:30:25,830 --> 00:30:26,500 ٹھیک ہے. 595 00:30:26,500 --> 00:30:28,000 >> کس طرح آخر میں ڈالنے کے بارے میں؟ 596 00:30:28,000 --> 00:30:34,220 میں چاہتا تھا تو میں یہاں شامل کرنے کے لئے چاہتا تھا، تو ایک فہرست کے آخر میں ایک نیا نوڈ شامل کرنے کے لئے، 597 00:30:34,220 --> 00:30:37,009 مجھے لگتا ہے کہ ایسا کرنے کے بارے میں کیسے جا سکتا ہے؟ 598 00:30:37,009 --> 00:30:39,300 سامعین: تو اس وقت، گزشتہ ایک شہوت انگیز null کی طرف اشارہ کیا. 599 00:30:39,300 --> 00:30:40,960 ANDI پینگ: جی ہاں. 600 00:30:40,960 --> 00:30:43,560 بالکل، تو یہ ایک فی الحال معلوم کی طرف اشارہ کیا ہے، 601 00:30:43,560 --> 00:30:46,720 اور اس لئے میں اس معنی میں، یہ ہے، لگتا ہے ایک فہرست کے آخر میں شامل کرنے کے لئے بہت آسان. 602 00:30:46,720 --> 00:30:51,810 تمہیں کیا کرنا ہے یہ سب مقرر کیا گیا ہے شہوت انگیز null اور پھر بوم کے برابر. 603 00:30:51,810 --> 00:30:53,070 وہیں، بہت آسان. 604 00:30:53,070 --> 00:30:53,960 بہت آسان. 605 00:30:53,960 --> 00:30:56,430 >> کرنے کے لئے بہت اسی طرح آپ کے سر، لیکن منطقی طور پر 606 00:30:56,430 --> 00:30:59,690 اقدامات اس بات کو یقینی بنانا چاہتے ہیں آپ کو اس میں سے کسی کی طرف لے کر 607 00:30:59,690 --> 00:31:01,500 آپ کے ساتھ پیروی کر رہے ہیں. 608 00:31:01,500 --> 00:31:04,420 اس کے وسط میں، کرنے کے لئے بہت آسان ہے آپ کے کوڈ کے،، پر پکڑے گئے 609 00:31:04,420 --> 00:31:05,671 اوہ، میں نے بہت سے اشارہ مل گیا ہے. 610 00:31:05,671 --> 00:31:07,461 مجھے پتہ نہیں کہاں کچھ اشارہ کر رہا ہے. 611 00:31:07,461 --> 00:31:09,170 میں نے بھی میں ہوں جو نوڈ نہیں جانتے. 612 00:31:09,170 --> 00:31:11,490 کیا ہو رہا ہے؟ 613 00:31:11,490 --> 00:31:13,620 >> ایک گہری سانس لے، پرسکون، آرام. 614 00:31:13,620 --> 00:31:15,530 آپ کے منسلک فہرست باہر اپنی طرف متوجہ. 615 00:31:15,530 --> 00:31:18,800 اگر آپ کہتے ہیں، میں کہاں جانتے ہیں میں میں اس داخل کرنے کی ضرورت 616 00:31:18,800 --> 00:31:22,970 اور میں اپنے میں reassign کے لئے کس طرح جانتے ہیں اشارہ، بہت، بہت آسان تصویر 617 00:31:22,970 --> 00:31:27,200 out-- بہت، بہت آسان نہیں آپ کے کوڈ کے کیڑے میں کھو جاتے ہیں. 618 00:31:27,200 --> 00:31:29,410 اس کے ساتھ ٹھیک ہر کوئی؟ 619 00:31:29,410 --> 00:31:31,380 ٹھیک ہے. 620 00:31:31,380 --> 00:31:35,120 >> لہذا میں ہم نہیں ہے کہ ایک تصور لگتا ہے واقعی، اب سے پہلے کے بارے میں بات 621 00:31:35,120 --> 00:31:38,131 اور میں نے شاید آپ کو لگتا ہے زیادہ yet-- کا سامنا نہیں کریں گے 622 00:31:38,131 --> 00:31:40,880 یہ ایک اعلی درجے concept-- کی طرح ہے ہم اصل میں ایک اعداد و شمار کے ہے 623 00:31:40,880 --> 00:31:43,900 ساخت ایک دوگنا سے منسلک فہرست کہتے. 624 00:31:43,900 --> 00:31:46,390 تم لوگوں کو دیکھ سکتے ہیں تو کے طور پر، ہم کر رہے ہیں پیدا کر رہی ہے 625 00:31:46,390 --> 00:31:50,400 ایک اصل قیمت، ایک اضافی ہمارے مراکز میں سے ہر ایک پر پوائنٹر 626 00:31:50,400 --> 00:31:52,660 وہ بھی گزشتہ نوڈ کی طرف اشارہ ہے. 627 00:31:52,660 --> 00:31:58,170 تو نہ صرف ہم اپنے ہیں نوڈس اگلے ایک کی طرف اشارہ. 628 00:31:58,170 --> 00:32:01,430 انہوں نے یہ بھی گزشتہ ایک کی طرف اشارہ. 629 00:32:01,430 --> 00:32:04,310 میں ابھی ان دونوں کو نظر انداز کرنے جا رہا ہوں. 630 00:32:04,310 --> 00:32:06,740 >> تو پھر آپ کو ایک زنجیر ہے کہ دونوں طریقوں سے منتقل کر سکتے ہیں، 631 00:32:06,740 --> 00:32:09,630 اور پھر یہ تھوڑا سا آسان ہے منطقی طور پر ساتھ ساتھ عمل کرنے. 632 00:32:09,630 --> 00:32:11,896 یہاں کی طرح، بجائے اوہ، کا ٹریک رکھنے، میں 633 00:32:11,896 --> 00:32:14,520 اس نوڈ ہے کہ جاننا ضروری ہے میں میں reassign کے لئے ہے کہ ایک، 634 00:32:14,520 --> 00:32:17,532 میں صرف یہاں جا سکتے ہیں صرف گزشتہ ھیںچو. 635 00:32:17,532 --> 00:32:19,490 پھر میں کہاں جانتے ہیں ہے، اور پھر آپ کو 636 00:32:19,490 --> 00:32:21,130 گزرنا کی ضرورت نہیں ہے لنک کی فہرست کے مکمل. 637 00:32:21,130 --> 00:32:22,180 یہ تھوڑا سا آسان ہے. 638 00:32:22,180 --> 00:32:24,960 >> لیکن اس طرح کے طور پر، آپ کو دوگنا ہے اشارہ کی رقم، 639 00:32:24,960 --> 00:32:26,960 کہ میموری کی رقم کو دوگنا ہے. 640 00:32:26,960 --> 00:32:28,950 اس کا ٹریک رکھنے کے لئے اشارہ کی ایک بہت ہے. 641 00:32:28,950 --> 00:32:32,140 یہ تھوڑا سا زیادہ پیچیدہ ہے، لیکن یہ ہے صارف دوستانہ منحصر ہے تھوڑا سا زیادہ 642 00:32:32,140 --> 00:32:34,080 آپ کو پورا کرنے کی کوشش کر رہے ہیں پر. 643 00:32:34,080 --> 00:32:36,910 >> تو اعداد و شمار کے اس قسم ساخت مکمل طور پر موجود ہے، 644 00:32:36,910 --> 00:32:40,280 اور ساخت بہت، بہت ہے اگر آپ کر رہے ہیں تمام ہے سوائے آسان، 645 00:32:40,280 --> 00:32:43,850 بجائے اگلے کرنے کے لئے صرف ایک پوائنٹر کے، آپ کو بھی گزشتہ ایک پوائنٹر ہے. 646 00:32:43,850 --> 00:32:45,940 اسی وجہ سے یہ تھا ہے. 647 00:32:45,940 --> 00:32:47,740 اس کے ساتھ اچھا ہر کوئی؟ 648 00:32:47,740 --> 00:32:48,240 ٹھنڈا. 649 00:32:48,240 --> 00:32:50,940 650 00:32:50,940 --> 00:32:53,280 >> ٹھیک ہے، تو اب میں ہوں واقعی شاید خرچ کرنے کے لئے 651 00:32:53,280 --> 00:32:56,870 15 سے 20 منٹ یا بلک طرح کے سیکشن میں باقی وقت کے 652 00:32:56,870 --> 00:32:58,360 ہیش میزیں کے بارے میں بات. 653 00:32:58,360 --> 00:33:02,590 کس طرح تم لوگوں کے بہت سے pset5 رپورٹ پڑھا ہے؟ 654 00:33:02,590 --> 00:33:03,620 ٹھیک، اچھا. 655 00:33:03,620 --> 00:33:06,160 یہ عام طور پر 50٪ سے زیادہ ہے. 656 00:33:06,160 --> 00:33:07,560 ٹھیک ہے. 657 00:33:07,560 --> 00:33:10,345 >> تم لوگوں کو دیکھیں گے تو کے طور پر، آپ pset5 میں چیلنج ہو 658 00:33:10,345 --> 00:33:16,790 ایک ڈکشنری لاگو کرنے کے لئے ہو جائے گا آپ 140،000 الفاظ پر لوڈ جہاں 659 00:33:16,790 --> 00:33:20,610 ہم اور سپیل چیک آپ کو دے کہ متن کے تمام کے خلاف. 660 00:33:20,610 --> 00:33:22,580 ہم آپ کو بے ترتیب دے دونگا ادب کے ٹکڑے. 661 00:33:22,580 --> 00:33:23,520 ہم آپ کو دے دونگا وڈسی. 662 00:33:23,520 --> 00:33:24,561 ہم آپ کو دی لیاڈ دے دونگا. 663 00:33:24,561 --> 00:33:26,350 ہم آپ آسٹن، ٹیکساس پاورس دے دونگا. 664 00:33:26,350 --> 00:33:28,220 >> اور آپ کا چیلنج ہجوں کی پڑتال کرنے کے لئے ہو جائے گا 665 00:33:28,220 --> 00:33:31,760 میں ہر ایک لفظ ان لغات کے 666 00:33:31,760 --> 00:33:34,960 بنیادی طور پر ہمارے سپیل چیکر کے ساتھ. 667 00:33:34,960 --> 00:33:38,620 اور اس طرح چند حصوں میں موجود ہے اس pset کے پیدا کرنے کے، 668 00:33:38,620 --> 00:33:41,970 سب سے پہلے آپ کیا کرنا چاہتے ہیں واقعی میں لوڈ کرنے کے قابل 669 00:33:41,970 --> 00:33:43,970 میں تمام الفاظ اپنے لغت، اور پھر آپ کو 670 00:33:43,970 --> 00:33:45,530 کرنے کے قابل بننا چاہتا ہوں ان میں سے سب کی جانچ پڑتال جادو. 671 00:33:45,530 --> 00:33:48,780 اور اس طرح کے طور پر، آپ کی ضرورت کے لئے جا رہے ہیں اس تیزی سے کر سکتے ہیں کہ ایک آنکڑا ڈھانچہ 672 00:33:48,780 --> 00:33:50,790 اور مؤثر طریقے سے اور متحرک. 673 00:33:50,790 --> 00:33:52,900 >> لہذا میں نے سب سے آسان فرض ایسا کرنے کا طریقہ، آپ 674 00:33:52,900 --> 00:33:55,010 شاید، ایک سرنی پیدا ہوں گے؟ 675 00:33:55,010 --> 00:33:58,910 سٹوریج کی سب سے آسان طریقہ آپ کو ہے 140،000 الفاظ کی ایک صف تشکیل دے سکتے ہیں 676 00:33:58,910 --> 00:34:03,400 اور صرف وہاں ان سب کی جگہ اور تو بائنری تلاش کی طرف سے ان گزرنا 677 00:34:03,400 --> 00:34:06,780 یا انتخاب کی طرف سے یا not-- معاف کیجئے گا اس چھنٹائی ہے. 678 00:34:06,780 --> 00:34:10,729 تم نے انہیں الگ الگ کرنے اور پھر انہیں گزرنا کر سکتے ہیں بائنری تلاش یا صرف لکیری تلاش کی طرف سے 679 00:34:10,729 --> 00:34:13,730 اور صرف آخری الفاظ، لیکن اس ، میموری کا ایک بہت بڑا رقم لیتا ہے 680 00:34:13,730 --> 00:34:15,190 اور یہ بہت موثر نہیں ہے. 681 00:34:15,190 --> 00:34:18,350 >> اور اس طرح ہم شروع کرنے کے لئے جا رہے ہیں بنانے کے طریقوں کے بارے میں بات 682 00:34:18,350 --> 00:34:20,110 ہماری رننگ ٹائم زیادہ موثر. 683 00:34:20,110 --> 00:34:23,190 اور ہمارے مقصد کو حاصل کرنے کے لئے ہے مسلسل وقت جہاں 684 00:34:23,190 --> 00:34:25,810 یہ تقریبا arrays کے، جہاں کی طرح ہے آپ فوری رسائی حاصل ہے. 685 00:34:25,810 --> 00:34:28,560 میں کچھ تلاش کرنے کے لئے چاہتا تھا، تو، میں صرف کرنے کے قابل بننا چاہتا ہوں 686 00:34:28,560 --> 00:34:30,810 بوم، بالکل اسے تلاش، اور اسے باہر ھیںچو. 687 00:34:30,810 --> 00:34:34,100 اور اس طرح ایک ساخت ہے جس میں ہم بہت قریب بننے دیا جائے گا 688 00:34:34,100 --> 00:34:37,569 مسلسل تک رسائی حاصل کرنے کے قابل ہو جائے وقت، اس مقدس grail 689 00:34:37,569 --> 00:34:41,370 مسلسل پروگرامنگ میں وقت ایک ہیش میز کہا جاتا ہے. 690 00:34:41,370 --> 00:34:45,370 اور داؤد پہلے ذکر [اشراوی] لیکچر میں تھوڑا سا، 691 00:34:45,370 --> 00:34:49,100 لیکن ہم سچ میں کرنے جا رہے ہیں گہری اس ہفتے میں ڈوبکی 692 00:34:49,100 --> 00:34:51,780 کے بارے میں ہے کہ ایک ٹکڑا پر کس طرح ایک ہیش میز کام. 693 00:34:51,780 --> 00:34:53,949 >> اس طرح تو ایک ہیش میز کام، مثال کے طور پر، 694 00:34:53,949 --> 00:35:00,230 میں الفاظ کا ایک گروپ ذخیرہ کرنے کے لئے کرنا چاہتا تھا تو، ایک انگریزی زبان میں الفاظ کے گروپ، 695 00:35:00,230 --> 00:35:02,940 میں نظریاتی طور پر ڈال سکتے ہیں کیلا، سیب، کیوی، آم، جوڑی، 696 00:35:02,940 --> 00:35:04,980 اور صرف ایک صف پر cantaloupe پر. 697 00:35:04,980 --> 00:35:07,044 وہ سب میں فٹ کر سکتے ہیں اور تلاش کیا. 698 00:35:07,044 --> 00:35:09,210 اس کے لئے ایک درد کی طرح ہو جائے گا اور رسائی کے ذریعے تلاش، 699 00:35:09,210 --> 00:35:12,920 لیکن ایسا کرنے کے لئے آسان طریقہ ہے ہم ایک ڈھانچہ اصل تشکیل دے سکتے ہیں 700 00:35:12,920 --> 00:35:15,680 ہم ہیش جہاں ایک ہیش میز کہا جاتا. 701 00:35:15,680 --> 00:35:19,880 ہم کے ذریعے ہمارے چابیاں کے تمام چلانے کے ایک ہیش تقریب، مساوات، 702 00:35:19,880 --> 00:35:22,600 اس میں ان سب کو دیتا ہے ایک قدر کی کسی قسم 703 00:35:22,600 --> 00:35:28,740 پھر ہم پر محفوظ کر سکتے ہیں لنک کی فہرست کے بنیادی طور پر ایک سرنی. 704 00:35:28,740 --> 00:35:32,570 >> اور اس طرح یہاں ہم چاہتے تھے تو انگریزی الفاظ ذخیرہ کرنے کے لئے، 705 00:35:32,570 --> 00:35:37,250 ہم ممکنہ طور پر صرف کر سکتے ہیں، مجھے نہیں پتہ ، جانتے ہیں کہ تمام پہلے حروف باری 706 00:35:37,250 --> 00:35:39,630 ایک بڑی تعداد کی کسی قسم میں. 707 00:35:39,630 --> 00:35:43,140 اور اس طرح، مثال کے طور پر، اگر میں چاہتا تھا ایک apple-- کے مترادف ہونا 708 00:35:43,140 --> 00:35:47,460 یا 0 کے انڈیکس کے ساتھ، اور بی، 1 کے ساتھ مترادف ہونا 709 00:35:47,460 --> 00:35:51,030 ہم 26 اندراجات کر سکتے ہیں کہ صرف محفوظ کر سکتے ہیں 710 00:35:51,030 --> 00:35:53,610 کے خط کے تمام ہم کے ساتھ شروع کریں گے کہ حروف. 711 00:35:53,610 --> 00:35:56,130 اور پھر ہم کر سکتے ہیں 0 انڈیکس میں سیب. 712 00:35:56,130 --> 00:35:59,160 ہم انڈیکس میں کیلے حاصل کر سکتے ہیں 1، 2 انڈیکس میں cantaloupe پر، 713 00:35:59,160 --> 00:36:00,540 اور تو اور تو آگے. 714 00:36:00,540 --> 00:36:04,460 اور اس طرح میں تلاش کرنے کے لئے کرنا چاہتا تھا تو میری ہیش ٹیبل اور رسائی ایپل، 715 00:36:04,460 --> 00:36:07,560 میں ایپل کے ساتھ شروع ہوتا ہے جانتے ہیں ایک ایک، اور میں بالکل پتہ 716 00:36:07,560 --> 00:36:10,860 یہ اور ہیش ضروری ہے کہ 0 انڈیکس کیونکہ میز 717 00:36:10,860 --> 00:36:13,620 تقریب کے پہلے تفویض. 718 00:36:13,620 --> 00:36:16,572 >> مجھے پتہ نہیں ہے تو، ہم ہیں ایک صارف کے پروگرام جہاں 719 00:36:16,572 --> 00:36:18,780 آپ کے ساتھ چارج کیا جائے گا منمانے نہیں arbitrarily--، 720 00:36:18,780 --> 00:36:22,530 سوچ کی کوشش کر رہے کے ساتھ اچھا مساوات کے بارے میں سوچنا 721 00:36:22,530 --> 00:36:25,460 پھیلانے کے لئے کے قابل ہو جائے آپ کی اقدار کے تمام باہر 722 00:36:25,460 --> 00:36:29,370 ایک طرح سے وہ آسانی سے تک رسائی حاصل کر سکتے ہیں اس کے بعد کے ساتھ ایک مساوات کی طرح 723 00:36:29,370 --> 00:36:31,130 تم نے اس، اپنے، جانتے ہیں. 724 00:36:31,130 --> 00:36:35,210 میں جانا چاہتا تھا تو اس معنی میں تو آم، میں اوہ، اس میٹر کے ساتھ شروع ہوتا ہے، جانتے ہیں. 725 00:36:35,210 --> 00:36:37,134 یہ 12 کے انڈیکس میں ہونا ضروری ہے. 726 00:36:37,134 --> 00:36:38,800 میں کچھ بھی کے ذریعے تلاش کرنے کی ضرورت نہیں. 727 00:36:38,800 --> 00:36:42,080 میں صرف کرنے کے لئے جا سکتے ہیں exactly-- مجھے پتہ اور 12 کے انڈیکس باہر ھیںچو. 728 00:36:42,080 --> 00:36:45,520 >> کس طرح ایک پر سب واضح ہیش کی میز کی تقریب کام کرتا ہے؟ 729 00:36:45,520 --> 00:36:48,380 یہ صرف ایک زیادہ پیچیدہ سرنی کی طرح ہے. 730 00:36:48,380 --> 00:36:50,010 یہی وجہ ہے کہ یہ سب ہے. 731 00:36:50,010 --> 00:36:51,630 ٹھیک ہے. 732 00:36:51,630 --> 00:36:57,690 >> لہذا میں ہم میں چلانے لگتا ہے اس مسئلہ کیا 733 00:36:57,690 --> 00:37:06,390 آپ ایک سے زیادہ چیزیں ہیں تو کیا ہوتا کہ آپ کو ایک ہی انڈیکس دے؟ 734 00:37:06,390 --> 00:37:10,570 تو، یہ ہمارے تقریب کا کہنا ہے کہ کیا ہے کہ پہلا خط لے گیا 735 00:37:10,570 --> 00:37:14,490 اور میں اس کی باری ہے 0 انڈیکس 25 متعلقہ. 736 00:37:14,490 --> 00:37:17,137 کہ اگر مکمل طور پر ٹھیک ہے آپ کو صرف ایک میں سے ایک ہے. 737 00:37:17,137 --> 00:37:18,970 لیکن دوسری آپ کو شروع کرنے زیادہ ہونے، تم 738 00:37:18,970 --> 00:37:20,910 ایک تصادم کہا جاتا ہے کے لئے جا. 739 00:37:20,910 --> 00:37:25,580 >> میں داخل کرنے کی کوشش کریں تو ایک ہیش میں دفن تو پہلے سے ہی اس پر کیلے ہے کہ میز، 740 00:37:25,580 --> 00:37:27,870 کیا جب ہونے جا رہا ہے آپ اس داخل کرنے کی کوشش کریں؟ 741 00:37:27,870 --> 00:37:30,930 بری چیزیں کیونکہ کیلے پہلے سے انڈیکس کے اندر موجود 742 00:37:30,930 --> 00:37:33,800 آپ کو اس میں ذخیرہ کرنے کے لئے چاہتے ہیں کہ. 743 00:37:33,800 --> 00:37:35,560 بیری قسم کی میں کیا کروں، آہ، کی طرح ہے؟ 744 00:37:35,560 --> 00:37:37,080 میں کہاں جانے کے لئے نہیں جانتے. 745 00:37:37,080 --> 00:37:38,410 میں یہ کس طرح حل کرتے ہیں؟ 746 00:37:38,410 --> 00:37:41,150 >> اور اس لئے تم لوگ گے کی قسم ہم اس مشکل بات کرتے دیکھیں 747 00:37:41,150 --> 00:37:44,810 جہاں ہم اس قسم کی اصل کر سکتے ہیں ہمارے arrays میں لنک کی فہرست تشکیل دے. 748 00:37:44,810 --> 00:37:46,840 اور اس طرح سب سے آسان طریقہ اس کے بارے میں سوچنا، 749 00:37:46,840 --> 00:37:50,830 تمام ہیش کی میز ہے ایک لنک کی فہرست کی ایک سرنی. 750 00:37:50,830 --> 00:37:55,670 اور اس طرح، اس معنی میں، آپ کو کرنا پڑے اشارہ کے اس خوبصورت سرنی، 751 00:37:55,670 --> 00:37:58,740 اور پھر ہر پوائنٹر میں اس قدر، کہ انڈیکس میں، 752 00:37:58,740 --> 00:38:00,740 اصل میں دوسری چیزوں کی طرف اشارہ کر سکتے ہیں. 753 00:38:00,740 --> 00:38:05,720 اور اس لئے تم ان تمام الگ ہے ایک بڑا صف کے دور آ رہا زنجیروں. 754 00:38:05,720 --> 00:38:07,960 >> اور اس طرح یہاں، میں تو بیری داخل کرنا چاہتا تھا، 755 00:38:07,960 --> 00:38:11,220 میں ٹھیک ہے، میں ان پٹ کے لئے جا رہا ہوں، جانتے ہیں یہ میری ہیش تقریب کے ذریعے. 756 00:38:11,220 --> 00:38:15,070 میں انڈیکس کے ساتھ ختم کرنے کے لئے جا رہا ہوں 1، اور پھر میں نے حاصل کرنے کے قابل ہو جائے کرنے کے لئے جا رہا ہوں 757 00:38:15,070 --> 00:38:20,410 اس کا صرف ایک چھوٹی اپسمچی وشال 140،000 لفظ ڈکشنری آن لائن. 758 00:38:20,410 --> 00:38:24,220 اور پھر میں دیکھ سکتے ہیں اس کے 1/26 کے ذریعے. 759 00:38:24,220 --> 00:38:27,910 >> اور تو میں صرف داخل کر سکتے ہیں سے پہلے یا بعد یا تو کیلے بیری 760 00:38:27,910 --> 00:38:28,820 اس معاملے میں؟ 761 00:38:28,820 --> 00:38:29,700 کے بعد، ٹھیک ہے؟ 762 00:38:29,700 --> 00:38:33,920 اور اس طرح آپ کرنا چاہتے ہیں جا رہے ہیں کیلے کے بعد اس نوڈ داخل، 763 00:38:33,920 --> 00:38:36,667 اور تو آپ کو شامل کرنے کے لئے جا رہے ہیں اس سے منسلک فہرست کی دم میں. 764 00:38:36,667 --> 00:38:38,500 میں واپس جا رہا ہوں یہ گزشتہ سلائڈ پر، 765 00:38:38,500 --> 00:38:40,680 تو تم لوگ کس طرح دیکھ سکتے ہیش تقریب کام کرتا ہے. 766 00:38:40,680 --> 00:38:43,980 >> تو ہیش تقریب اس مساوات ہے آپ کو آپ کی ان پٹ کی قسم چلا رہے ہیں کہ 767 00:38:43,980 --> 00:38:46,940 حاصل کرنے کے لئے جو کچھ بھی کے ذریعے انڈیکس آپ کی طرف سے وضاحت کرنا چاہتے ہیں. 768 00:38:46,940 --> 00:38:51,130 اور اس طرح، اس مثال میں، ہم سب چاہتے تھے ایسا کرنے کے لئے، سب سے پہلے خط لے گیا 769 00:38:51,130 --> 00:38:55,890 تو ہم، ایک انڈیکس میں اس کی باری ہے ہماری ہیش تقریب میں محفوظ کر سکتے ہیں. 770 00:38:55,890 --> 00:39:00,160 ہم یہاں کیا کر رہے ہیں ہم سب کر رہے ہیں پہلا خط تبدیل. 771 00:39:00,160 --> 00:39:04,770 تو keykey [0] ہے صرف پہلا خط جو سٹرنگ ہم کر رہے ہیں، 772 00:39:04,770 --> 00:39:05,720 ہم میں گزر رہے ہیں. 773 00:39:05,720 --> 00:39:09,740 ہم اوپری کرنے کے لئے اس کو تبدیل کرنے، اور کر رہے ہیں ہم بڑے A کی طرف سے تفریق کر رہے ہیں 774 00:39:09,740 --> 00:39:11,740 ایسا ہے کہ تمام ہمیں ایک نمبر دے رہا ہے 775 00:39:11,740 --> 00:39:13,670 جس میں ہم اپنی اقدار پر ہیش کر سکتے ہیں. 776 00:39:13,670 --> 00:39:16,550 >> اور پھر ہم جا رہے ہیں ہیش معامل، SIZE واپس. 777 00:39:16,550 --> 00:39:19,340 بہت، بہت ہوشیار رہو نظریاتی طور پر، یہاں، کیونکہ 778 00:39:19,340 --> 00:39:21,870 آپ ہیش قدر لامحدود ہو سکتا ہے. 779 00:39:21,870 --> 00:39:23,660 یہ صرف اور اور پر جا سکتے ہیں. 780 00:39:23,660 --> 00:39:26,080 یہ واقعی کچھ ہو سکتا ہے بہت بڑی قیمت، 781 00:39:26,080 --> 00:39:29,849 لیکن آپ ہیش ٹیبل کی وجہ سے تمہیں پیدا کیا ہے صرف 26 اشاریہ جات ہے، 782 00:39:29,849 --> 00:39:31,890 آپ بات کو یقینی بنانا چاہتے ہیں آپ modulusing تاکہ آپ 783 00:39:31,890 --> 00:39:33,848 یہ وہی ہے run-- نہیں آپ queue-- طور پر بات 784 00:39:33,848 --> 00:39:36,320 تو آپ کو چلانے کے لئے نہیں ہے کہ آپ ہیش تقریب کے سب سے نیچے. 785 00:39:36,320 --> 00:39:39,210 >> آپ کے ارد گرد اسے واپس لپیٹ کرنا چاہتے ہیں [اشراوی] جب میں اسی طرح 786 00:39:39,210 --> 00:39:41,750 آپ کو ایک بہت کی طرح تھا بہت بڑی خط، آپ 787 00:39:41,750 --> 00:39:43,740 ہے کہ نہیں کرنا چاہتا تھا صرف آخر بھاگ. 788 00:39:43,740 --> 00:39:46,948 یہاں ایک ہی بات، آپ کو یقینی بنانا چاہتے ہیں ریپنگ کی طرف سے اختتام پر بند نہیں چلا کرتا ہے 789 00:39:46,948 --> 00:39:48,330 کے ارد گرد ٹیبل کے سب سے اوپر پر. 790 00:39:48,330 --> 00:39:50,530 تو یہ صرف ایک بہت سادہ ہیش تقریب. 791 00:39:50,530 --> 00:39:56,570 کیا ہے کہ سب لے لو سب سے پہلے تھا جو کچھ بھی ہمارے ان پٹ کے خط تھا 792 00:39:56,570 --> 00:40:01,660 اور ایک انڈیکس میں اس کی باری ہے کہ ہم اپنے ہیش ٹیبل میں ڈال سکتے ہیں. 793 00:40:01,660 --> 00:40:05,450 >> جی ہاں، اور اس لئے میں نے پہلے کہا، کے طور پر ہم collisions سے حل اس طرح 794 00:40:05,450 --> 00:40:09,330 ہماری ہیش میں ٹیبل کر رہے ہیں، ہم جکڑا جانا، کیا کہتے ہیں. 795 00:40:09,330 --> 00:40:13,860 آپ ایک سے زیادہ داخل کرنے کی کوشش تو ایک ہی چیز کے ساتھ شروع ہے کہ الفاظ، 796 00:40:13,860 --> 00:40:16,145 آپ کو ایک ہیش قدر کرنے جا رہے ہیں. 797 00:40:16,145 --> 00:40:18,770 avocados کے اور سیب، آپ نے تو ہماری ہیش تقریب کے ذریعے چلانے، 798 00:40:18,770 --> 00:40:21,450 تمہیں دینے کے لئے جا رہے ہیں اسی تعداد، 0 کی تعداد. 799 00:40:21,450 --> 00:40:24,550 اور اس طرح ہم ہے حل ہم اصل میں اس قسم کی ان سے منسلک کر سکتے ہیں 800 00:40:24,550 --> 00:40:27,010 ایک دوسرے کے ساتھ منسلک کی فہرست کے ذریعے. 801 00:40:27,010 --> 00:40:29,600 >> اور اس طرح اس معنی میں، تم لوگ طرح دیکھ سکتے ہیں 802 00:40:29,600 --> 00:40:32,640 کس طرح کے اعداد و شمار کے ڈھانچے کہ ہم نے پہلے قائم کیا گیا ہے 803 00:40:32,640 --> 00:40:35,870 ایک کشمش منسلک فہرست قسم کی طرح میں سے ایک میں ایک دوسرے کے ساتھ آ سکتا ہے. 804 00:40:35,870 --> 00:40:38,860 اور پھر آپ کہیں تشکیل دے سکتے ہیں زیادہ موثر ڈیٹا ڈھانچے 805 00:40:38,860 --> 00:40:43,350 اس کی بڑی مقدار کو سنبھال سکتے ہیں اعداد و شمار، جو متحرک منحصر بازسائز 806 00:40:43,350 --> 00:40:44,870 آپ کی ضروریات پر. 807 00:40:44,870 --> 00:40:45,620 سب صاف ہے؟ 808 00:40:45,620 --> 00:40:47,580 واضح کی ہر قسم یہاں کیا ہوتا ہے پر نہیں ہیں؟ 809 00:40:47,580 --> 00:40:52,110 >> میں insert-- کرنا چاہتا تھا، تو ایک کیا ہے مجھے پتہ نہیں ہے، کے ساتھ شروع ہوتا ہے کہ پھل، 810 00:40:52,110 --> 00:40:54,726 بیری کے مقابلے میں دیگر بی،، کیلے. 811 00:40:54,726 --> 00:40:55,710 >> سامعین: بلیک بیری. 812 00:40:55,710 --> 00:40:57,910 >> ANDI پینگ: بلیک بیری، بلیک بیری. 813 00:40:57,910 --> 00:41:00,530 کہاں بلیک بیری یہاں جانا ہے؟ 814 00:41:00,530 --> 00:41:04,251 ٹھیک ہے، ہم اصل میں حل نہیں ہے یہ ابھی تک، لیکن نظریاتی طور پر 815 00:41:04,251 --> 00:41:06,250 ہم یہ ہے کرنا چاہتے تھے تو الفبائی ترتیب میں، 816 00:41:06,250 --> 00:41:07,944 کہاں جانا بلیک بیری چاہئے؟ 817 00:41:07,944 --> 00:41:09,210 >> سامعین: [اشراوی] 818 00:41:09,210 --> 00:41:11,100 >> ANDI پینگ: بالکل، یہاں کے بعد، ٹھیک ہے؟ 819 00:41:11,100 --> 00:41:14,950 لیکن یہ بہت مشکل ہے کے بعد سے reorder-- میں یہ آپ لوگوں پر منحصر ہے لگتا ہے. 820 00:41:14,950 --> 00:41:17,920 تم لوگوں کو مکمل طور پر کر سکتے ہیں تم جو چاہو لاگو. 821 00:41:17,920 --> 00:41:20,730 زیادہ موثر طریقہ شاید ایسا کرنے 822 00:41:20,730 --> 00:41:24,570 آپ لنک کو حل کرنا ہو گا الفبائی ترتیب میں فہرست، 823 00:41:24,570 --> 00:41:26,520 اور تو آپ ہیں جب چیزیں ڈالنے، آپ چاہتے ہیں 824 00:41:26,520 --> 00:41:28,632 ان میں داخل کرنے کی بات کا یقین کرنے کے لئے الفبائی ترتیب میں 825 00:41:28,632 --> 00:41:30,590 تاکہ اس کے بعد آپ جب انہیں تلاش کرنے کی کوشش کر رہے، 826 00:41:30,590 --> 00:41:32,410 آپ کو سب کچھ گزرنا کی ضرورت نہیں ہے. 827 00:41:32,410 --> 00:41:35,290 تم کہاں جانتے ہیں یہ ہے، اور یہ آسان ہے. 828 00:41:35,290 --> 00:41:39,100 >> لیکن آپ کی قسم ہے تو چیزیں، تصادفی interspersed کے 829 00:41:39,100 --> 00:41:41,420 آپ کو اب بھی کرنے جا رہے ہیں ویسے بھی اس سے گزرنا. 830 00:41:41,420 --> 00:41:44,990 اور اس طرح میں چاہتا تھا تو صرف بلیک بیری یہاں داخل 831 00:41:44,990 --> 00:41:47,470 اور میں تلاش کرنے کے لئے کرنا چاہتا تھا یہ، میں اوہ، جانتے ہیں، بلیک بیری 832 00:41:47,470 --> 00:41:52,012 1 کے انڈیکس کے ساتھ شروع، تو میں ضروری ہے جھٹ صرف 1 پر تلاش جانتے. 833 00:41:52,012 --> 00:41:53,970 اور پھر میں قسم کی کر سکتے ہیں لنک کی فہرست گزرنا 834 00:41:53,970 --> 00:41:56,120 میں بلیک بیری کو ملتا ہے جب تک، اور جی ہاں then--؟ 835 00:41:56,120 --> 00:41:59,550 >> سامعین: آپ create-- کرنے کی کوشش کر رہے ہیں یہ ایک بہت سادہ ہیش ہے جیسے مجھے لگتا ہے 836 00:41:59,550 --> 00:42:00,050 تقریب. 837 00:42:00,050 --> 00:42:02,835 اور ہمیں کیا کرنا چاہتی تھی تو اس طرح کے ایک سے زیادہ تہوں، 838 00:42:02,835 --> 00:42:05,870 ٹھیک ہے، ہم میں الگ کرنا چاہتے ہیں تمام حروف تہجی حروف کی طرح 839 00:42:05,870 --> 00:42:09,040 اور پھر ایک اور سیٹ کو پسند کرنے اس کے اندر اندر حروف تہجی حروف کی، 840 00:42:09,040 --> 00:42:11,715 ہم ایک ہیش کی طرح ڈال رہے ہیں ایک ہیش ٹیبل کے اندر کی میز، 841 00:42:11,715 --> 00:42:13,256 یا ایک تقریب کے اندر اندر ایک تقریب کی طرح؟ 842 00:42:13,256 --> 00:42:14,880 یا that-- ہے 843 00:42:14,880 --> 00:42:17,510 >> ANDI پینگ: آپ ہیش تو آپ ہیش ٹیبل function-- 844 00:42:17,510 --> 00:42:19,360 آپ یہ کرنا چاہتے ہیں کے طور پر کے طور پر بڑے ہو سکتا ہے. 845 00:42:19,360 --> 00:42:21,930 تو اس معنی میں، میں نے سوچا یہ بہت، بہت آسان تھا 846 00:42:21,930 --> 00:42:25,320 میرے لئے آسان صرف ترتیب کی بنیاد پر کرنے کے لئے پہلا لفظ کے حروف پر. 847 00:42:25,320 --> 00:42:28,690 اور اس طرح صرف 26 کے اختیارات موجود ہے. 848 00:42:28,690 --> 00:42:32,650 میں صرف 26 کے اختیارات حاصل کر سکتے ہیں 25 0 کیونکہ وہ صرف کر سکتے ہیں 849 00:42:32,650 --> 00:42:36,510 ایک سے زیڈ کے لئے شروع لیکن اگر تم چاہتے تھے ، شاید، زیادہ پیچیدگی کو شامل کرنے 850 00:42:36,510 --> 00:42:39,260 یا تیز کرنے کے لئے وقت چلائیں آپ ہیش کی میز، آپ بالکل 851 00:42:39,260 --> 00:42:40,760 کئی طرح کی باتیں کر سکتے ہیں. 852 00:42:40,760 --> 00:42:43,330 آپ کو آپ کے اپنے بنانے کے کر سکتے ہیں آپ کو دیتا ہے کہ مساوات 853 00:42:43,330 --> 00:42:48,000 میں تقسیم آپ الفاظ، تو آپ جب تلاش 854 00:42:48,000 --> 00:42:49,300 یہ تیزی سے ہو رہا ہے. 855 00:42:49,300 --> 00:42:52,100 >> یہ مکمل طور پر آپ لوگوں پر منحصر ہے تم کس طرح لاگو کرنے کے لئے چاہتے ہیں. 856 00:42:52,100 --> 00:42:55,140 صرف بالٹیاں کے طور پر اس کے بارے میں سوچو. 857 00:42:55,140 --> 00:42:57,376 میں حاصل کرنے کے لئے چاہتا تھا، تو 26 بالٹیاں، میں جا رہا ہوں 858 00:42:57,376 --> 00:42:59,420 ان بالٹیاں میں چیزوں کو حل کرنے کے لئے. 859 00:42:59,420 --> 00:43:02,980 لیکن میں نے ایک گروپ ہے جا رہا ہوں ہر ایک بالٹی میں سامان کا، 860 00:43:02,980 --> 00:43:05,890 آپ اسے بنانے کے لئے چاہتے ہیں تو تیزی اور زیادہ مؤثر، 861 00:43:05,890 --> 00:43:07,190 مجھے ایک سو بالٹیاں کرتے ہیں. 862 00:43:07,190 --> 00:43:09,290 >> لیکن اس وقت آپ کو ایک پتہ کرنا ہے وہ کر رہے ہیں تاکہ چیزوں کو حل کرنے 863 00:43:09,290 --> 00:43:11,040 مناسب بالٹی میں وہ ہونا چاہئے. 864 00:43:11,040 --> 00:43:13,331 لیکن اس وقت جب اصل میں آپ کہ بالٹی میں دیکھنا چاہتا ہوں، 865 00:43:13,331 --> 00:43:16,410 وہاں ہے کیونکہ یہ ایک بہت تیز ہے ہر ایک بالٹی میں کم چیزیں. 866 00:43:16,410 --> 00:43:20,250 اور اس طرح، جی ہاں، یہ اصل میں ہے pset5 میں تم لوگوں کے لئے چال 867 00:43:20,250 --> 00:43:22,360 آپ کو ہو جائے گا ہے صرف کی تشکیل کو چیلنج 868 00:43:22,360 --> 00:43:26,170 سب سے زیادہ موثر ہے جو کچھ ہے آپ سوچ سکتے ہیں تقریب ہو 869 00:43:26,170 --> 00:43:28,520 ذخیرہ کرنے اور ان اقدار کی جانچ پڑتال کرنے کے قابل ہو. 870 00:43:28,520 --> 00:43:30,840 >> مکمل طور پر آپ لوگوں کے لئے سائن اپ تاہم اگر آپ ایسا کرنا چاہتے ہیں، 871 00:43:30,840 --> 00:43:32,229 لیکن ہے کہ ایک بہت ہی اچھی بات ہے. 872 00:43:32,229 --> 00:43:34,520 یہ منطق کی طرح آپ کے بارے میں سوچ شروع کرنے کے لئے چاہتے ہیں 873 00:43:34,520 --> 00:43:37,236 اچھی طرح سے، میں کیوں زیادہ بالٹیاں بنانے نہیں، ہے. 874 00:43:37,236 --> 00:43:39,527 اور پھر میں نے تلاش کرنے کے لئے ہے کم چیزوں اور پھر شاید میں 875 00:43:39,527 --> 00:43:41,640 ایک مختلف ہیش تقریب ہے. 876 00:43:41,640 --> 00:43:45,500 >> جی ہاں، ایسا کرنے کے طریقوں میں سے ایک بہت کچھ ہے pset کے، کچھ دوسروں کے مقابلے میں تیزی سے ہیں. 877 00:43:45,500 --> 00:43:50,630 میں مکمل طور پر کس طرح دیکھنے کے لئے جا رہا ہوں تیزی سے سب سے تیزی سے تم لوگ گے تھا 878 00:43:50,630 --> 00:43:55,170 اپنے افعال کام کرنے کے لئے حاصل کرنے کے قابل ہو. 879 00:43:55,170 --> 00:43:58,176 ٹھیک ہے، سب اچھا chaining اور ہیش میزیں؟ 880 00:43:58,176 --> 00:44:00,800 یہ ایک بہت سادہ کی طرح اصل میں ہے آپ اس کے بارے میں سوچتے ہیں تو تصور. 881 00:44:00,800 --> 00:44:05,160 یہ سب الگ ہے جو اپنے آدانوں بالٹیاں میں ہیں، 882 00:44:05,160 --> 00:44:10,670 انہیں چھانٹ رہا ہے، اور پھر تلاش ساتھ منسلک ہے کہ فہرست. 883 00:44:10,670 --> 00:44:11,852 >> ٹھنڈا. 884 00:44:11,852 --> 00:44:18,160 ٹھیک ہے، اب ہم ایک مختلف قسم کا ہے آنکڑا ڈھانچہ کا ایک درخت کہا جاتا ہے کہ. 885 00:44:18,160 --> 00:44:20,850 کی پر جانے دو اور کوشش کرتا ہے کے بارے میں بات جو، واضح طور پر مختلف ہیں 886 00:44:20,850 --> 00:44:22,330 لیکن ایک ہی زمرے میں. 887 00:44:22,330 --> 00:44:29,010 بنیادی طور پر، سب ایک درخت بجائے ہے لکیری طریقہ میں اعداد و شمار کو منظم کرنے 888 00:44:29,010 --> 00:44:32,560 ایک ہیش ٹیبل آپ does-- کہ ، یہ ایک سب سے اوپر اور ایک نیچے مل گیا پتہ 889 00:44:32,560 --> 00:44:37,900 اور پھر آپ کی قسم اندازہ لگانے والے ایک سے دور لنک درخت، آپ کو جڑ فون جس میں ایک سب سے اوپر ہے 890 00:44:37,900 --> 00:44:40,220 اور پھر یہ سب اس کے ارد گرد پتیوں ہے. 891 00:44:40,220 --> 00:44:42,390 >> اور اس طرح تم سب یہاں ہے صرف سب سے اوپر نوڈ ہے 892 00:44:42,390 --> 00:44:45,980 کہ دوسرے نوڈس، اشارہ ہے کہ بتاتے ہیں زیادہ نوڈس، اور تو اور تو آگے. 893 00:44:45,980 --> 00:44:48,130 اور لہذا آپ کو صرف تیز شاخیں ہیں. 894 00:44:48,130 --> 00:44:53,255 یہ منظم کرنے کا صرف ایک مختلف طریقہ ہے اعداد و شمار، اور ہم نے اسے ایک درخت فون کی وجہ سے، 895 00:44:53,255 --> 00:44:56,270 تم لوگوں کو یہ صرف ہے just-- ایک درخت کی طرح نظر آتے ہیں کے لئے باہر ماڈلنگ. 896 00:44:56,270 --> 00:44:57,670 ہم درختوں یہ کہتے ہیں یہی وجہ ہے کہ. 897 00:44:57,670 --> 00:44:59,370 >> ہیش ٹیبل ایک ٹیبل کی طرح لگ رہا ہے. 898 00:44:59,370 --> 00:45:01,310 ایک پیڑ صرف ایک درخت کی طرح لگتا ہے. 899 00:45:01,310 --> 00:45:03,300 یہ سب ایک الگ ہے نوڈس کو منظم کرنے کا طریقہ 900 00:45:03,300 --> 00:45:06,020 آپ کی ضروریات کیا ہیں پر منحصر ہے. 901 00:45:06,020 --> 00:45:11,810 >> تو آپ کو ایک جڑ ہے اور تو آپ پتے. 902 00:45:11,810 --> 00:45:15,380 طریقہ ہے کہ ہم خاص طور پر کر سکتے ہیں یہ ایک بائنری درخت ہے کے بارے میں سوچنا، 903 00:45:15,380 --> 00:45:18,150 ایک بائنری درخت صرف ایک ہے ایک درخت کے مخصوص قسم 904 00:45:18,150 --> 00:45:22,450 جہاں ہر نوڈ کو صرف پوائنٹس کرنے کے لئے، زیادہ سے زیادہ پر، دیگر دو نوڈس. 905 00:45:22,450 --> 00:45:25,434 اور اس طرح یہاں آپ الگ ہے آپ کے درخت میں توازن 906 00:45:25,434 --> 00:45:28,600 کہ یہ آسان قسم کی دیکھ بھال کرنے کے لئے بناتا اہمیت کیا تو آپ کی وجہ سے ہیں 907 00:45:28,600 --> 00:45:30,150 ہمیشہ ایک بائیں یا کا حق حاصل ہے. 908 00:45:30,150 --> 00:45:33,150 سے بائیں تیسرے طرح کبھی نہیں ہے بائیں یا بائیں سے چوتھے. 909 00:45:33,150 --> 00:45:36,358 یہ آپ کو ایک بائیں اور حق ہے صرف ہے اور آپ کو ان دونوں میں سے یا تو تلاش کر سکتے ہیں. 910 00:45:36,358 --> 00:45:38,980 اور تو کیوں یہ مفید ہے؟ 911 00:45:38,980 --> 00:45:40,980 یہ ہے کہ راستہ آپ کو تلاش کر رہے ہیں تو مفید ہے 912 00:45:40,980 --> 00:45:42,890 صحیح، اقدار کے ذریعے تلاش کرنے کے لئے؟ 913 00:45:42,890 --> 00:45:45,640 بلکہ بائنری پر عمل درآمد کے مقابلے میں ایک غلطی صف میں تلاش، 914 00:45:45,640 --> 00:45:49,260 آپ نوڈ داخل کرنے کے قابل بننا چاہتا تھا تو اور اپنی مرضی سے اور بھی نوڈس دور لے 915 00:45:49,260 --> 00:45:52,185 تلاش کو محفوظ بائنری تلاش کی صلاحیتوں. 916 00:45:52,185 --> 00:45:54,560 تو اس طرح میں، ہم اس قسم کی ہیں جب ہم یاد tricking-- 917 00:45:54,560 --> 00:45:56,530 منسلک کی فہرست بائنری تلاش نہیں کر سکتے ہیں ہے؟ 918 00:45:56,530 --> 00:46:01,700 ہم اس قسم کی ایک آنکڑا ڈھانچہ پیدا کر رہے ہیں ترکیبیں کام میں ہے کہ. 919 00:46:01,700 --> 00:46:05,034 >> اور اس کی وجہ سے منسلک کی فہرست، لکیری ہیں وہ صرف ایک کے بعد ایک سے منسلک. 920 00:46:05,034 --> 00:46:06,950 ہم اس قسم کی کر سکتے ہیں اشارہ کی مختلف قسم 921 00:46:06,950 --> 00:46:09,408 مختلف نوڈس اس نقطہ کہ تلاش کے ساتھ مدد کر سکتے ہیں. 922 00:46:09,408 --> 00:46:12,590 اور اس طرح یہاں، تو میں چاہتا تھا ایک بائنری تلاش درخت ہے، 923 00:46:12,590 --> 00:46:14,090 مجھے معلوم ہے میری وسط 55 تو. 924 00:46:14,090 --> 00:46:18,280 میں صرف اس بنانے کے لئے جا رہا ہوں میرے وسط کے طور پر، میری جڑ کے طور پر، 925 00:46:18,280 --> 00:46:20,770 اور پھر میں جا رہا ہوں اقدار اس سے دور سنانا. 926 00:46:20,770 --> 00:46:25,610 >> تو یہاں، میں نے کے لئے تلاش کرنے کے لئے جا رہا ہوں تو 66 کی قیمت میں 55 سے شروع کر سکتے ہیں. 927 00:46:25,610 --> 00:46:27,310 یہ 55 سے 66 سے زیادہ ہے؟ 928 00:46:27,310 --> 00:46:30,970 جی ہاں یہ ہے، تو میں نے تلاش قرآن جانتے میں (ن) اس درخت کے دائیں پوائنٹر. 929 00:46:30,970 --> 00:46:32,440 میں 77 کرنے کے لئے جانا. 930 00:46:32,440 --> 00:46:35,367 ٹھیک ہے، سے کم یا 77 سے زیادہ 66 ہے؟ 931 00:46:35,367 --> 00:46:37,950 اوہ، اس سے کم ہے، تو آپ کو معلوم ہے، کہ بائیں نوڈ ہونا ضروری ہے. 932 00:46:37,950 --> 00:46:41,410 >> اور اس طرح یہاں ہم اس قسم کے تحفظ کر رہے ہیں arrays کے بارے میں عظیم چیزوں میں سے سب، 933 00:46:41,410 --> 00:46:44,420 تو متحرک نیا سائز کی طرح اشیاء کی، کیا جا رہا ہے 934 00:46:44,420 --> 00:46:49,530 داخل کریں اور اپنی مرضی سے حذف کرنے کے قابل، فکسڈ کے بارے میں فکر کرنے کی بغیر 935 00:46:49,530 --> 00:46:50,370 جگہ کی رقم. 936 00:46:50,370 --> 00:46:52,820 ہم اب بھی تمام کے تحفظ ان حیرت انگیز چیزیں 937 00:46:52,820 --> 00:46:57,140 بھی محفوظ کرنے کے قابل کیا جا رہا ہے جبکہ لاگ ان کریں اور بائنری تلاش کے وقت تلاش 938 00:46:57,140 --> 00:47:00,450 ہم پہلے صرف تھے کہ ایک جملہ حاصل کرنے کے قابل. 939 00:47:00,450 --> 00:47:06,310 >> ٹھنڈی آنکڑا ڈھانچہ، قسم کی پیچیدہ، نوڈ لاگو کرنے کے لئے. 940 00:47:06,310 --> 00:47:08,311 آپ کو یہ سب دیکھ سکتے ہیں نوڈ کے struct ہے 941 00:47:08,311 --> 00:47:10,143 آپ کو ایک بائیں ہے اور ایک صحیح پوائنٹر. 942 00:47:10,143 --> 00:47:11,044 یہی وجہ ہے کہ یہ سب ہے. 943 00:47:11,044 --> 00:47:12,960 تو بجائے صرف مقابلے ایک ایکس یا سابقہ ​​ہونے. 944 00:47:12,960 --> 00:47:15,920 اس کے بعد آپ ایک بائیں یا ایک حق ہے، اور آپ کی قسم کے ان کے ساتھ منسلک کر سکتے ہیں 945 00:47:15,920 --> 00:47:16,836 تاہم اگر آپ ایسا کریں. 946 00:47:16,836 --> 00:47:21,080 947 00:47:21,080 --> 00:47:24,270 >> ٹھیک ہے، ہم اصل میں جا رہے ہیں صرف چند منٹ لے. 948 00:47:24,270 --> 00:47:25,790 تو ہم یہاں واپس جانے کے لئے جا رہے ہیں. 949 00:47:25,790 --> 00:47:28,270 میں نے پہلے کہا کہ، میں اس قسم کی وضاحت 950 00:47:28,270 --> 00:47:31,520 ہم کس طرح پیچھے منطق اس کے ذریعے تلاش کریں گے. 951 00:47:31,520 --> 00:47:33,860 ہم کوشش کرنے جا رہے ہیں اس سے باہر pseudocoding کو دیکھنے کے لئے 952 00:47:33,860 --> 00:47:38,000 ہم اس قسم کی درخواست دے سکتے ہیں تو بائنری تلاش کے اسی منطق 953 00:47:38,000 --> 00:47:40,055 آنکڑا ڈھانچہ کی ایک مختلف قسم کے. 954 00:47:40,055 --> 00:47:45,049 تم لوگوں کو ایک جوڑے کی طرح لینے کے لئے چاہتے ہیں، تو منٹ صرف اس کے بارے میں سوچنا. 955 00:47:45,049 --> 00:48:45,927 956 00:48:45,927 --> 00:48:46,925 ٹھیک ہے. 957 00:48:46,925 --> 00:48:51,407 ٹھیک ہے، میں جا رہا ہوں اصل میں صرف آپ کو کوئی the-- دے، 958 00:48:51,407 --> 00:48:52,990 ہم سب سے پہلے pseudocode کے بارے میں بات کریں گے. 959 00:48:52,990 --> 00:48:56,580 تو کسی کو چاہتا ہے میں ایک کوشش دینے کے لئے کیا 960 00:48:56,580 --> 00:49:02,100 جب آپ کرنا چاہتے ہیں سب سے پہلی چیز آپ کو تلاش ہے باہر شروع کر رہے ہیں؟ 961 00:49:02,100 --> 00:49:04,460 ہم کے لئے تلاش کر رہے ہیں 66 کی قیمت، کیا ہے 962 00:49:04,460 --> 00:49:07,940 اگر ہم کرنا چاہتے ہیں سب سے پہلی چیز ہم اس درخت کو تلاش بائنری کرنا چاہتے ہیں؟ 963 00:49:07,940 --> 00:49:10,760 >> سامعین: تم نے صحیح دیکھنا چاہتا ہوں اور [اشراوی] بائیں طرف دیکھو اور دیکھیں 964 00:49:10,760 --> 00:49:11,230 زیادہ سے زیادہ تعداد. 965 00:49:11,230 --> 00:49:12,271 >> ANDI پینگ: جی ہاں، بالکل. 966 00:49:12,271 --> 00:49:15,350 تو آپ کو آپ کی جڑ کو دیکھنے کے لئے جا رہے ہیں. 967 00:49:15,350 --> 00:49:18,180 آپ کو فون کر سکتے ہیں طریقوں کے بہت سے ہے یہ، اپنے والدین کی نوڈ لوگ کہتے ہیں. 968 00:49:18,180 --> 00:49:21,317 میں کیونکہ جڑ کہنا چاہوں اس درخت کی جڑ کی طرح ہے. 969 00:49:21,317 --> 00:49:23,400 آپ کو دیکھنے کے لئے جا رہے ہیں آپ کی جڑ نوڈ، اور تم 970 00:49:23,400 --> 00:49:26,940 دیکھنے کے لئے جا 66 سے بڑھ کر ہے زیادہ یا کم 55. 971 00:49:26,940 --> 00:49:30,360 اور یہ اچھی طرح، یہ ہے، کے مقابلے میں زیادہ ہے تو سے زیادہ، جہاں ہم کو دیکھنے کے لئے چاہتے ہیں؟ 972 00:49:30,360 --> 00:49:32,000 ہم کہاں ٹھیک ہے، اب تلاش کرنے کے لئے چاہتے ہیں؟ 973 00:49:32,000 --> 00:49:34,340 ہم تلاش کرنا چاہتے ہیں اس درخت کی دائیں نصف. 974 00:49:34,340 --> 00:49:38,390 >> تو ہم، آسانی، ایک حق کی طرف اشارہ ہے کہ پوائنٹر. 975 00:49:38,390 --> 00:49:44,325 اور تو ہم مقرر کر سکتے ہیں ہمارے نئے جڑ 77 ہونا. 976 00:49:44,325 --> 00:49:46,450 ہم صرف جہاں پر جا سکتے ہیں پوائنٹر اشارہ کر رہا ہے. 977 00:49:46,450 --> 00:49:49,100 ویسے، اوہ، ہم یہاں شروع کر رہے ہیں 77 میں، اور ہم صرف کر سکتے ہیں 978 00:49:49,100 --> 00:49:51,172 تکراری طور پر بار بار یہ کرتے ہیں. 979 00:49:51,172 --> 00:49:52,880 اس طرح میں، آپ کی قسم کی ایک تقریب ہے. 980 00:49:52,880 --> 00:49:57,430 آپ اس تلاش کا ایک طریقہ ہے صرف اور اس سے زیادہ اور اس سے زیادہ سے زیادہ دوبارہ کر سکتے ہیں، 981 00:49:57,430 --> 00:50:02,720 آپ کو دیکھنے کے لئے چاہتے ہیں، جہاں پر منحصر ہے آپ کو آخر میں قیمت پر ملتا ہے جب تک 982 00:50:02,720 --> 00:50:04,730 آپ کے لئے تلاش کر رہے ہیں کہ. 983 00:50:04,730 --> 00:50:05,230 کوئی مطلب ہے؟ 984 00:50:05,230 --> 00:50:07,800 >> میں آپ کو اصل ظاہر کرنے کے لئے کے بارے میں ہوں کوڈ، اور یہ کوڈ کا ایک بہت ہے. 985 00:50:07,800 --> 00:50:08,674 کوئی ضرورت نہیں ہے باہر پاگل کرنے. 986 00:50:08,674 --> 00:50:09,910 ہم اس کے ذریعے بات کریں گے. 987 00:50:09,910 --> 00:50:13,410 988 00:50:13,410 --> 00:50:14,020 >> اصل میں، کوئی. 989 00:50:14,020 --> 00:50:15,061 یہ صرف pseudocode کے تھا. 990 00:50:15,061 --> 00:50:17,860 ٹھیک ہے، کہ صرف pseudocode کے، تھا جس میں تھوڑا سا پیچیدہ ہے، 991 00:50:17,860 --> 00:50:19,751 لیکن یہ مکمل طور پر ٹھیک ہے. 992 00:50:19,751 --> 00:50:21,000 یہاں ہر کوئی ساتھ مندرجہ ذیل؟ 993 00:50:21,000 --> 00:50:24,260 جڑ شہوت انگیز null ہے تو واپسی جھوٹے مطلب ہے کیونکہ 994 00:50:24,260 --> 00:50:26,850 تم وہاں کچھ بھی نہیں ہے. 995 00:50:26,850 --> 00:50:31,376 >> جڑ ن تو قیمت، ہے تو یہ آپ دیکھ رہے ہیں سے ایک ہوتا ہے، 996 00:50:31,376 --> 00:50:34,000 تو آپ کو سچ واپس جا رہے ہیں آپ کو معلوم ہے کیونکہ آپ کو یہ پتہ چلا. 997 00:50:34,000 --> 00:50:36,250 لیکن قیمت کم ہے تو (ن) کے جڑ سے، تم 998 00:50:36,250 --> 00:50:38,332 بائیں تلاش کرنے جا بچے یا بائیں پتی، 999 00:50:38,332 --> 00:50:39,540 آپ اسے فون کرنا چاہتے ہیں جو کچھ. 1000 00:50:39,540 --> 00:50:41,750 اور قدر جڑ سے بڑا ہے، آپ صحیح درخت تلاش کرنے کے لئے جا رہے ہیں، 1001 00:50:41,750 --> 00:50:44,610 اس کے بعد صرف تقریب چلانے تلاش ذریعے ایک بار پھر. 1002 00:50:44,610 --> 00:50:48,037 >> اور جڑ، شہوت انگیز null ہے کہ اگر آپ کو آخر تک پہنچ گئے ہیں کا مطلب ہے؟ 1003 00:50:48,037 --> 00:50:50,120 یہ کوئی آپ کا مطلب ہے مزید پتے تلاش کرنے کے لئے، 1004 00:50:50,120 --> 00:50:52,230 پھر میں، اوہ، جانتے ہیں یہاں میں نہیں ہے لگتا ہے 1005 00:50:52,230 --> 00:50:55,063 میں کے ذریعے دیکھا ہے کیونکہ بعد اور یہ یہاں نہیں ہے پوری بات، 1006 00:50:55,063 --> 00:50:56,930 یہ صرف یہاں نہیں ہو سکتا ہے. 1007 00:50:56,930 --> 00:50:58,350 >> کہ سب کو احساس ہے؟ 1008 00:50:58,350 --> 00:51:03,230 تو یہ تحفظ بائنری تلاش کی طرح ہے لنک کی فہرست کی صلاحیتوں. 1009 00:51:03,230 --> 00:51:09,200 ٹھنڈا، اور تو دوسری قسم آنکڑا ڈھانچہ تم لوگوں کے 1010 00:51:09,200 --> 00:51:13,180 اپنے pset پر عمل درآمد کی کوشش کر سکتے، آپ کو صرف ایک طریقہ منتخب کرنے کے لئے ہے. 1011 00:51:13,180 --> 00:51:19,430 لیکن شاید ایک متبادل طریقہ کرنے کے لئے ہیش میز ہم ایک trie کیا کہتے ہیں. 1012 00:51:19,430 --> 00:51:24,080 >> تمام ایک trie ہے درخت کے مخصوص قسم ہے کہ 1013 00:51:24,080 --> 00:51:28,600 دیگر اقدار لئے جانا ہے کہ اقدار ہے. 1014 00:51:28,600 --> 00:51:31,450 تو بجائے ایک بائنری ہونے معنوں میں صرف ایک درخت ہے کہ 1015 00:51:31,450 --> 00:51:35,940 بات دو کی طرف اشارہ کر سکتے ہیں، آپ کر سکتے ہیں بہت سے، بہت سی چیزیں کے لئے ایک بات نقطہ. 1016 00:51:35,940 --> 00:51:39,450 آپ بنیادی طور پر arrays ہے جس کا تمہیں سٹور کے اندر 1017 00:51:39,450 --> 00:51:41,790 دیگر arrays کے کی طرف اشارہ ہے کہ اشارہ. 1018 00:51:41,790 --> 00:51:45,210 1019 00:51:45,210 --> 00:51:49,460 >> تو ہم کس طرح کی نوڈ ایک trie کی وضاحت کریں گے 1020 00:51:49,460 --> 00:51:52,590 ہم نے ایک حاصل کرنے کے لئے چاہتے ہیں بولین، سی لفظ، ٹھیک ہے؟ 1021 00:51:52,590 --> 00:51:54,920 تو نوڈ بولین ہے ، صحیح یا غلط کی طرح 1022 00:51:54,920 --> 00:51:58,490 کے سر پر سب سے پہلے اس صف، اس ایک لفظ ہے؟ 1023 00:51:58,490 --> 00:52:03,620 دوم، آپ کو اشارہ کرنا چاہتے ہیں جو کچھ بھی ان میں سے باقی ہیں. 1024 00:52:03,620 --> 00:52:07,470 تھوڑا سا پیچیدہ، تھوڑا سا خلاصہ، لیکن مجھے کیا ہے کہ تمام ذرائع کی وضاحت کرے گا. 1025 00:52:07,470 --> 00:52:13,800 >> تو یہاں، سب سے اوپر، اگر آپ ایک سرنی پہلے ہی اعلان کر دیا ہے، 1026 00:52:13,800 --> 00:52:17,040 آپ کو ایک بولین ہے جہاں ایک نوڈ سامنے میں ذخیرہ قدر 1027 00:52:17,040 --> 00:52:19,490 کہ آپ کو اس ایک لفظ ہے بتاتا ہے؟ 1028 00:52:19,490 --> 00:52:20,520 یہ ایک لفظ ہے؟ 1029 00:52:20,520 --> 00:52:23,240 اور پھر آپ کے پاس اپنے صف کی باقی ہے کہ 1030 00:52:23,240 --> 00:52:26,040 اصل میں ذخیرہ تمام یہ ہو سکتا ہے کے امکانات. 1031 00:52:26,040 --> 00:52:28,660 تو، مثال کے طور پر، کی طرح سب سے اوپر آپ کو کرنا پڑے 1032 00:52:28,660 --> 00:52:32,140 صحیح یا کا کہنا ہے کہ سب سے پہلی چیز جھوٹے، ہاں یا نہیں، یہ ایک لفظ ہے. 1033 00:52:32,140 --> 00:52:38,130 >> اور پھر آپ کے ذریعے 26 0 ہے آپ کو محفوظ کر سکتے ہیں حروف. 1034 00:52:38,130 --> 00:52:42,790 میں یہاں تلاش کرنے کے لئے چاہتا تھا، تو بیٹ کے لئے، میں سب سے اوپر کرنے کے لئے جانا 1035 00:52:42,790 --> 00:52:49,200 اور مجھے میں B مل بی لئے نظر آتے ہیں میرے صف، اور تو مجھے معلوم ہے، ٹھیک ہے، بی ایک لفظ ہے؟ 1036 00:52:49,200 --> 00:52:53,010 بی تو اس طرح، ایک لفظ نہیں ہے میں تلاش رکھنا چاہیے. 1037 00:52:53,010 --> 00:52:56,410 میں B کی طرف سے جانا، اور میں نظر آتے ہیں بی کی طرف اشارہ ہے کہ پوائنٹر 1038 00:52:56,410 --> 00:53:00,900 اور میں، کے بارے میں معلومات کی ایک سرنی دیکھیں ہم سے پہلے تھا کہ ایک ہی ساخت. 1039 00:53:00,900 --> 00:53:05,240 >> اور، اوہ اگلے یہاں [اشراوی] میں خط A. ہے 1040 00:53:05,240 --> 00:53:07,210 تو ہم اس صف میں نظر آتے ہیں. 1041 00:53:07,210 --> 00:53:10,860 ہم آٹھویں قدر کو تلاش، اور پھر ہم، اوہ، دیکھنے کے لئے نظر 1042 00:53:10,860 --> 00:53:12,840 ارے، ایک لفظ، بی ایک ایک لفظ ہے؟ 1043 00:53:12,840 --> 00:53:13,807 یہ ایک لفظ نہیں ہے. 1044 00:53:13,807 --> 00:53:14,890 ہم تلاش کر رہے رکھنے کے لئے ہے. 1045 00:53:14,890 --> 00:53:17,850 >> اور تو ہم کہاں پر نظر آتے ہیں پوائنٹس کے پوائنٹر، 1046 00:53:17,850 --> 00:53:21,130 اور یہ کسی دوسرے طریقے سے کی طرف اشارہ ہے جس میں ہم زیادہ سے زیادہ قیمت ذخیرہ ہے. 1047 00:53:21,130 --> 00:53:24,150 اور آخر میں، ہم نے حاصل کرنے کے لئے ایک لفظ ہے جس میں بی-اے-ٹی،. 1048 00:53:24,150 --> 00:53:25,970 اور تو اگلی بار آپ کو نظر آتے، تم جا رہے ہو 1049 00:53:25,970 --> 00:53:30,850 جی ہاں، یہ چیک کرنے کے لئے، یہ بولین تقریب سچ ہے. 1050 00:53:30,850 --> 00:53:35,450 اور اس معنی میں ہم اچھے ہو کی arrays کے ساتھ ایک درخت ہونے. 1051 00:53:35,450 --> 00:53:39,890 >> تو پھر آپ کو اس قسم کے نیچے تلاش کر سکتے ہیں. 1052 00:53:39,890 --> 00:53:43,650 بلکہ ایک تقریب hashing کے مقابلے میں لنک کی فہرست کی طرف سے اقدار بتائے، 1053 00:53:43,650 --> 00:53:49,190 آپ کو صرف ایک پر عمل درآمد کر سکتے ہیں downwords تلاش ہے کہ trie کے. 1054 00:53:49,190 --> 00:53:50,850 واقعی، واقعی چیزیں پیچیدہ. 1055 00:53:50,850 --> 00:53:54,060 میں کی طرح ہوں کیونکہ کے بارے میں سوچنے کے لئے آسان نہیں اتنے ڈیٹا ڈھانچے باہر توکنا 1056 00:53:54,060 --> 00:53:58,710 تم پر، لیکن قسم کی ہر کوئی کرتا ہے اس کی منطق کیسے کام کرتا ہے کو سمجھنے؟ 1057 00:53:58,710 --> 00:54:01,920 >> ٹھنڈا، ٹھیک ہے. 1058 00:54:01,920 --> 00:54:05,600 تو ب-اے-ٹی، اور پھر آپ کو تلاش کرنے کے لئے جا رہے ہیں. 1059 00:54:05,600 --> 00:54:07,940 تم جا رہے ہو اگلی بار اوہ، ارے، یہ سچ ہے، کو دیکھنے کے لئے، 1060 00:54:07,940 --> 00:54:09,273 اس طرح میں نے اس ایک لفظ ہونا ضروری ہے جانتے ہیں. 1061 00:54:09,273 --> 00:54:12,030 1062 00:54:12,030 --> 00:54:13,770 >> چڑیا گھر کے لئے ایک ہی بات. 1063 00:54:13,770 --> 00:54:17,960 تو یہاں بات تو صحیح اب ہم اب، چڑیا گھر کے لئے تلاش کرنے کے لئے کرنا چاہتا تھا، 1064 00:54:17,960 --> 00:54:20,780 فی الحال چڑیاگھر ایک نہیں ہے ہماری لغت میں لفظ 1065 00:54:20,780 --> 00:54:25,300 ، کیونکہ تم لوگ، دیکھ سکتے ہیں کے طور پر ہم نے ایک بولین ہے کہ پہلی جگہ 1066 00:54:25,300 --> 00:54:28,590 سچ واپس زوم کے آخر میں ہے. 1067 00:54:28,590 --> 00:54:30,430 ہم Z-اے-اے-ایم ہے. 1068 00:54:30,430 --> 00:54:33,900 >> اور اس طرح یہاں، ہم اصل میں نہیں ہے ہماری لغت میں لفظ، چڑیا گھر، 1069 00:54:33,900 --> 00:54:36,070 یہ چیک باکس کی جانچ پڑتال نہیں ہے کیونکہ. 1070 00:54:36,070 --> 00:54:39,540 تو کمپیوٹر نہیں کرتا چڑیا گھر ایک لفظ ہے جانتے ہیں کہ 1071 00:54:39,540 --> 00:54:42,430 کیونکہ ہم نے اس طرح صرف ایک زوم یہاں، یہ ذخیرہ 1072 00:54:42,430 --> 00:54:44,920 اصل میں ایک بولین قدر ہے سچ ہے کہ تبدیل کر دیا گیا ہے. 1073 00:54:44,920 --> 00:54:49,380 ہم داخل کرنا چاہتے ہیں تو لفظ، چڑیا گھر، ہماری لغت میں، 1074 00:54:49,380 --> 00:54:51,770 ہم یہ ہے کہ ایسا کیسے جائیں گے؟ 1075 00:54:51,770 --> 00:54:55,960 ہمیں یقین ہے کہ بنانے کے لئے کیا کرنا ہے ہمارے کمپیوٹر Z O-اے ایک لفظ ہے کہ جانتا ہے 1076 00:54:55,960 --> 00:54:58,130 اور پہلا لفظ Z-اے-اے-ایم ہے؟ 1077 00:54:58,130 --> 00:54:59,360 >> سامعین: [اشراوی] 1078 00:54:59,360 --> 00:55:01,450 >> ANDI پینگ: بالکل، ہم یہ اس بات کو یقینی بنانا چاہتے ہیں 1079 00:55:01,450 --> 00:55:07,890 یہاں، کہ بولین قدر ہے یہ سچ ہے کہ جانچ پڑتال. 1080 00:55:07,890 --> 00:55:13,297 Z-اے-اے، پھر ہم اس کی جانچ پڑتال کرنے کے لئے جا رہے ہیں، تو ہم بالکل، ارے، چڑیاگھر ایک لفظ ہے. 1081 00:55:13,297 --> 00:55:15,380 میں بتانے جا رہا ہوں یہ ایک لفظ تو ہے کہ کمپیوٹر 1082 00:55:15,380 --> 00:55:18,000 ، جب کمپیوٹر چیک کرتا ہے کہ زو ایک لفظ ہے کہ جانتا ہے. 1083 00:55:18,000 --> 00:55:21,269 >> تمام ان اعداد و شمار یاد ہے کیونکہ ڈھانچے، یہ ہمارے لئے بہت آسان ہے 1084 00:55:21,269 --> 00:55:22,310 اوہ، بیٹ ایک لفظ ہے، کا کہنا ہے کہ. 1085 00:55:22,310 --> 00:55:22,851 چڑیاگھر ایک لفظ ہے. 1086 00:55:22,851 --> 00:55:23,611 زوم ایک لفظ ہے. 1087 00:55:23,611 --> 00:55:25,860 لیکن آپ کو اس کی تعمیر کر رہے ہیں جب، کمپیوٹر کوئی اندازہ نہیں ہے. 1088 00:55:25,860 --> 00:55:28,619 >> تو تم بالکل یہ بتانے کے لئے ہے کس موڑ پر یہ ایک لفظ ہے؟ 1089 00:55:28,619 --> 00:55:29,910 کس وقت یہ ایک لفظ نہیں ہے؟ 1090 00:55:29,910 --> 00:55:31,784 اور کس وقت مجھے کیا کرنا ہے چیزیں تلاش کرنے کی ضرورت، 1091 00:55:31,784 --> 00:55:34,000 اور کیا وقت میں اگلے جانے کے لئے کی ضرورت ہے؟ 1092 00:55:34,000 --> 00:55:37,010 اس کا واضح ہر کوئی؟ 1093 00:55:37,010 --> 00:55:39,540 ٹھنڈا. 1094 00:55:39,540 --> 00:55:42,530 >> اور تو آتا ہے کا مسئلہ ہم کس طرح کریں گے 1095 00:55:42,530 --> 00:55:45,560 کچھ ڈالنے کے بارے میں جانا کہ اصل میں نہیں ہے؟ 1096 00:55:45,560 --> 00:55:49,090 تو ہم داخل کرنا چاہتے ہیں کا کہنا ہے کہ ہمارے trie کے میں لفظ، غسل،. 1097 00:55:49,090 --> 00:55:53,589 تم لوگوں کو اس وقت کی طرح دیکھ سکتے ہیں کے طور پر اب ہم تمام، بی-اے-ٹی ہے 1098 00:55:53,589 --> 00:55:55,630 اور اس نئے آنکڑا ڈھانچہ ایک پنٹ وہاں تھا کہ 1099 00:55:55,630 --> 00:55:59,740 ہم فرض کیونکہ شہوت انگیز null کی طرف اشارہ اوہ، بی-اے-ٹی کے بعد کوئی الفاظ نہیں ہے، کہ، 1100 00:55:59,740 --> 00:56:02,530 ہم کیوں رکھنے کے لئے کی ضرورت ہے کہ ٹی کے بعد چیزیں 1101 00:56:02,530 --> 00:56:06,581 >> ہم اگر آپ ایسا کرتے لیکن مسئلہ پیدا ہوتا ہے کے بعد آتا ہے کہ ایک لفظ ہے کرنا چاہتے ہیں 1102 00:56:06,581 --> 00:56:07,080 T کی. 1103 00:56:07,080 --> 00:56:09,500 آپ کو غسل ہے، تو آپ ہیں ایک H صحیح کرنا چاہتے ہیں جا. 1104 00:56:09,500 --> 00:56:13,290 اور اس طرح ہم ایسا کرنے کے لئے جا رہے ہیں طریقہ ہے ہم نے ایک علیحدہ نوڈ بنانے کے لئے جا رہے ہیں. 1105 00:56:13,290 --> 00:56:16,840 ہم جو بھی رقم مختص نہیں کر رہے ہیں اس نئی صف کے لئے میموری کی، 1106 00:56:16,840 --> 00:56:20,720 اور ہم اشارہ میں reassign کرنے جا رہے ہیں. 1107 00:56:20,720 --> 00:56:22,947 >> ہم تفویض کرنے جا رہے ہیں ایچ، سب سے پہلے، اس شہوت انگیز null، 1108 00:56:22,947 --> 00:56:24,030 ہم میں سے چھٹکارا حاصل کرنے کے لئے جا رہے ہیں. 1109 00:56:24,030 --> 00:56:26,590 ہم جا رہے ہیں ایچ نقطہ نیچے. 1110 00:56:26,590 --> 00:56:30,600 ہم ایک H دیکھیں تو، ہم یہ چاہتے ہیں کہیں اور جانے کے لئے. 1111 00:56:30,600 --> 00:56:33,910 >> یہاں، ہم تو جی ہاں کی جانچ پڑتال کر سکتے ہیں. 1112 00:56:33,910 --> 00:56:38,170 ہم ٹی کے بعد ایک H مارا، اوہ، تو ہم نے اس ایک لفظ ہے جانتے ہیں کہ. 1113 00:56:38,170 --> 00:56:41,110 بولین سچ واپس جا رہا ہے. 1114 00:56:41,110 --> 00:56:42,950 ہر کوئی اس کیسے ہوا پر واضح؟ 1115 00:56:42,950 --> 00:56:45,110 ٹھیک ہے. 1116 00:56:45,110 --> 00:56:47,214 >> تو بنیادی طور پر، سب سے ان اعداد و شمار ڈھانچے 1117 00:56:47,214 --> 00:56:50,130 آج ہم ختم ہو گیا ہے کہ، میں نے واقعی، واقعی بہت تیزی سے ان پر چلے گئے 1118 00:56:50,130 --> 00:56:52,192 اور بہت کچھ نہیں میں تفصیل سے، اور یہ ٹھیک ہے. 1119 00:56:52,192 --> 00:56:53,900 آپ الجھ شروع کرنے کے بعد اس کے ساتھ، آپ کو ہو جائے گا 1120 00:56:53,900 --> 00:56:55,733 جہاں کے ٹریک کو مدنظر رکھتے ہوئے تمام اشارہ، ہیں 1121 00:56:55,733 --> 00:56:58,060 کیا ہو رہا ہے آپ ڈیٹا ڈھانچے، وغیرہ. 1122 00:56:58,060 --> 00:56:59,810 وہ، بہت مفید ہو جائے گا اور یہ آپ پر منحصر ہے 1123 00:56:59,810 --> 00:57:03,890 لوگ مکمل طور پر کس طرح پتہ کرنے آپ چیزوں کو لاگو کرنا چاہتے ہیں. 1124 00:57:03,890 --> 00:57:07,650 >> اور اس طرح pset4 کے 5-- اوہ، جو کہ غلط ہے. 1125 00:57:07,650 --> 00:57:10,140 Pset5 غلط ہجے ہے. 1126 00:57:10,140 --> 00:57:13,710 میں نے پہلے کہا، آپ کو ایک بار، کے لئے جا رہے ہیں ایک بار پھر، ہم سے منبع کوڈ ڈاؤن لوڈ، اتارنا. 1127 00:57:13,710 --> 00:57:16,210 تین اہم ہونے جا رہا ہے چیزیں آپ کو ڈاؤن لوڈ کیا جائے گا. 1128 00:57:16,210 --> 00:57:18,470 تم، لغات ڈاؤن لوڈ کریں گے KERS، اور نصوص. 1129 00:57:18,470 --> 00:57:21,660 >> ان تمام چیزوں ہیں تو الفاظ کی لغات 1130 00:57:21,660 --> 00:57:25,190 ہم آپ کی جانچ کرنا چاہتے ہیں کہ یا معلومات کے ٹیسٹ 1131 00:57:25,190 --> 00:57:26,930 ہم آپ کو چیک جادو کرنا چاہتے ہیں. 1132 00:57:26,930 --> 00:57:29,670 اور اس طرح لغات ہم جا رہے ہیں دے 1133 00:57:29,670 --> 00:57:34,870 آپ کو ہم چاہتے ہیں کہ اصل الفاظ دینے کے لئے تم ایک طریقہ ہے کہ میں کسی نہ کسی طرح محفوظ کرنے کے لئے 1134 00:57:34,870 --> 00:57:36,530 ایک سرنی سے زیادہ موثر. 1135 00:57:36,530 --> 00:57:38,470 اور پھر نصوص ہم ہیں کیا جا رہا 1136 00:57:38,470 --> 00:57:43,900 تم سے پوچھ بات کو یقینی بنانے کے لئے جانچ پڑتال ہجے کرنا الفاظ کی تمام حقیقی الفاظ ہیں. 1137 00:57:43,900 --> 00:57:47,970 >> اور تین بلاکس ہم آپ کو دے گا کہ پروگرام 1138 00:57:47,970 --> 00:57:51,130 کہا جاتا dictionary.c ہیں، dictionary.h، اور speller.c. 1139 00:57:51,130 --> 00:57:56,500 اور اس طرح تمام dictionary.c ہے کیا آپ کو لاگو کرنے کے لئے کہا رہے ہیں. 1140 00:57:56,500 --> 00:57:57,880 یہ الفاظ بوجھ. 1141 00:57:57,880 --> 00:58:02,000 یہ چیک ان جادو، اور اس بات کو یقینی بناتا کہ سب کچھ مناسب طریقے سے ڈالا جاتا ہے. 1142 00:58:02,000 --> 00:58:05,180 >> diction.h صرف ایک لائبریری فائل ہے کہ ان تمام افعال کا اعلان. 1143 00:58:05,180 --> 00:58:07,650 اور speller.c، ہم آپ کو دینے کے لئے جا رہے ہیں. 1144 00:58:07,650 --> 00:58:09,290 تم اس کے کسی بھی نظر ثانی کرنے کی ضرورت نہیں. 1145 00:58:09,290 --> 00:58:14,290 تمام speller.c ہے کہ لگتا ہے، بوجھ یہ کی رفتار کی جانچ پڑتال، 1146 00:58:14,290 --> 00:58:19,190 کس طرح کے معیار کے ٹیسٹ فوری طور پر آپ کام کرنے کے قابل ہیں. 1147 00:58:19,190 --> 00:58:20,410 >> یہ ایک ہجے ہے. 1148 00:58:20,410 --> 00:58:23,920 بس اس کے ساتھ پنگا نہیں ہے، لیکن بنانے یقین ہے کہ آپ یہ کر رہا ہے سمجھنے. 1149 00:58:23,920 --> 00:58:28,090 ہم نے ایک تقریب میں بلایا getrusage استعمال کرتے ہیں کہ آپ جادو کی کارکردگی ٹیسٹ 1150 00:58:28,090 --> 00:58:28,590 چیکر. 1151 00:58:28,590 --> 00:58:32,200 یہ بنیادی طور پر تمام ٹیسٹ ہے آپ کی ڈکشنری میں ہر چیز کا وقت، 1152 00:58:32,200 --> 00:58:33,680 تو آپ کو یہ سمجھنے بات کو یقینی بنانا. 1153 00:58:33,680 --> 00:58:36,660 اس کے ساتھ گڑبڑ نہیں ہوشیار رہو یا اور چیزوں کو مناسب طریقے نہیں چلائے جائیں گے. 1154 00:58:36,660 --> 00:58:39,740 1155 00:58:39,740 --> 00:58:44,170 >> اور اس چیلنج کا بڑا حصہ کے لئے ہے تم لوگوں کو واقعی dictionary.c نظر ثانی کرنے. 1156 00:58:44,170 --> 00:58:48,526 ہم آپ کو دینے کے لئے جا رہے ہیں ایک ڈکشنری میں 140،000 الفاظ. 1157 00:58:48,526 --> 00:58:50,900 ہم آپ کو ایک متن دینے کے لئے جا رہے ہیں ان الفاظ ہے کہ فائل، 1158 00:58:50,900 --> 00:58:54,840 اور ہم آپ کو منظم کرنے کے قابل بننا چاہتا ہوں ایک ہیش میز یا ایک trie میں 1159 00:58:54,840 --> 00:58:58,140 ہم جادو لئے تم سے پوچھنا کیونکہ جب آپ کو جادو ہو تو تصور check-- 1160 00:58:58,140 --> 00:59:00,690 ہومر وڈسی طرح کی جانچ پڑتال. 1161 00:59:00,690 --> 00:59:03,010 یہ بہت بڑا، بہت بڑا امتحان ہے. 1162 00:59:03,010 --> 00:59:05,190 >> ہر ایک تو ذرا تصور کریں لفظ آپ کو دیکھنے کے لئے تھا 1163 00:59:05,190 --> 00:59:08,100 140،000 اقدار کی ایک صف کے ذریعے. 1164 00:59:08,100 --> 00:59:10,350 کہ ہمیشہ کے لئے لے جائے گا آپ کی مشین چلانے کے لئے. 1165 00:59:10,350 --> 00:59:14,490 ہم نے اپنے کو منظم کرنا چاہتے ہیں یہی وجہ ہے کہ زیادہ موثر ڈیٹا ڈھانچے میں ڈیٹا 1166 00:59:14,490 --> 00:59:17,270 اس طرح ایک ہیش میز یا ایک trie کے طور پر. 1167 00:59:17,270 --> 00:59:20,700 اور پھر تم لوگوں کو قسم کر سکتے ہیں آپ تک رسائی کی تلاش جب 1168 00:59:20,700 --> 00:59:22,570 چیزوں کو زیادہ آسانی سے اور زیادہ تیزی سے. 1169 00:59:22,570 --> 00:59:24,934 >> اور اس طرح collisions سے حل کرنے کے لئے ہوشیار رہنا. 1170 00:59:24,934 --> 00:59:27,350 آپ کو ایک گروپ حاصل کرنے جا رہے ہیں اے کے ساتھ کہ آغاز کے الفاظ کی 1171 00:59:27,350 --> 00:59:29,957 اگر آپ ایک گروپ الفاظ حاصل کرنے کے لئے جا رہے ہیں یہ آپ پر منحصر بی کے ساتھ شروع 1172 00:59:29,957 --> 00:59:31,290 آپ چاہتے ہیں کہ کس طرح لوگ اس کو حل کرنے. 1173 00:59:31,290 --> 00:59:34,144 شاید زیادہ ہے موثر ہیش تقریب 1174 00:59:34,144 --> 00:59:36,810 صرف سب سے پہلے خط کے مقابلے میں کچھ، اور تاکہ آپ پر منحصر ہے 1175 00:59:36,810 --> 00:59:38,190 لوگ قسم کی آپ چاہتے ہیں جو کچھ بھی کرنا. 1176 00:59:38,190 --> 00:59:40,148 >> شاید آپ شامل کرنا چاہتے ہیں ایک ساتھ مل کر تمام خطوط. 1177 00:59:40,148 --> 00:59:43,410 ہو سکتا ہے کہ آپ کو عجیب باتیں کرتے ہیں پسند کرنا چاہتے ہیں حروف کی تعداد اکاؤنٹ میں، 1178 00:59:43,410 --> 00:59:43,970 جو کچھ بھی. 1179 00:59:43,970 --> 00:59:45,386 آپ کرنا چاہتے ہیں کہ کس طرح آپ لوگوں تک. 1180 00:59:45,386 --> 00:59:49,262 آپ تو، ایک ہیش میز کرنا چاہتے ہیں تو مکمل طور پر آپ پر منحصر، ایک trie کی کوشش کرنا چاہتے. 1181 00:59:49,262 --> 00:59:52,470 میں وقت اس کے آگے آپ کو آگاہ کرے گا trie کے عام طور پر تھوڑا سا زیادہ مشکل ہے 1182 00:59:52,470 --> 00:59:54,520 ایک بہت ہے صرف اس وجہ سے مزید اشارہ کا ٹریک رکھنے کے لئے. 1183 00:59:54,520 --> 00:59:55,645 لیکن مکمل طور پر تم لوگوں کے لئے سائن اپ. 1184 00:59:55,645 --> 00:59:58,742 یہ کہیں زیادہ موثر ہے زیادہ تر صورتوں میں. 1185 00:59:58,742 --> 01:00:01,450 تم سچ میں رکھنے کے لئے کے قابل بننا چاہتا ہوں آپ کے اشارہ کے سب سے ٹریک. 1186 01:00:01,450 --> 01:00:03,850 کی طرح ایک ہی بات کرتے ہیں میں یہاں کیا کر رہا تھا کہ. 1187 01:00:03,850 --> 01:00:06,871 جب آپ داخل کرنے کی کوشش کر رہے ہیں ایک ہیش ٹیبل میں اقدار یا خارج کر دیں، 1188 01:00:06,871 --> 01:00:08,620 تم اس بات کو یقینی بنانے کے واقعی ٹریک رکھنے 1189 01:00:08,620 --> 01:00:11,860 سب کچھ اس وجہ سے ہے جہاں اس میں ہوں تو بہت آسان ہے 1190 01:00:11,860 --> 01:00:14,727 لفظ، اینڈی جیسے داخل کرنے کی کوشش. 1191 01:00:14,727 --> 01:00:16,810 صرف ہے کہ ایک کا کہنا ہے کہ اصل لفظ، لفظ، اینڈی، 1192 01:00:16,810 --> 01:00:19,640 ایک الفاظ کی ایک وشال کی فہرست میں. 1193 01:00:19,640 --> 01:00:22,450 >> میں صرف میں reassign ہو تو ایک پوائنٹر غلط، افوہ، 1194 01:00:22,450 --> 01:00:24,940 کے مکمل طور پر وہاں جاتا ہے میرے منسلک فہرست کے باقی. 1195 01:00:24,940 --> 01:00:26,897 اب صرف لفظ میں ہے اینڈی ہے، اور اب 1196 01:00:26,897 --> 01:00:29,230 دوسرے الفاظ میں تمام ڈکشنری کھو گیا ہے. 1197 01:00:29,230 --> 01:00:31,370 اور اس طرح آپ بات کو یقینی بنانا چاہتے ہیں آپ کے اشارہ کے تمام کا ٹریک رکھنے کے 1198 01:00:31,370 --> 01:00:33,661 ورنہ آپ کو حاصل کرنے جا رہے ہیں آپ کے کوڈ میں بہت بڑا مسائل. 1199 01:00:33,661 --> 01:00:35,840 قدم بہ قدم احتیاط سے چیزوں کو باہر اپنی طرف متوجہ. 1200 01:00:35,840 --> 01:00:37,870 یہ سوچنے کے لئے یہ ایک بہت آسان بنا دیتا ہے. 1201 01:00:37,870 --> 01:00:40,910 >> اور آخر میں، آپ کرنے کے قابل بننا چاہتا ہوں آپ کے پروگرام کے بارے میں آپ کی کارکردگی کی جانچ 1202 01:00:40,910 --> 01:00:41,618 بڑے بورڈ پر. 1203 01:00:41,618 --> 01:00:43,710 تم لوگوں کو لے تو ابھی CS50 میں نظر آتے ہیں، 1204 01:00:43,710 --> 01:00:45,210 ہم بڑے بورڈ کہا جاتا ہے کیا ہے. 1205 01:00:45,210 --> 01:00:50,200 یہ سب سے تیز رفتار سکور شیٹ ہے CS50 کے تمام بھر میں جانچ پڑتال اوقات جادو 1206 01:00:50,200 --> 01:00:55,720 اب، میں 10 کی طرح سب سے لگتا ہے بار میں نے ان میں سے آٹھ عملے ہیں. 1207 01:00:55,720 --> 01:00:57,960 ہم واقعی آپ لوگ ہمیں ہرا دیا کرنا چاہتے ہیں. 1208 01:00:57,960 --> 01:01:00,870 >> ہم میں سے سب کو لاگو کرنے کی کوشش کر رہے ہر ممکن حد تک سب سے تیز رفتار کوڈ. 1209 01:01:00,870 --> 01:01:04,880 ہم نے تم لوگوں کو چیلنج کرنے کی کوشش کرنا چاہتے ہیں ہمارے اور ہم میں سے سب سے زیادہ تیزی سے عمل درآمد 1210 01:01:04,880 --> 01:01:05,550 کر سکتے ہیں. 1211 01:01:05,550 --> 01:01:07,970 اور اس طرح یہ واقعی ہے ہم ہیں کہ پہلی بار 1212 01:01:07,970 --> 01:01:12,680 تم لوگوں سے پوچھ ایک pset کرنا ہے کہ تم واقعی میں جو طریقہ میں کر سکتے ہیں 1213 01:01:12,680 --> 01:01:13,760 تم چاہتے ہو. 1214 01:01:13,760 --> 01:01:17,730 >> میں نے ہمیشہ اس سے ماخوذ ہے، کا کہنا ہے کہ ایک حقیقی زندگی کے حل کرنے کے لئے، ٹھیک ہے؟ 1215 01:01:17,730 --> 01:01:19,550 ارے، میں آپ کو ایسا کرنے کی ضرورت ہے، کا کہنا ہے کہ. 1216 01:01:19,550 --> 01:01:21,380 میرے لئے یہ کرتا ہے کہ ایک پروگرام کی تعمیر. 1217 01:01:21,380 --> 01:01:22,630 تاہم آپ چاہتے ہیں اسے کرو. 1218 01:01:22,630 --> 01:01:24,271 میں صرف میں روزے کرنا چاہتے ہیں جانتے ہیں کہ. 1219 01:01:24,271 --> 01:01:25,770 اس ہفتے کے لئے آپ کا چیلنج ہے. 1220 01:01:25,770 --> 01:01:27,531 تم لوگوں کو، ہم جا رہے ہیں آپ کو ایک کام دینے کے لئے. 1221 01:01:27,531 --> 01:01:29,030 ہم آپ کو ایک چیلنج دینے کے لئے جا رہے ہیں. 1222 01:01:29,030 --> 01:01:31,559 اور پھر یہ تم لوگوں پر منحصر ہے مکمل طور پر صرف معلوم کرنا 1223 01:01:31,559 --> 01:01:34,100 تیز ترین اور سب سے زیادہ کیا ہے موثر طریقہ اس پر عمل درآمد کرنے کے لئے. 1224 01:01:34,100 --> 01:01:34,600 جی ہاں؟ 1225 01:01:34,600 --> 01:01:37,476 >> سامعین: اگر ہم کی اجازت ہے تیز طریقوں پر تحقیق کرنا چاہتی 1226 01:01:37,476 --> 01:01:40,821 ہم کر سکتے ہیں، آن لائن ہیش میزیں کرنا اور کسی اور کی کوڈ کا حوالہ دیتے ہیں؟ 1227 01:01:40,821 --> 01:01:42,070 ANDI پینگ: جی ہاں، بالکل ٹھیک. 1228 01:01:42,070 --> 01:01:44,320 تو تم لوگ پڑھا تو رپورٹ، ایک لائن ہے 1229 01:01:44,320 --> 01:01:48,310 تم لوگوں کا کہنا ہے کہ رپورٹ میں ہیش تحقیق مکمل طور پر آزاد ہیں 1230 01:01:48,310 --> 01:01:51,070 ہیں کچھ پر کام کرتا ہے تیز ہیش افعال میں 1231 01:01:51,070 --> 01:01:54,720 کے طور پر کے ذریعے چیزوں کو چلانے کے لئے آپ اس کوڈ کا حوالہ دیتے ہیں جب تک. 1232 01:01:54,720 --> 01:01:57,220 تو کچھ لوگ پہلے سے ہی ہے تیزی سے طریقوں سلجھا 1233 01:01:57,220 --> 01:02:00,250 کی تیزی سے، جادو چیکرس کر معلومات ذخیرہ کرنے کے طریقوں. 1234 01:02:00,250 --> 01:02:02,750 مکمل طور پر آپ لوگوں تک اگر آپ صحیح، صرف اس لئے کہ لینے کے لئے چاہتے ہیں؟ 1235 01:02:02,750 --> 01:02:04,045 آپ کا حوالہ دیتے ہوئے کر رہے ہیں بات کو یقینی بنائیں. 1236 01:02:04,045 --> 01:02:06,170 چیلنج یہاں واقعی ہم جانچ کرنے کی کوشش کر رہے ہیں کہ 1237 01:02:06,170 --> 01:02:09,750 آپ جانتے ہیں کہ بات کو یقینی بنانے ہے اپنے راستے کے ارد گرد اشارہ. 1238 01:02:09,750 --> 01:02:12,700 جہاں تک آپ کے طور پر پر عمل درآمد اصل ہیش تقریب 1239 01:02:12,700 --> 01:02:15,070 اور اس طرح کے ساتھ آنے والے ریاضی ایسا کرنے کے لئے، 1240 01:02:15,070 --> 01:02:17,570 تم لوگوں کو جو کچھ تحقیق کر سکتے ہیں طریقوں آن لائن آپ لوگ چاہتے ہیں. 1241 01:02:17,570 --> 01:02:17,996 جی ہاں؟ 1242 01:02:17,996 --> 01:02:19,700 >> سامعین: ہم صرف حوالہ دیتے ہیں کر سکتے ہیں [اشراوی] کا استعمال کرتے ہوئے کی طرف سے؟ 1243 01:02:19,700 --> 01:02:20,120 >> ANDI پینگ: جی ہاں. 1244 01:02:20,120 --> 01:02:22,328 آپ صرف، آپ کے تبصرے میں، آپ، اوہ، طرح حوالہ دیتے ہیں کر سکتے ہیں 1245 01:02:22,328 --> 01:02:26,127 ادار سے لیا، ادار، ادار، ہیش تقریب. 1246 01:02:26,127 --> 01:02:27,210 کسی بھی سوالات ہیں؟ 1247 01:02:27,210 --> 01:02:29,694 ہم اصل میں breezed آج کے سیکشن کے ذریعے. 1248 01:02:29,694 --> 01:02:31,610 میں یہاں ہو جائے گا کے طور پر اچھی طرح سے کے سوالات کا جواب. 1249 01:02:31,610 --> 01:02:36,570 >> اس کے علاوہ، میں نے کہا، دفتر گھنٹے آج رات اور کل. 1250 01:02:36,570 --> 01:02:40,307 اس ہفتے اصل میں ہے رپورٹ سپر آسان اور پڑھنے کے لئے سپر مختصر. 1251 01:02:40,307 --> 01:02:43,140 میں صرف ایک نظر لینے کا مشورہ کرے گا اس کی مکمل طور پر کے ذریعے پڑھ. 1252 01:02:43,140 --> 01:02:45,730 >> اور کیا Zamyla اصل چلتا ہے کے افعال میں سے ہر ایک کے ذریعے 1253 01:02:45,730 --> 01:02:49,796 آپ کو لاگو کرنے کی ضرورت ہے، اور تو یہ ہے سب کچھ کے لئے کس طرح بہت، بہت واضح. 1254 01:02:49,796 --> 01:02:51,920 بس اس بات کا یقین تم بنانے کے لئے اشارہ کا ٹریک رکھنے. 1255 01:02:51,920 --> 01:02:53,650 یہ ایک بہت ہی مشکل pset ہے. 1256 01:02:53,650 --> 01:02:56,744 >> یہ، کی طرح ہے کیونکہ مشکل نہیں ہے اوہ، تصورات اتنی زیادہ ہیں 1257 01:02:56,744 --> 01:02:59,160 مشکل، یا آپ کو سیکھنے کے لئے ہے راستہ اتنا نئے نحو 1258 01:02:59,160 --> 01:03:00,650 آپ نے گزشتہ pset کے لئے کیا ہے کہ. 1259 01:03:00,650 --> 01:03:03,320 اس pset کے لئے مشکل ہے کیونکہ اتنے اشارہ وہاں ہو، 1260 01:03:03,320 --> 01:03:06,980 اور پھر یہ ایک بار کے لئے بہت، بہت آسان ہے تم نہیں کر سکیں آپ کے کوڈ میں ایک بگ ہے 1261 01:03:06,980 --> 01:03:08,315 کہ مسئلے سے ہے جہاں تلاش کرنے کے لئے. 1262 01:03:08,315 --> 01:03:13,200 >> اور اس طرح مکمل اور میں بالکل ایمان لوگ ہمارے [اشراوی] کو ہرا دیا کرنے کے قابل ہو جائے 1263 01:03:13,200 --> 01:03:13,700 ہجے. 1264 01:03:13,700 --> 01:03:16,640 میں واقعی میں کسی بھی لکھا ہے میرا ابھی تک، لیکن میرا لکھنے کے بارے میں ہوں. 1265 01:03:16,640 --> 01:03:19,070 آپ لکھ رہے ہیں جبکہ تو تمہارا، میرا تحریری گے. 1266 01:03:19,070 --> 01:03:21,070 میں بنانے کے لئے کوشش کرنے کے لئے جا رہا ہوں میرا تیزی سے تم سے. 1267 01:03:21,070 --> 01:03:23,940 ہم سب سے تیز رفتار سے ایک ہے جو نظر آئے گا. 1268 01:03:23,940 --> 01:03:27,340 >> اور ہاں، میں سب کو دیکھ دونگا منگل کے روز یہاں تم لوگ. 1269 01:03:27,340 --> 01:03:29,510 میں ایک pset ورکشاپ کی طرح ایک قسم چلایا جائے گا. 1270 01:03:29,510 --> 01:03:32,640 حصوں میں سے سب اس ہفتے، pset کے ورکشاپس ہیں 1271 01:03:32,640 --> 01:03:36,690 تو تم لوگ مواقع کے بہت سے ہیں مدد کے لئے، دفتری اوقات کے طور پر ہمیشہ، 1272 01:03:36,690 --> 01:03:41,330 اور مجھے سچ میں کرنے کے شوقین ہیں آپ لوگ تمام کوڈ کو پڑھنے کے. 1273 01:03:41,330 --> 01:03:44,160 میں یہاں اگر آپ quizzes ہے اپ ہے لوگ ان حاصل آنا چاہتا ہوں. 1274 01:03:44,160 --> 01:03:45,880 وہ سب ہے. 1275 01:03:45,880 --> 01:03:48,180