DAVID MALAN: ٹھیک ہے. CS50 واپس خوش آمدید. اس ہفتے 8 کے آغاز ہے. اور یہ کہ مسئلہ سیٹ 5 ختم یاد ایک چیلنج کا ایک تھوڑا سا کے ساتھ. تو آپ کو آپ کے تمام برآمد سنبھالنے کے درس و تدریس فیلو اور CA کی تصاویر card.raw فائل میں، آپ اہل ہیں اب ان لوگوں میں سے سب کچھ مل جائے، اور ایک خوش قسمت فاتح ایک ساتھ گھر چلے جائیں گے ان چیزوں میں سے، چھلانگ لگانے کی تحریک آپ کو فائنل کے لئے استعمال کر سکتے ہیں کہ آلہ مثال کے طور پر منصوبوں،. یہ ہر سال، کی طرف جاتا ہے creepiness کا تھوڑا سا. اور تو کیا میں نے ایسا سوچا تھا کہ حصہ ہے آپ کے ساتھ ہے کہ نوٹوں میں سے کچھ ختم آگے پیچھے چلی گئی دیر کے عملے کی فہرست. مثال کے طور پر، صرف گزشتہ رات، قیمت کے لئے عملے میں سے ایک سے، unquote ارکان، "میں صرف ایک طالب علم دستک تھا میرے دروازے پر میرے ساتھ ایک تصویر لینے کے لئے. Stalkers، میں آپ کو بتا. "شروع ہم منتقل کر دیا گیا تو کافی وضاحتی اور پر، ایک گھنٹے یا اس کے بعد، "میں تھا طالب علم کے سیکشن کے بعد میرا انتظار کر اور وہ ہمارے نام اور تصاویر کے تمام تھا کاغذ کے کچھ شیٹس پر. "ٹھیک ہے. تو منظم کیا ہے، لیکن نہیں ابھی تک تمام کہ عجیب. اس کے بعد، "میں اس ہفتے کے آخر میں شہر سے باہر تھا اور میں واپس مل گیا جب میں وہاں تھا میری بیڈروم. "[ہنسی] DAVID MALAN: ایک عملہ سے پیچھے اگلا، دوسرا اقتباس اراکین کی، "ایک طالب علم میں میرے گھر آئے تھے 4 Somerville آج صبح ہوں. "اگلا عملے، "میں سان میں اپنے ہوٹل میں ملا فرانسسکو اور ایک طالب علم کے لئے انتظار کر رہا تھا تین DSLRs کے ساتھ لابی سے کم مجھے. " کیمرے کی قسم. "میں، عملے اس سمسٹر پر بھی نہیں ہوں لیکن ایک طالب علم میرے گھر میں اس توڑ دیا پوری بات صبح اور ریکارڈ کیا Google گوگل کے گلاس کے ساتھ "اور پھر آخر میں، "کم از کم 12 لوگ بیتابی سے تھے میں اپنے سے باہر ہو گیا جب میرے لئے انتظار کر لمو، اور پھر میں اٹھی. "ٹھیک ہے. تو تصاویر کے درمیان، کے طور پر آپ کر سکتے ہیں یاد ہے، اس کے ساتھی آپ کو جو یہاں ہیں رہنے والے Milo کیلا، کے طور پر جانتے ہو لارین کاروالہو، ہمارے سر کے ساتھ فیلو تعلیم. Milo، Milo، یہاں لڑکے آتے ہیں. Milo. Milo. اگر تم برا، وہ بہت، گوگل شیشے پہنا ہے ہم آپ کو اس کے تمام کے بعد دکھاؤنگا. کیا آپ چاہتے ہیں تو اس Milo ہے اس کے بعد اس کے ساتھ ایک تصویر لے. آپ باہر دیکھنے کے لئے چاہتے ہیں، تو وہاں سامعین میں. ٹھیک ہے. وہ اچھا فوٹیج ہے. ٹھیک ہے، Milo کیلے. اوہ، ایسا نہیں ہے. [ہنسی] ٹھیک ہے. سامنے کیا تو ایک لفظ بھی تو، ہم تبدیلی کے لئے شروع کے طور پر، کیونکہ اس ہفتے خاص طور پر، ایک میں سی سے کمانڈ لائن پی ایچ پی کے لئے ماحول اور جاوا سکرپٹ اور SQL اور ایچ ٹی ایم ایل اور سی ایس ایس میں ایک ویب کی بنیاد پر ماحول، ہم ہوں گے سب کے ساتھ آپ لیس کے لئے زیادہ علم ممکنہ حتمی منصوبوں. اس مقصد کی طرف، کورس ایک ہے سیمینار کے انعقاد کی روایت جس میں tangential موضوعات پر ہیں کورس. بہت پروگرامنگ اور سے متعلق اے پی پی کی ترقی اور تو آگے، لیکن لازمی طور پر کی طرف سے کی نہیں کورس کے اپنے نصاب. آپ کو ایک میں دلچسپی ہو سکتا ہے اگر ایسا ہے تو اس سال کے سیمینار کی یا اس سے زیادہ، cs50.net/seminar میں کریں. بڑی عمر کے سیمینار ہیں cs50.net/seminars میں. اور اس سال کے لئے ابھی تک روسٹر پر روبی کے ساتھ حیرت انگیز ویب ایپلی کیشنز پر ہیں ایک متبادل ہے جس میں ریل، پی ایچ پی کے لئے زبان. کمپیوٹیشنل لسانیات. ہے جو iOS، کا تعارف اور آئی فون کے لئے استعمال کیا ہے کہ پلیٹ فارم رکن کی ترقی. جاوا سکرپٹ کو ویب اطلاقات کے لئے، ہم کا احاطہ کریں گے کہ، لیکن اس سیمینار میں، تم جاؤ گے مزید تفصیل میں. موشن کودنا، تو ہم اصل میں کچھ کرنا پڑے گا لیپ موشن سے ہمارے دوستوں میں سے، کمپنی خود کو، ہمارے ساتھ شامل. کل، حقیقت میں، فراہم کرنے کے لئے ایک ہاتھ پر سیمینار، اگر آپ کی دلچسپی کے. Meteor.js، کے لئے ایک متبادل تکنیک نہیں براؤزر میں جاوا سکرپٹ کا استعمال کرتے ہوئے، لیکن ایک سرور پر. بہت زیادہ ہے جو Node.js، کہ رگ میں بھی. چیکنا ڈیزائن لوڈ، اتارنا Android. لوڈ، اتارنا Android ایک بہت ہی مقبول متبادل کیا جا رہا ہے iOS اور ونڈوز فون کرنے کے لئے اور دوسرے موبائل پلیٹ فارم. اور ویب سلامتی فعال دفاع. تو حقیقت میں، اگر آپ چاہیں تو اس میں مشغول کرنے کے لئے، مجھے دو اس کا نوٹ بناتے ہیں. ہم کہتے ہیں کہ بہت خوش ہیں لیپ میں ہمارے دوست ایک ابتدائیہ ہے جو موشن، - اس آلہ واقعی صرف آیا چند ماہ پہلے باہر - کرپا 30 اس طرح کے آلات کے عطیہ کیا ہے بہت سے طالب علم کے طور پر کے لئے کلاس، اگر اگر آپ ہارڈ ویئر کے قرضے لے چاہوں گا سمسٹر کے اختتام کی طرف اور اس کے لئے اس کا استعمال ایک حقیقی حتمی منصوبے. وہ زبانوں کی ایک بڑی تعداد کی حمایت کرتے ہیں. ان میں سے کوئی بھی اتنی سی، ان میں سے کوئی پی ایچ پی، احساس ان سیمیناروں میں سے ایک یا اس سے زیادہ دلچسپی کے ثابت ہو سکتا ہے. اور ان میں سے تمام میں فلمایا جائے گا آپ کے قابل نہیں ہیں کہ اس واقعہ انسان میں شرکت کرنے کے لئے. شیڈول کے ذریعے اعلان کیا جائے ہم کمرے جمنا کے طور پر ای میل کریں. اور آخر میں، آپ کے پاس جاؤ تو projects.cs.50.net، یہ ایک ویب سائٹ ہے ہم دعوت دیتے ہیں ہر سال اس کو برقرار رکھنے کے کمیونٹی، فیکلٹی، کی طرف سے لوگوں محکموں، ملازمین، اور دونوں CS50 کرنے کے ایک سے باہر میں منصوبے کے خیالات کی تجویز. طلبہ تنظیموں کی دلچسپی کے اشیاء. محکموں کی دلچسپی کے اشیاء. آپ کو جدوجہد کر رہے ہیں، تو وہاں کی باری ہے کیا آپ کے پاس کے طور پر غیر یقینی صورتحال کے ساتھ اپنے آپ سے نمٹنے کے لئے چاہوں گا. تو آخری بار ہم نے ایک arguably متعارف زیادہ پیچیدہ آنکڑا ڈھانچہ ہم سے زیادہ ہوتا گزشتہ ہفتوں میں دیکھا. ہم خوبصورت arrays کا استعمال کرتے ہوئے کر رہا تھا اگر خوشی کے طور پر ایک مفید سادہ آنکڑا ڈھانچہ. پھر ہم ان سے متعارف کرایا جس میں کورس کی فہرست سے منسلک ہوتے ہیں. اور اس کے لئے میں سے ایک منشا کیا تھا یہ آنکڑا ڈھانچہ متعارف کرانے؟ جی ہاں؟ وہ کیا ہے؟ سامعین: متحرک سائز. DAVID MALAN: متحرک سائز. سرنی میں جبکہ تو، آپ کو کرنا پڑے پیشگی میں اس کے سائز جب معلوم تم نے اسے مختص. سے منسلک فہرست میں، تم نہیں معلوم ہے کہ کرنا ہے. آپ کو زیادہ عام طور پر صرف malloc، یا، کر سکتے ہیں ایک اضافی مختص نوڈ، تو بات کرنے کے لئے، کسی بھی وقت آپ زیادہ ڈیٹا داخل کرنا چاہتے ہیں. اور نوڈ کوئی مطلب نہیں پہلے سے مقرر ہے. یہ صرف بیان ایک عام اصطلاح ہے ہم ہیں کہ کنٹینر کسی قسم ذخیرہ کرنے کے لئے ہمارے اعداد و شمار کا استعمال کرتے ہوئے ڈھانچے میں اس میں دلچسپی کے کچھ شے، جس کیس integers ہونا ہو. لیکن ایک tradeoff ہمیشہ ہے. تو ہم نے اعداد و شمار کے متحرک سائز حاصل ساخت، لیکن ہم کیا قیمت ادا کرتے ہیں؟ منسلک فہرستوں کی کمی کیا ہے؟ جی ہاں؟ سامعین: زیادہ میموری کی ضرورت ہے. DAVID MALAN: یہ زیادہ سے زیادہ کی ضرورت ہے میموری، کس طرح؟ سامعین: [اشراوی]. DAVID MALAN: بالکل درست. تو اب ہم اشارہ کر رہے ہیں اضافی میموری ہم پہلے کہ ضرورت نہیں تھی، کیونکہ فائدہ ایک سرنی کے، کورس کی، یہ ہے کہ سب کچھ ملحق، واپس آ گیا ہے واپس کرنے کے لئے واپس کرنے کے لئے، جس میں آپ بے ترتیب رسائی حاصل ہے. کیونکہ صرف مربع بریکٹ کا استعمال کرتے ہوئے کی طرف سے سنکیتن، یا اس سے زیادہ تکنیکی پوائنٹر ریاضی، بہت آسان اس کے علاوہ، آپ کو کسی بھی رسائی حاصل کر سکتے مسلسل وقت میں عناصر. اور حقیقت میں، اس کی طرف اشارہ کر کی طرح ہے ہم نے ایک ساتھ ادا کر رہے ہیں کہ ایک اور قیمت منسلک فہرست. کیا کی رننگ ٹائم کے ساتھ کیا ہوتا تلاش کی طرح کچھ، میں کرنا چاہتے ہیں تو کچھ قیمت اور اندر تلاش ایک سے منسلک فہرست میں؟ میری رننگ ٹائم کیا بن جاتا ہے؟ (ن) کے بڑے اے. اس کا حل ہے تو؟ کیا آنکڑا ڈھانچہ حل ہے تو کیا ہوگا؟ میں بڑی سے بہتر کر سکتے ہیں تلاش کے لئے (ن) کے O؟ نہیں، کیونکہ بدترین صورت میں یہ طاقت بہت اچھی طرح حل، لیکن تعداد تم بڑے ہو سکتا ہے کے لئے تلاش کر رہے ہیں. یہ ہے جس کا نمبر 100، ہو سکتا ہے تمام ہونے کے لئے ہو سکتا ہے آخر میں جس طرح. اور تم صرف ایک منسلک تک رسائی حاصل کر سکتے ہیں کی وجہ سے کی طرف سے اس پر عمل درآمد میں فہرست اس کا پہلا نوڈ کی راہ، آپ ہیں قسمت سے باہر کے بھی قسم کی. آپ کو پوری بات گزرنا پڑتا ہے پہلے سے پتہ لگانے کے لئے آخری 100 کی طرح ہے کہ بڑی قیمت. یہ ہے یا اگر تعین کرنے کے لئے نہیں وہاں بھی. تو ہم نے ایک اعداد و شمار میں کیا الگورتھم نہیں کر سکتے ہیں ساخت اس طرح لگتا ہے کہ؟ ہم بائنری تلاش نہیں کر سکتے، کیونکہ بائنری تلاش کریں ہم تھا کہ ضرورت بے ترتیب تک رسائی. ہم صرف مقام سے پر کودنا کر سکتے ہیں پیروی کرنے کے لئے بغیر محل وقوع شکل میں ان کی روٹی crumbs ان تمام اشارہ ہے. اب، ہم کس طرح اس پر عمل درآمد کیا تھا؟ ٹھیک ہے، ہم یہاں کی سکرین کو جانا ہو، تو ہم فوری طور پر اس ڈیٹا reimplement کر سکتے ہیں ساخت - میری لکھاوٹ تمام ہے کہ نہیں ہے یہاں بہت اچھا، لیکن ہم کوشش کریں گے. تو typedef struct، اور وہ میں نے کیا میں نے اس بات کو یہاں فون کرنا چاہتے ہیں؟ گھنڈی. تو میں نے ہم سے شروع مل جائے گا. اور اب، کیا کے اندر کرنے کی ضرورت ہے اس اکیلے کے لئے اعداد و شمار کے ڈھانچے فہرست منسلک؟ کتنے شعبوں؟ دو تو. ایک خوبصورت آسان ہے. (ن) تو INT. اور ہم، ہم چاہتے ہیں کہ (ن) کچھ بھی کہہ سکتے ہیں ہم ہیں لیکن اگر یہ ایک INT ہونا چاہئے ints کے لئے ایک سے منسلک فہرست پر عمل درآمد. اور اب کیا دوسری کرتا ہے میدان ہونا پڑے گا؟ Struct نوڈ *. میں struct نوڈ *، اور پھر مجھے کیا کرنا اگر ایسا ہے تو بھی میں چاہتا ہوں جو کچھ بھی اس کال کر سکتے ہیں، لیکن صرف میں فون کروں گا میں واضح رہنا یہ اگلے، ہم کر رہا ہوں کے طور پر. اور پھر میں نے اپنی گھوبگھرالی منحنی خطوط وحدانی بند کرتی ہوں. اور اب، آخری بار کے طور پر، میں یہاں نوڈ نیچے رکھو. لیکن میں اس کا اعلان کر رہا ہوں کہ اگر ایک کے طور پر ہے نوڈ، کیوں میں ایسا ہونے کی وجہ سے پریشان تھے یہاں struct اعلان میں شبدبہل نوڈ * اگلے، کے طور پر مخالفت کی اگلے صرف نوڈ * ہے؟ جی ہاں؟ سامعین: [اشراوی]. DAVID MALAN: بالکل درست. بالکل ٹھیک. سی واقعی آپ لفظی لیتا ہے اور کیونکہ صرف نوڈ کی تعریف دیکھتا ہے یہاں نیچے راستہ، آپ نہیں کر سکتے ہیں اسے یہاں تک حوالہ دیتے ہیں. تو ہم preemptive اس طرح ہے اس کا اقرار بھی ہے جو یہاں اعلان، مزید شبدبہل. Struct نوڈ، کا مطلب ہے کہ اب ہم اس تک رسائی حاصل کر سکتے ہیں آنکڑا ڈھانچہ کے اندر. اور ایک ایک طرف کے طور پر، یہ ہے کیونکہ ، اب تھوڑا زیادہ ساپیکش بننے ستارہ تکنیکی یہاں جا سکتے ہیں، یہاں جا سکتے ہیں، یہ کر سکتے ہیں یہاں تک کہ وسط میں جاتے ہیں. ہم نے کے لئے سٹائل کے ہدایت نامے میں، اپنایا ہے کورس ڈالنے کے کنونشن ڈیٹا کا حق اگلے ستارہ قسم، اس معاملے میں، جو struct نوڈ ہو جائے گا. لیکن نصابی کتابوں کی ایک بہت میں احساس اور آن لائن حوالہ جات، کیا تم واقعی شاید دوسری طرف دیکھتا ہوں. لیکن صرف اس لئے کہ دراصل گے دونوں کا احساس کام کرتے ہیں اور آپ کو صرف ہونا چاہئے مسلسل. ٹھیک ہے. لہذا ہمارے اعلان تھا کہ struct نوڈ کی. لیکن اس وقت ہم زیادہ کر شروع کر دیا نفیس چیزیں. مثال کے طور پر، ہم نے متعارف کرانے کا فیصلہ ایک ہیش کی میز کی طرح کچھ. تو یہاں سائز (ن) کے ایک ہیش کی میز ہے (ن) کے لئے چھوڑ سب سے اوپر پر 0 سے حساب سے ترتیب مائنس نچلے حصے پر 1 چھوڑ دیا. یہ ایک ہیش ہو سکتا ہے کسی چیز کے لئے میز. لیکن ہم ان چیزوں کی قسم کی بات کیا کے لئے ایک ہیش کی میز کا استعمال کرتے ہوئے کے بارے میں؟ کیا محفوظ؟ جاتاہے. ہم جیسے ناموں کر سکتے ہیں ہم نے پچھلی بار کیا تھا. اور واقعی، تم کچھ بھی جمع کر سکتے ہیں. اور ہم نے اس میں دوبارہ نظر آئے گا پی ایچ پی اور جاوا سکرپٹ میں. ایک ہیش میز سوئس کی ایک اچھی قسم ہے آپ کو ذخیرہ کرنے کے لئے کی اجازت دیتا ہے کہ فوج کی چھری بہت زیادہ اگر آپ کے اندر جو چاہو اقدار کے ساتھ منسلک کرنے کی چابیاں کی طرف سے. اقدار کے ساتھ چابیاں. اب اس سادہ صورت میں، ہماری چابیاں صرف نمبرز ہیں. ہم نے ایک ہیش پر عمل درآمد کر رہے ہیں ایک سرنی کے طور پر ٹیبل. اور اس طرح کی چابیاں 0 ہیں، 1، 2، اور تو آگے. اور اس طرح ہم، انسان کے طور پر، آخری فیصلہ کیا تم ہم ہیں تو پتہ ہے کیا، جو ہفتے سٹور کے نام کرنے جا رہا، ہم صرف منمانے، لیکن خوبصورت معقول حد تک، فرض کریں کہ ایلس، ایک ایک کا نام، صرف 0 میں حساب سے ترتیب کیا جائے گا. اور باب، ایک بی کا نام، حساب سے ترتیب کی جائے گی 1 میں، اور تو آگے. تو ہم، آدانوں کے درمیان ایک تعریفیں تھا جس کے تار ہیں، اور ہیش تعداد ہیں جو مقامات،. تو یہ عمل عام طور پر کے طور پر جانا جاتا ہے ایک ہیش فنکشن ہے، اور تم واقعی کر سکتے ہیں اس کوڈ میں لاگو کرتے ہیں. میں نے ایک ہیش تقریب کو لاگو کرنا چاہتے تھے تو کہ بالکل وہی جو ہم کرتا ہے صرف آخری بار کی طرف سے بیان کیا، میں شاید کے طور پر لیتا ہے ایک تقریب کا اعلان مثال کے طور پر ان پٹ - اور ہم اس پر ایسا یہاں سکرین. میں نے ایک ہیش لاگو کرنے کے لئے کرنا چاہتا تھا تو تقریب، میں کہتا ہوں کہ ہو سکتا ہے کچھ اس طرح. یہ ایک INT واپس جا رہا ہے. یہ ہیش بلایا جائے جا رہا ہے، اور یہ ہے ایک دلیل کے طور پر قبول کرنے کے لئے جا سٹرنگ، یا ہم، اب زیادہ مناسب ہو سکتا ہے اور چار * کا کہنا ہے کہ ہم اس کے فون کرتا ہوں. اور پھر اس سب کی تقریب، کیا کرنا ہے آخر میں، ایک INT کی واپسی ہے. اب، یہ کس طرح کرتا ہے شاید اتنی واضح نہیں. میں کسی بھی بغیر اس کے نفاذ کے لیے جا رہا ہوں ابھی جانچ پڑتال کی خرابی کی شکل. میں صرف آنکھ بند کر کے کہنے جا رہا ہوں، واپس ے 0 بریکٹ میں جو کچھ بھی ہے، مائنس، دو کے دارالحکومت کے ایک نیم وقفہ، کا کہنا ہے کہ. مکمل طور پر توڑا. یہ درست نہیں ہے کیونکہ ایک، S اتارنا null کیا ہے تو کیا ہوگا؟ بری چیزوں ہونے جا رہے ہیں. دو، کیا تو اس میں سب سے پہلے خط نام ایک خط کے دارالحکومت نہیں ہے؟ تبدیل کرنے والا نہیں ہے باہر کے ساتھ ساتھ یا تو. یہ ایک چھوٹے خط ہو سکتا ہے یا بالکل نہیں ایک خط. یہاں بہتر بنانے کے لئے اس لئے مکمل طور پر کمرہ، لیکن یہ بنیادی خیال ہے. ہم کے طور پر زبانی طور پر گزشتہ ہفتے بیان کیا پر ایلس تعریفیں صرف ایک عمل 1 0 اور باب کا اظہار کیا جا سکتا ہے یقینی طور پر زیادہ formulaically سی کے طور پر یہاں کام کرتے ہیں. پھر ہیش کہا جاتا ہے، کے طور پر ایک سٹرنگ لیتا ہے ان پٹ، اور پھر کسی نہ کسی طرح کچھ کرتا ہے ایک آؤٹ پٹ پیدا کرنے کے لئے کہ ان پٹ کے ساتھ. نہیں ہمارے بلیک باکس کی وضاحت کے برعکس ہم طویل عرصے سے کیا ہے کہ. میں نے یہ ہو سکتا ہے پتہ نہیں کس طرح ہڈ کے نیچے کام کر رہے ہیں. مسئلہ سیٹ 6، چیلنجز میں سے ایک کے لئے آپ کو فیصلہ کرنے کے لئے کیا ہے آپ ہیش فنکشن ہو جائے گا؟ کہ سیاہ کے اندر ہونے جا رہا ہے کیا باکس، اور شاید، یہ ایک ہو جائے گا تھوڑا سا اس سے زیادہ دلچسپ اور غلطی کرنے کے لئے یقینی طور پر زیادہ سے زیادہ شکار یہ خاص طور سے زیادہ کی جانچ پڑتال عمل. لیکن مسائل کا حق، پیدا کر سکتے ہیں؟ ہم اس طرح اس کے طور پر ایک آنکڑا ڈھانچہ ہے تو ایک، مسائل میں سے ایک کیا ہے آپ کو ڈالنے کے طور پر آپ وقت کے ساتھ ساتھ میں چلا سکتے ہیں میں زیادہ سے زیادہ کے نام ہیش میز؟ تم نے صحیح، collisions حاصل؟ کیا آپ کو ایلس اور ہارون، ہے تو جن کے نام ہوا دو افراد ایک کے ساتھ شروع کرنے کے لئے؟ جہاں کہ آپ، سوال جنم لیتا ہے دوسری ایسی کا نام ڈال دیا؟ ٹھیک ہے، تم naively صرف ڈال سکتے ہیں باب سے تعلق رکھتا ہے جہاں، لیکن پھر باب ہے آپ کو کرنے کی کوشش کریں تو قسم کی مصیبت میں اگلے اس کا نام داخل کریں اور اس کے لئے کوئی گنجائش نہیں ہے. تو کیا تم چارلی ہے جہاں باب، ڈال سکتے ہیں اور آپ کو اس بہت جلد تصور کر سکتے ہیں ایک گندگی کے تھوڑا سا میں devolving. آخر میں لکیری کچھ، تم کہاں صرف پوری چیز تلاش کرنے کے لئے ہے ایلس یا باب کے لئے تلاش یا ہارون یا چارلی. تو اس کے بجائے ہم اس کی بجائے صرف، کی تجویز linearly کھلی جگہ کے لئے تحقیقات اور ہم وہاں کے ناموں plopping ایک fancier نقطہ نظر کی تجویز پیش کی. ایک کے ساتھ بھی لاگو ایک ہیش کی میز سوچکانکوں کی سرنی، لیکن اعداد و شمار کی قسم ان سوچکانکوں اب اشارہ تھے. کیا نوٹیفائر؟ منسلک فہرستوں کے نوٹیفائر. کیونکہ ایک سے منسلک فہرست ہے کہ یاد واقعی صرف ایک ایک نوڈ پر پوئینٹر، اور نوڈ ایک اگلے میدان، اور اس نوڈ ہے ایک اگلے میدان ہے، اور تو آگے. تو اب تم پر اس سرنی کے بارے میں سوچ کر سکتے ہیں ایک ہیش میز کے طور پر کے بائیں ہاتھ کی طرف ایک سے منسلک فہرست میں کے نتیجے میں. آپ کو ایک مل جائے تو جس کا فائدہ ہے ایلس اور ہارون کے درمیان تصادم، آپ کے ساتھ کیا کروں دوسرے ایسے شخص؟ تم صرف اس سے منسلک یا اس کے آخر، یا اس سے بھی آغاز اس سے منسلک فہرست میں. اور اصل میں، کے ذریعے صرف نوڈل چلو یہ صرف ایک پل کے لئے. جہاں سب سے زیادہ احساس کرے گا؟ میں یلس داخل کریں اور وہ میں ختم ہو جاتی ہے تو پہلی جگہ، تو میں کرنے کی کوشش کریں ہارون کا نام داخل کریں، اور وہاں ہے ظاہر ہے ایک تصادم، میں ڈال چاہئے اس کے آغاز میں سے منسلک فہرست میں؟ یہی وجہ ہے کہ کہ پہلے مقام پر ہے یا آخر میں؟ سامعین: [اشراوی]. DAVID MALAN: ٹھیک ہے. میں نے شروع میں سنا. کیوں شروع میں؟ سامعین: [اشراوی]. DAVID MALAN: ٹھیک ہے. یہ حروف تہجی کے اعتبار ہے، یہ اچھا ہے تو. یہ ایک اچھی جائیداد ہے. یہ میرے ممکنہ طور پر کچھ وقت بچا لے گا. یہ میرے بائنری تلاش کرتے ہیں، لیکن نہیں رکھا جائے میں کم از کم باہر کو توڑنے کے لئے قابل ہو سکتا ہے مجھے پتہ ہے اگر ایک لوپ کے، اچھی طرح سے، میں راستے میں ہوں ماضی تھے ہارون اس میں ہو گا منسلک کی فہرست کے مطابق. میں دیکھ میرا وقت برباد کرنے کی ضرورت نہیں آخر تک پورے راستے. تاکہ مناسب ہے. کیوں نہیں تو تم ڈالنے کے لئے چاہتے ہیں کر سکتے میں colliding نام فہرست کا آغاز؟ وہ کیا ہے؟ سامعین: [اشراوی]. DAVID MALAN: یہ ایک طویل وقت لگ سکتا ہے فہرست کے آخر تک حاصل کرنے کے لئے. اور حقیقت میں، اب اور طویل. آپ داخل مزید نام ہے کہ اے، اب اس کے ساتھ شروع چین حاصل کرنے کے لئے جا رہی ہے. اب سے منسلک ہے کہ فہرست حاصل کرنے کے لئے جا رہی ہے. تو کیا تم واقعی صرف ہو اپنا وقت برباد کر. شاید آپ کو برقرار رکھنے کے بہتر دور ہو مسلسل اضافے کا وقت، 1 کے بڑے اے، ہمیشہ colliding نام میں رکھ کر منسلک فہرست کے آغاز، اور بہت کچھ کے طور پر فکر مند نہیں چھانٹ رہا ہے کے بارے میں. بہترین جواب کیا ہے؟ یہ واضح ہے. یہ قسم کے پر انحصار کرتا ہے کیا تقسیم کے پیٹرن کیا ہے، ہے ناموں کی آپ کو داخل کر رہے ہیں. یہ ضروری نہیں ہے ایک واضح جواب. لیکن یہاں پر، پھر، ہے ایک ڈیزائن موقع. تو ہم نے اس کے بعد، اس چیز کی طرف دیکھا جو واقعی میں دوسرے بڑے موقع ہے P-سیٹ 6. اور، آپ پہلے سے ہی نہیں ہے، تو احساس ہیش ان دونوں میں Zamyla dives، میزیں اور مزید تفصیل سے کوشش کرتا ہے،. اور ویڈیو واک تھرو ہے P-سیٹ رپورٹ میں سرایت. یہ ایک trie تھا - T-R-میں E-. اور کے بارے میں دلچسپ کیا تھا یہ کہ رننگ ٹائم تھا میکسویل کی طرح، ایک نام کے لئے تلاش کی آخری بار، اس کی بڑی اے تھا؟ وہ کیا ہے؟ سامعین: حروف کی تعداد. DAVID MALAN: حروف کی تعداد. میں نے دو چیزوں کو سنا. حروف اور مسلسل وقت کی تعداد. اس لئے کی کہ پہلی کے ساتھ چلتے ہیں. حروف کی تعداد. ٹھیک ہے، یہ آنکڑا ڈھانچہ، یاد، ہے ایک درخت، ایک خاندان کے درخت میں سے ہر ایک کو پسند جن نوڈس arrays سے بنا رہے ہیں. اور ان arrays کے اشارہ ہیں اس جیسے دیگر نوڈ، یا ایسی دوسری درخت میں arrays. پھر ہم اس بات کا تعین کرنا چاہتا تھا تو اگر میکسویل یہاں ہے، چاہے میں جا سکتا ہے بہت سے اوپر دیئے گئے پہلے سرنی، پر درخت، نام نہاد جڑ، کے سب سے اوپر پھر trie، اور ایم پوائنٹر کی پیروی، اس کے بعد پھر ایک پوائنٹر، X، W، E، L، L. اور پھر میں نے، کوئی خاص نشانی دیکھ کر ایک مثلث کے طور پر یہاں ظاہر. کوڈ میں آپ کی تجویز ہم دیکھیں گے کہ آپ صرف ہاں کہہ، ایک bool کے طور پر لاگو کیا یا نہیں، ایک لفظ یہاں روکتا ہے. ویسے، ایک بار ہم M-A-X-W-E-L-L کرنے کے لئے چلے گئے، ہو سکتا، سات جیسا لگتا ہے آٹھ ہم اسے گزشتہ ایک، آٹھ جانا تو میکسویل تلاش کرنے کے لئے اقدامات. یا اس کے فون کرتے ہیں لیکن گزشتہ یاد وقت، میں وہاں ہے کہ اگر دلیل دی ایک حقیقت پسندانہ پر زیادہ سے زیادہ لمبائی لفظ، 40 کچھ عجیب حروف کی طرح، ایک زیادہ سے زیادہ لمبائی مطلب ایک مسلسل قیمت. تو واقعی میں، جی ہاں، یہ تکنیکی طور پر بڑا ہے اے لیکن 8 یا 7، یا کشمیر کا بہت بڑا اے کے کیا پر ایک تبدوست ٹوپی ہے تو کشمیر ہو سکتا ہے، یہ ایک مسلسل ہے. اور تو اس 1 کے بڑے اے میں ہے دن کے اختتام. نہیں حقیقی دنیا میں. آپ اصل میں دیکھ کر شروع نہیں جب آپ کے پروگرام کی دوڑ کے طور پر آپ گھڑی. یہ بالکل ایک سا ہونے جا رہا ہے واقعی مسلسل سے زیادہ سست ایک قدم کے ساتھ وقت. یہ سات یا آٹھ مراحل پر ہونے جا رہا ہے لیکن اس کے باوجود کہ بہت، بہت کچھ بہتر ہے کہ (ن) کے بڑے اے کی طرح ایک الگورتھم سے زیادہ میں کیا ہے کے سائز پر منحصر ہے آنکڑا ڈھانچہ. یہاں الٹا ہم داخل کر سکتا ہے نوٹس اس میں ایک ملین سے زیادہ کے نام آنکڑا ڈھانچہ، لیکن کتنے اقدامات اسے تلاش کرنے کے لئے ہمیں لے جا رہا ہے اس صورت میں میکسویل؟ کوئی بھی نہیں. انہوں نے کہا کہ اپرباویت ہے. اور تاریخ کے لئے، میں ہم نے دیکھا نہیں لگتا ایک اعداد و شمار کے ڈھانچے یا ایک کی ایک مثال مکمل طور پر تھا کہ الگورتھم بیرونی کی طرف سے اپرباویت اس طرح کے طرز عمل. لیکن یہ حیرت انگیز نہیں ہو سکتا. اس کا واحد حل نہیں ہو سکتا P-سیٹ کے لئے اور یہ نہیں ہے. یہ اعداد و شمار ضروری نہیں ہے ساخت آپ پر gravitate چاہئے کیونکہ ہیش میزیں، جیسے tradeoff. آپ یہاں ادا کی قیمت کیا ہے؟ میموری. میرا مطلب ہے، یہ ایک atrocious ہے میموری کی رقم. اور تم بالکل اسے یہاں نہیں دیکھ سکتے کیونکہ اس تصویر کے مصنف ظاہر ہے، arrays کے تمام مقطوعہ اور ہم نے ایک کی کے بہت سے دیکھنے اور نہیں کر رہے ہیں بی اور سی کی اور (ق) کی اور y کی اور Z کی ان arrays میں. لیکن وہ وہاں ہیں. ان مراکز میں سے ہر ایک مکمل سرنی ہے کچھ 26 یا اس سے زیادہ بائٹس، میں سے ہر ایک کے جو ایک خط کی نمائندگی کرتا ہے. ہم مدد کر سکتے ہیں تا کہ ہمارے کیس میں 27، مسئلہ سیٹ میں apostrophes. یہ آنکڑا ڈھانچہ واقعی ہے، واقعی گھنے اور وسیع. اور اکیلے اس سست ختم ہو سکتا ہے چیزوں کے نیچے، یا کم از کم آپ کو ایک کی لاگت بہت زیادہ جگہ. لیکن پھر ہم نے اپنی طرف متوجہ کر سکتے ہیں یہاں موازنہ. واپس تھوڑی دیر کو یاد ہے، ہم زیادہ سے زیادہ حاصل چھںٹائی میں زیادہ دلچسپ رننگ ٹائم ہم ضم ترتیب دیں، لیکن قیمت کا استعمال کرتے ہیں تو ہم انضمام کے لئے (ن) کے حصول N لاگ ان کرنے کی ادائیگی ترتیب دیں ہم خرچ کرتے ہیں اس کی ضرورت اور کیا ریسورس؟ زیادہ جگہ. ہم ایک ثانوی سرنی کی ضرورت ، جیسا کہ میں لوگوں کی کاپی ہم سٹیج پر یہاں کیا. تو ایک بار پھر، کوئی واضح فاتحین، لیکن صرف ساپیکش ڈیزائن فیصلے بنایا جائے. ٹھیک ہے. تو کس طرح اس کے بارے میں؟ کوئی بھی جو ڈی ہال پہچان؟ ٹھیک ہے. تو ہم تینوں ہیں. Mather ہاؤس. تو اس Mather کی کھانے کے لئے ہے. میں نے تمام ڈائننگ ہال ہے شرط لگا سکتا ہوں اس طرح ٹرے کی پوٹ. اور یہ اصل میں کا نمائندہ ہے ہم نے کچھ ظاہر ہے پہلے سے ہی دیکھا. ہم لفظی ایک اسٹیک یہ کہا جاتا. آپ کی شرائط میں اور اسٹیک، اعداد و شمار کی جاتی ہے جہاں کے کمپیوٹر کی میموری، ہے افعال کہا جاتا ہے کیا جا رہا ہے جبکہ. مثال کے طور پر چیزوں کو کس طرح جانا کرنے کے لئے احترام کے ساتھ اسٹیک پر ہم نے بات چیت کی ہے میموری ترتیب گزشتہ ہفتوں میں؟ وہ کیا ہے؟ سامعین: کام کرتا ہے کرنے کے لئے بلاتا ہے. DAVID MALAN: مجھے افسوس ہے. سامعین: کام کرتا ہے کرنے کے لئے بلاتا ہے. DAVID MALAN: افعال کیلئے کالیں، لیکن خاص طور پر، میں سے ہر ایک کے اندر کیا ہے ان فریم؟ چیزوں میں سے کس طرح؟ جی ہاں. مقامی متغیر تو. جب بھی ہم نے کچھ مقامی ذخیرہ کرنے کی ضرورت ایک دلیل کی طرح، یا INT میں، یا INT TEMP، یا جو کچھ بھی مقامی متغیر، ہم کیا گیا ہے ہے اسٹیک پر ڈال. اور ہم نے اسے ایک اسٹیک فون کی وجہ سے کہ layering خیال کی. حقیقت کے ساتھ میچوں میں سے صرف قسم کو، اس تصور. لیکن یہ باہر کر دیتا ہے ایک اسٹیک بھی کر سکتے ہیں کہ ایک ڈیٹا ڈھانچے کے طور پر دیکھا جا، ایک ایک سرنی کے متبادل، ایک متبادل ایک سے منسلک فہرست میں. conceptually زیادہ دلچسپ کچھ اب بھی ہو سکتا ہے ان میں سے کسی کے استعمال سے عملدرآمد چیزیں، لیکن اس کا ایک مختلف قسم ہے آنکڑا ڈھانچہ، واقعی، کی حمایت صرف دو آپریشن. لیکن آپ fancier پر شامل کر سکتے ہیں ان میں سے زیادہ خصوصیات. لیکن یہ بنیادی باتیں ہیں - دھکا اور POP. اور ایک اسٹیک کے ساتھ خیال ہے کہ اگر میں نے کے ساتھ یا اس کے بغیر Annenberg، یہاں ہے ، اگلے دروازے کی طرف سے ایک ٹرے جاننے کے اس پر نمبر 9 کے ساتھ. تو صرف ایک INT. اور میں اس کے اعداد و شمار پر آگے بڑھانے کے لئے چاہتے ہیں فی الحال خالی ہے جس کی ساخت،. یہ اسٹیک کے نچلے حصے پر غور کریں. میں پر اس نمبر 9 دھکا گے ڈھیر لگانا، اور اب یہ درست ہے. لیکن ایک اسٹیک کے بارے میں دلچسپ بات یہ ہے اب میں آگے بڑھانے کے لئے چاہتے ہیں تو یہ ہے کہ کچھ دوسری قدر کی طرح 17، اور مجھے دھکا اسٹیک پر اس کے، میں کرنے جا رہا ہوں ، میں نے ابھی جا رہا ہوں صرف بدیہی چیز حق ڈال کرنے کے لئے ہم کہاں انسانوں سب سے اوپر پر، یہ ڈال کرنے کے لئے مائل کیا جائے گا. لیکن اب کیا دلچسپ ہے ، کس طرح میں 9 سال میں حاصل کروں ہے؟ تم جانتے ہو، میں کچھ کوشش کے بغیر نہیں. تو اس کے بارے میں دلچسپ ہے ایک اسٹیک، اس کے ڈیزائن کی طرف سے ہے یہ ایک LIFO آنکڑا ڈھانچہ ہے. بیان کے پاگل طریقہ میں آخری سب سے پہلے باہر. تو آخری نمبر میں اس وقت 17 سال کی تھی. میں کچھ مر جانا چاہتے ہیں اگر ایسا ہے تو اسٹیک کے، یہ صرف 17 ہو سکتا ہے. تو اس کا ایک لازمی حکم ہے یہاں آپریشن، جہاں گزشتہ شے میں سب سے پہلے ایک ہونا ضروری ہے. لہذا مخفف، LIFO. تو کیوں اس مفید ہو سکتا ہے؟ ان کے سیاق و سباق کیا آپ ہوتا ہے جس میں اس طرح کے اعداد و شمار کے ڈھانچے چاہتے ہیں؟ ٹھیک ہے، یہ یقینی طور پر مفید ہو گیا ہے ایک کمپیوٹر کے اندر. تو آپریٹنگ سسٹمز واضح طور پر اس کا استعمال پوٹ کے لئے اعداد و شمار کے ڈھانچے کی قسم. ہم نے بھی اسی خیال دیکھیں گے ویب کے صفحات پر یہ آتی ہے تو. اس ہفتے کے اور اگلے ہفتے تو اور اس سے آگے، اور آپ کو ویب پر عمل درآمد شروع کرنے کے طور پر ایک زبان میں صفحات ایچ ٹی ایم ایل، آپ کر سکتے ہیں سے ملاقات کی اصل میں کی طرح ایک آنکڑا ڈھانچہ کا استعمال کرتے ہیں یہ تعین کرنے کے لئے اگر صفحہ درست شکل ہے. ہم دیکھیں گے کیونکہ تمام ویب صفحات کو فالو کریں تنظیمی ڈھانچے کا ایک طرح سے، ایک پوٹ کاری ، دن کے آخر میں، ایک ہو جائے گا ہڈ کے نیچے درخت کا ڈھانچہ. صرف تھوڑا سا میں اس پر تو زیادہ. لیکن اب کے لئے، کی ایک کے لئے تجویز کرتے ہیں پل، ہم کے بارے میں کیسے جا سکتا ہے ایک اسٹیک کیا ہے؟ کی نمائندگی ہم پر عمل درآمد نے مجھے تجویز کرتے ہیں اس طرح کے کوڈ کے ساتھ ایک اسٹیک. تو ایک اسٹیک اس کے اندر ہونے والا ہے دو چیزیں، ایک سرنی، کہا جاتا ٹرے، صرف ڈیمو کے ساتھ مسلسل ہو. اور اس صف میں اشیاء میں سے ہر ایک ایک قسم INT بننے جا رہی ہے. اور صلاحیت شاید کیا ہے؟ میں نہیں لکھا ہے کیونکہ یہاں مکمل تعریف. شاید یہ زیادہ سے زیادہ ہے سرنی کے سائز. اور یہ شاید ایک تیز قرار دیا ہے بعض فائل کے سب سے اوپر کی وضاحت مسلسل کی طرح کے طور پر کی طرف سے تقاضا صرف بڑے حروف تہجی. تو کہیں صلاحیت بیان کیا جاتا ہے زیادہ سے زیادہ ممکن سائز کے طور پر. دریں اثنا، اندر اعداد و شمار کے ڈھانچے کی ایک اسٹیک کے طور پر جانا جاتا ہے وہاں گی صرف نام سے جانا جاتا ایک عدد صحیح ہونا صرف سائز کے طور پر. اب میں اس کی نمائندگی کرنے کے لئے تھے تو اگر pictorially، کی فرض کرتے ہیں کہ اس پوری بلیک باکس میرے اسٹیک کی نمائندگی کرتا ہے. اس کے اندر دو متغیر ہے. لہذا میں اپنی طرف متوجہ کرنے کے لئے جا رہا ہوں سائز کے طور پر سب سے پہلے. اور میں جا رہا ہوں دوسرا ایک سرنی کے طور پر اپنی طرف متوجہ کرنے کے لئے. لیکن صرف، چیزوں کو منظم رکھنے کے لئے عام طور پر میں کی طرح ایک سرنی اپنی طرف متوجہ کرے گا اچھا یہ، لیکن اس کی قسم ہم حقیقت سے مطابقت، یا اگر ذہنی ماڈل سے ملاتے ہیں. تو مجھے اس کی بجائے سرنی اپنی طرف متوجہ کرتے ہیں عمودی طور پر، جس میں صرف ایک بار پھر ہے، مصور کے گاین. کیا واقعی کوئی فرق نہیں پڑتا ہڈ کے نیچے ہے. اور ہم، ڈیفالٹ کی طرف سے، کہیں گے کہ صلاحیت تین بننے جا رہی ہے. لہذا اس مقام 0، یہ ہو جائے گا مقام 1، یہ ہو جائے گا محل وقوع 2 ہو جائے گا. میں نے ایک گیند کے ساتھ کشیدگی رشوت ہے تو، گے کسی کے آنے اور چلانے کے لئے پسند صرف ایک لمحے کے لئے یہاں سوار؟ ٹھیک ہے، سب سے پہلے آپ کے ہاتھ دیکھا. اپ چلو. ٹھیک ہے. تو میں نے یہ سٹیون ہے. اپ چلو. ٹھیک ہے. لیکن اب ہم نے ابتدائی طور پر کرنے کے لئے ماضی مان لیں دنیا کی ریاست جہاں میں صرف ایک اسٹیک کا اعلان کر دیا، اور یہ ہے کیا ہے صلاحیت تین میں سے ہونے جا رہا. لیکن سائز کا تعین ابھی نہیں کیا گیا ہے. ٹرے ابھی تعین نہیں کیا گیا ہے. پہلے سوال کے ایک جوڑے تو. اور مجھے تم مائک دے دو آپ کر سکتے ہیں تو اس میں زیادہ سرگرمی سے حصہ لینا. تو سائز کے اندر اس وقت کیا ہے وقت میں میں نے کیا ہے اگر کے ساتھ ایک اسٹیک کا اعلان کر دیا کوڈ کی ایک لائن؟ سٹیون: زیادہ نہیں. DAVID MALAN: ٹھیک ہے، زیادہ نہیں. ہم، سائز کے اندر کیا ہے جانتے ہو ہم اندر ہے میں کیا جانتے ہیں یہاں اس سرنی کی؟ سٹیون: بس بے ترتیب کوڈ، ہے نا؟ بس - DAVID MALAN: جی ہاں، میں جا رہا ہوں اس کوڈ کو فون، لیکن بے ترتیب - سٹیون: اشیاء. DAVID MALAN: بے ترتیب کی طرح چیزیں سٹیون: بٹس. DAVID MALAN: بٹس، ہے نا؟ ردی کی ٹوکری میں اقدار تو، ہے نا؟ لہذا 0 اور 1 کی ترتیب. گزشتہ usages کی باقیات یہ میموری کی. اور ہم سچ میں پتہ نہیں کیا اقدار ، تو ہم عام طور پر ان کو اپنی طرف متوجہ کر رہے ہیں سوال نمبروں کے طور پر. ہم شاید ہیں تو سب سے پہلی چیز یہاں کرنا چاہتے ہیں جا - اور میرے اندر اس میدان دے دو ٹرے - وہاں ایک نام کے. ہم شاید کیا ابتدا چاہئے سائز کرنا چاہتے ہیں تو ہم پر یہ اسٹیک کا استعمال کرتے ہوئے شروع کرنے کے؟ سٹیون: ٹرے ذیلی 3 ہے. DAVID MALAN: تو، ٹھیک ہے. واضح کرنے کے لئے، کی صلاحیت کا اعلان کر دیا ہے کہیں اور تین کے طور پر. اور یہ کہ میں نے استعمال کیا ہے کیا ہے سرنی مختص. سائز کا حوالہ دیتے جا رہا ہے کتنے ٹرے اسٹیک پر ہیں. سٹیون: صفر. DAVID MALAN: تو یہ صفر ہونا چاہئے. لہذا آگے بڑھیں، اور کسی بھی انگلی سے، سائز میں ایک صفر اپنی طرف متوجہ. ٹھیک ہے. تو اب، اس کے اندر کیا ہے یہاں، ہم نہیں جانتے. یہ واقعی صرف ردی کی ٹوکری میں اقدار ہیں. تو ہم نے سوال نمبر اپنی طرف متوجہ، لیکن کر سکتے ہیں اب کے لئے بورڈ کو صاف رکھنے کے لئے دو کی اسے کوئی فرق نہیں پڑتا کیونکہ وہاں کیا ہے. ہم سرنی کی ابتدا کی ضرورت نہیں ہے کچھ بھی کرنے کے لئے، ہم جانتے ہیں کہ کیونکہ اگر اسٹیک کے سائز صفر ہے، اچھی طرح سے، ہم میں کچھ بھی دیکھ نہیں ہونا چاہئے ویسے بھی میں اس سرنی اس نقطہ وقت میں. تو اب میں دھکا ہے کہ لگتا ہے اسٹیک پر نمبر 9. ہم کس طرح کے اعداد و شمار کے ڈھانچے کو اپ ڈیٹ ہونا چاہئے اس بلیک باکس کے اندر؟ کیا اقدار کو تبدیل کرنے کی ضرورت ہے؟ سٹیون: کے اندر اندر - سائز؟ DAVID MALAN: ٹھیک ہے. سائز کیا ہونا چاہئے؟ سٹیون: سائز ایک ہو جائے گا. DAVID MALAN: ٹھیک ہے. تو سائز ایک بن چاہئے. تو تم ایک دو طریقوں سے ایسا کر سکتے ہیں. اب، میں آپ کو دیتا ہوں آپ انگلی ایک صافی ہے. ٹھیک ہے. تو اب اپنی انگلی ایک برش ہے. ٹھیک ہے. اور اب اور کیا، تبدیل کرنے کے لئے ہے ظاہر ہے، اعداد و شمار کے ڈھانچے میں؟ سٹیون: ہم سے جا رہے ہیں 9 سب سے نیچے تک. DAVID MALAN: 9. ٹھیک ہے، اچھا ہے. تو اب بھی میں کیا کوئی فرق نہیں پڑتا محل وقوع ایک یا دو وہ ہو کیونکہ ردی کی ٹوکری میں اقدار، لیکن ہم پریشان نہیں ہونا چاہئے سائز ہے کیونکہ وہاں لگ ہمیں بتا کہ صرف پہلا عنصر اصل میں جائز ہے. تو اب میں فہرست پر 17 دھکا. کیا اس تصویر کو کیا ہوتا ہے؟ سٹیون: تو دو سائز میں جانے کے لئے جا رہی ہے. DAVID MALAN: ٹھیک ہے. آپ صافی ہیں - افوہ. آپ کو ایک صافی ہیں. سٹیون: صافی. DAVID MALAN: آپ ایک برش ہیں. سٹیون: برش. DAVID MALAN: ٹھیک ہے. اور کیا؟ پھر اور ہم -: سٹیون DAVID MALAN: ہم 17 دھکیل دیا. سٹیون: ہم ایسا ہے، تو سب سے اوپر پر 17 رہنا - DAVID MALAN: ٹھیک ہے، اچھا ہے. سٹیون: - نیچے چھوڑ. DAVID MALAN: ٹھیک ہے. یہ آسان ہوتا جا رہا ہے. میں آپ کو اس وقت مدد کرنے کے لئے نہیں جا رہا. 22 پش. سٹیون: ہوگیا. ایک صافی بننے. میں نے ایک برش ہوتا جا رہا ہوں. اور پھر میں 22 ڈال رہا ہوں. DAVID MALAN: 22. بہترین. تو ایک بار. اب میں آگے بڑھانے کے لئے جا رہا ہوں اسٹیک 26 پر. سٹیون: ؤہ. ہے بھگوان. تم سچ میں گارڈ آف مجھے پکڑ لیا. DAVID MALAN: تم نے نہیں اس آنے والے دیکھ رہے ہو؟ سٹیون: میں اس آتے ہوئے نہیں دیکھا. ہم دوبارہ ابتدائی صلاحیت سکتا ہے؟ DAVID MALAN: یہ ایک اچھا سوال ہے. تو ہم قسم کی خود پینٹ کیا ہے یہاں ایک کونے میں. واقعی سٹیون کے لئے اچھی باہر نہیں ہے ہم اس سرنی مختص ہے کیونکہ statically، تو اندر، بات کرنے کے لئے اعداد و شمار کے ڈھانچے کی. اور ہم نے بنیادی طور پر مشکل کوڈت ہے یہ سائز تین میں سے ہو. تو ہم واقعی یہ reallocate نہیں کر سکتے ہیں. ہم ہم، میں واپس چلے گئے تو ٹرے کہ پوائنٹر ہونا بازوضاحتی پھر ہم پر ہاتھ میموری پر malloc استعمال کرتے ہیں. کیونکہ ہم سے میموری مل گیا تو malloc کے ذریعے ڈھیر، ہم تو اسے آزاد کر سکتے ہیں. لیکن یہ آزاد کرنے سے پہلے، ہم کر سکتے تھے ، میموری کا ایک بڑا حصہ reallocate پوائنٹر کو اپ ڈیٹ کریں، اور تو آگے. لیکن اب کے لئے، یہ سچ ہے سب سے بہتر ہم کر سکتے ہیں. پش اور POP شاید جا رہے ہیں کچھ غلطی کا اشارہ کرنے کے لئے ہے. لہذا مثال کے طور پر، ہماری نفاذ دھکا ایک bool واپس کر سکتے ہیں میں سے کون سا پہلے سچ، سچ، سچ واپس آئے. لیکن چوتھی بار، یہ جا رہا ہے مثال کے طور پر، جھوٹی واپس لوٹنے کے لئے. ٹھیک ہے. بہت اچھا کیا. مبارک ہو. آج تم اپنے کشیدگی گیند کمایا ہے. [تالیاں] سٹیون: آپ کا شکریہ. DAVID MALAN: آپ کا شکریہ. ٹھیک ہے، تو اتنا نہیں ہو رہا ہے مستقبل کے حوالے سے ایک قدم کے، ہے نا؟ ہم اس آنکڑا ڈھانچہ قرار دیا. یہ درست ہے، مجبور کیا گیا ہے؟ آپریٹنگ سسٹمز کو یہ پسند. بظاہر ویب، اس کے استعمال کر سکتے ہیں اب بھی اور دیگر ایپلی کیشنز. لیکن ہم جو کر رہے ہیں کہ ایک بیوکوف کی حد ترتیب دیں کے ہفتے میں دو کی حدود میں واپس ہم کہاں سائز arrays طے کی ہے. تو اس کے ایک جوڑے بے شک موجود ہیں طریقوں سے ہم اس کو حل کر سکتے ہیں. ہم کو متحرک، سرنی مختص کر سکتے ہیں میں نے کے طور پر کی طرف سے مشکل یہ کوڈنگ نہیں یہاں کیا، بلکہ اس کی بجائے دوبارہ اعلان یہ بالکل اسی طرح جیسے میں واضح رہنا کچھ اس طرح. INT * ٹرے، فیصلہ نہیں ابھی تک کی صلاحیت پر. لیکن میں نے کہیں اور اسٹیک اعلان جب اپنے کوڈ میں، میں تو، malloc کہہ سکتے ہیں کے ایک حصہ کا پتہ ملتا ہے میموری، اور میں تفویض کر سکتے ہیں ٹرے کرنے کے لئے اس ایڈریس. اور پھر، کیونکہ یہ صرف ایک حصہ ہے میموری، میں مربع استعمال کرنے کے لئے جاری کر سکتے ہیں ہمیشہ کی طرح راہ میں بریکٹ سنکیتن. ایک بار پھر، اس قسم کی ہے کیونکہ فعال arrays کے برابر اور آنے والی میموری کی مقدار واپس malloc سے. ہم دیگر کے طور پر ایک ہی علاج کر سکتے ہیں پوائنٹر ریاضی کا استعمال کرتے ہوئے یا مربع بریکٹ سنکیتن. تو یہ ایک نقطہ نظر ہے. لیکن کس طرح نہیں تو ہم اس کو نافذ کر سکتے ہیں اسی آنکڑا ڈھانچہ، ممکنہ طور پر؟ ٹھیک ہے؟ ہم صرف یہ حل مجھے لگتا ہے جیسے ایک ہفتہ پہلے کی طرح مسئلہ. اس مسئلہ کا حل کیا تھا سٹیون سے ٹکرا گئے ہیں؟ تو منسلک فہرستوں، ٹھیک ہے. مسئلہ ہم پینٹنگ کر رہے ہیں یہ ہے کہ تو مختص کی طرف سے ایک کونے میں خود پیشگی بہت کم یاد میں ہے کہ ہم پھر کسی نہ کسی طرح، اچھی طرح سے، سے نمٹنے کے لئے ہے کیوں صرف اس سے بچنے کے لئے نہیں مکمل طور پر جاری؟ کیوں صرف ٹرے ایک ہونے کا اعلان نہیں ایک نوڈ، لہذا ایک سے منسلک فہرست، پر پوائنٹر اور اس کے بعد صرف نئے نوڈ مختص سٹیون ایک فٹ ہونے کے لئے کی ضرورت ہر وقت اعداد و شمار کے ڈھانچے میں تعداد. تو تصویر کو تبدیل کرنا پڑے گا. یہ صاف اور کے طور پر بننے والا نہیں ہے تین ints کے صرف ایک سرنی کے طور پر آسان ہے. اب یہ ایک کے لئے ایک پوائنٹر ہونے جا رہا ہے struct، اور اس struct جا رہا ہے ایک INT اور ایک اگلے پوائنٹر ہے. یہ اتنا پوائنٹر کے ذریعے کی قیادت کرنے والا ہے ایک اور ایسی struct کرنے کے لئے ایک اور ایسی struct. تو تصویر دراصل گے تھوڑا سا messier ملتا ہے. اور ہم تیر باندھنے ہوتا ایک دوسرے کے ساتھ سب کچھ. لیکن اس کی وجہ سے، ٹھیک ہے، ٹھیک ہے ہم یہ کس طرح دیکھا ہے. اور ایک بار آپ کو آرام دہ اور پرسکون ہو جاؤ ایک لنک کی طرح عمل درآمد کچھ تمہیں کیا کرنا پڑے گا جس کی فہرست، اگر آپ کے ساتھ ایک ہیش میز لاگو کرنے کے لئے انتخاب کرتے ہیں P-سیٹ 6 کے لئے علیحدہ chaining، آپ کر سکتے ہیں ایک عمارت بلاک، یا ایک کے طور پر اس کا استعمال جزو، یا شروع میں ایک، بات ضابطے کی، تم، تم ڈال دیا کہ کچھ آپ کی اپنی پہیلی ٹکڑا پیدا کیا اگر آپ کو دوبارہ استعمال کر سکتے ہیں. تو tradeoffs، لیکن ممکنہ حل ہم اصل میں اس سے پہلے دیکھا ہے کہ. تو اکثر، آپ کو اس سے ہر دیکھنا یا دو سال میں جب ایپل ریلیز نئے، اور تمام لوگوں کو پاگل کچھ ایپل کے باہر لائن ان کے معمولی خریدنے کے لئے ذخیرہ ہارڈویئر پر اپ گریڈ. میں اس کا کہنا ہے کہ، اس وجہ سے، ٹھیک ہے میں ان لوگوں میں سے ایک ہوں. تو کس طرح کے اعداد و شمار کے ڈھانچے کی اس حقیقت کی نمائندگی کر سکتے ہیں؟ ٹھیک ہے، کی یہ ایک قطار، ایک لائن کو کال کرتے ہیں. لہذا برطانوی یہ عام طور پر ایک فون کرے گا قطار ویسے بھی، تو یہ ایک اچھا نام ہے. اور یہ کہ ایک قطار میں دو آپریشن ہم نے ایک enqueue فون کروں گا کی حمایت کرے گا آپریشن اور ایک dequeue آپریشن، جس میں ملتے جلتے ہیں دھکا اور POP کی روح. اس میں مختلف قسم کی صرف ہے کنونشن، کیا ہم ان کو بلا رہے ہیں. لیکن کچھ enqueue میں شامل کرنے کا مطلب ہے کہ یا آنکڑا ڈھانچہ اسے ڈالیں. dequeue اسے دور کرنے کے لئے کا مطلب ہے. لیکن ایک اسٹیک ایک LIFO کے اعداد و شمار تھی جبکہ ساخت، ایک قطار، ایک سب سے پہلے میں ہے اعداد و شمار کے ڈھانچے سے باہر سب سے پہلے. آپ کو لائن میں سب سے پہلے شخص ہیں تو اگر آپ کو حاصل کرنے کے لئے پہلا شخص ہو گا لائن کے باہر اور آپ کے نئے آلہ خریدنے. یہ لوگ کس طرح پریشان ہو جائے گا کا تصور ایپل بجائے اسٹیک استعمال کیا جاتا ہے تو، کے لئے مثال کے طور پر، منتخب لاگو کرنے کے لئے اپنے نئے کھلونے سے. تو قطاروں یقینی طور پر، سمجھ، اور ہم ہر قسم کے بارے میں سوچ کر سکتے ہیں ایپلی کیشنز، شاید، قطار کے لئے، آپ انصاف چاہتے ہیں خاص طور پر جب. تو کس طرح ہم ان کو نافذ کر سکتے ہیں ایک ڈیٹا ڈھانچے کے طور پر؟ ٹھیک ہے، میں ہے کہ ہم شاید تجویز یہ اس طرح کرنے کی ضرورت ہے. تو اب میں نمبرز حاصل کرنے جا رہا ہوں. تو ہم اس سادہ اور نہیں رکھیں گے ضروری ٹرے کی شرائط میں بات کریں. کے عوام مل بس کی تعداد ہے. صلاحیت پھر جا رہا ہے، ٹھیک کرنے میں ہو سکتا ہے کہ لوگوں کی کل تعداد اس لائن کے طور پر تین یا اس سے دوسرے جو بھی قیمت. لیکن میں میں ٹریک رکھنے کے لئے کی ضرورت ہے تجویز کے سائز کے نہ صرف قطار، اس میں کتنی چیزیں ہیں. تو سائز موجودہ سائز، کی صلاحیت ہے زیادہ سے زیادہ سائز ہے. بس پھر نام کنونشن کی طرف سے. میں کیوں ایک اضافی INT کے اندر کی ضرورت ہے میں کون ہے کا ٹریک رکھنے کے لئے ایک قطار میں لائن کے سامنے؟ میں کیوں اس معاملے میں ایسا کرنے کی ضرورت ہے؟ ٹھیک ہے، اس تصویر کو کس طرح ہے تبدیل کرنے کے لئے جا رہے ہیں؟ میں شاید سب سے زیادہ دوبارہ استعمال کر سکتے ہیں اس تصویر کی. مجھ سے آگے بڑھو اور یہاں کیا ہے مٹا دو. ہم نے اس تھوڑی دیں گے یہاں مختلف نام ہیں. 17 سے چھٹکارا حاصل چلو، چلو چھٹکارا حاصل 9، کی 3 سے چھٹکارا حاصل کر لیں. اور کی ایک اور چیز شامل ہیں. میں کا ٹریک رکھنے کے لئے کی ضرورت ہے تجویز فہرست کے سامنے، جس میں صرف یہ ہے اس کے ساتھ ساتھ ایک INT ہونے جا رہا. اور ہم اس آسان رکھنے کے لئے جا رہے ہیں. اب کے لئے کوئی منسلک فہرست. ہم جا رہے ہیں یہ تسلیم کریں گے اس حد کے خلاف اٹھ ٹکرانا. لیکن میں دیکھنے کے لئے کیا چاہتے ہیں اس وقت کیا ہو؟ میں آگے بڑھو اور سب سے پہلے تو لگتا ہے انسان لائن میں آتا ہے، اور یہ تعداد 9 ہے. ہم کشیدگی گیند ہے. میں، کا کہنا ہے کہ دو یا تین لوگوں کو چرا سکتا ہوں؟ ایک، دو، تین؟ اپ چلو. حق کے سامنے سے، کیونکہ ہم اس سے ایک فوری تشکیل دیں گے. تم میں سے ہر اب ہونے جا رہا ہے ایپل میں لائن میں ایک پرستار لڑکے. آپ ایپل ہارڈ ویئر وصول ریکارڈ نہیں رکھا جائے اگرچہ اس کے آخر میں. ٹھیک ہے. آپ کی تعداد 9 ہو تو، تم ہو نمبر 17، نمبر 22. ان کی طرح، صوابدیدی نمبرز ہیں طالب علم کی شناخت یا whatnot. اور صرف ایک لمحے میں، شروع کرتے ہیں چیزوں کو انہوں نے مزید کہا شروع کرنے کے لئے. اور میں یہاں اس وقت بورڈ چلانے گے. تو اس معاملے میں، میں initialized ہے سامنے ہونا - میں اصل میں واقعی پرواہ نہیں کیا سائز صفر ہے کیونکہ سامنے ہے. تو اس کے ساتھ ساتھ صرف طاقت ایک سوالیہ نشان ہو. یہ تمام سوال کے نشانات ہیں. تو اب ہم اصل میں کچھ دیکھنا شروع کر دیں گے لوگوں کی دکان میں استر. تو نمبر 9، تو آپ سب سے پہلے ایک ہو وہاں 5 am پر،، آگے بڑھو اور قطار یا اس سے قبل رات. ٹھیک ہے. تو اب 9 یہاں ہے. تو 9 کی فہرست کے سامنے ہے. تو میں نے آگے بڑھو اور اپ ڈیٹ کرنے جا رہا ہوں اس کے موجودہ اعداد و شمار کا سائز ساخت، اب 0 نہیں کرنے کے لئے لیکن اس کی 1 ہو. میں میں 9 ڈالنے کے لئے جا رہا ہوں فہرست کے سامنے. مجھ سے آگے بڑھو اور اسکرین کو ٹاگل کرنے دو تو ہم نے ہمیں یہاں ماضی دیکھ سکتے ہیں. اور اب میں کیا چاہتے ہو سامنے میں ڈال دیا ہے؟ میں ٹریک رکھنے کے لئے جا رہا ہوں کہ ابھی قطار کے سامنے 0 محل وقوع پر ہے. آگے کیا ہونے جا رہا ہے کیونکہ؟ اچھا، مجھے enqueue اب لگتا ہے 17 کے طور پر اچھی طرح سے. تو وہاں قطار میں ہاپ. اور پھر دروازے کی طرح سٹور یہاں ہونے جا رہا ہے. تو اب میں 17 اضافہ کر دیا ہے. اور ان لوگوں کو بلاک کر رہے ہیں اگرچہ ٹھیک ہے کہ سکرین،، ہم یہاں اسے دیکھ سکتے ہیں کیونکہ. معاف کیجئے گا. سامعین: ہم میں منتقل کر سکتے ہیں - DAVID MALAN: نہیں، وہ ٹھیک ہے. یہ وہاں بہت بڑا ہے. تو 17 کے اندر قطار کے اب ہے. میں جس کو اپ ڈیٹ کرنے کی ضرورت ہے کھیتوں اب اگرچہ؟ ٹھیک ہے، یقینی طور پر سائز. اور کس طرح سامنے کے بارے میں؟ ٹھیک ہے، نہیں. فرنٹ، کو تبدیل نہیں کرنا چاہئے کیونکہ ایک اسٹیک کے برعکس، ہم شفافیت برقرار رکھنے کے لئے چاہتے ہیں. 9 سب سے پہلے میں آیا تھا اگر ایسا ہے تو ہم 9 چاہتے ہیں لائن کی پہلی باہر ہونا اور اسٹور میں. اصل میں، کی ہے کہ دیکھتے ہیں. ہم 22 داخل کرنے سے پہلے، چلو آگے بڑھو اور dequeue 9. تمہارا نام کیا ہے دوبارہ؟ سامعین: جیک. DAVID MALAN: جیک جا رہا ہے اب dequeued جائے گا. تو آپ کی دکان میں چلنے کے لئے ملتا ہے. اور دکھاوا کہ سٹور وہاں ہے. تو اب کیا ضرورت ہے - ڈیآئٹی-ڈیآئٹی-ڈیآئٹی! کیا اب ایسا کرنے کی ضرورت ہے؟ ڈیزائن فیصلہ. ایسا نہیں ایک برا سنتیں، لیکن - تمہارا نام کیا ہے دوبارہ؟ سامعین: ڈیوڈ. DAVID MALAN: ڈیوڈ. تب داؤد نے کیا کیا؟ انہوں نے کہا کہ اعداد و شمار کو درست کرنے کے حل کرنے کی کوشش کر رہا تھا اپنے مقام سے ساخت اور اقدام جیک کے سابق محل میں. ہم تیار ہیں اور اگر وہ ٹھیک ہے ایک کے طور پر اس کو قبول کرنے سے نفاذ تفصیل. لیکن اس سے پہلے کے اعداد و شمار کو اپ ڈیٹ کرتے ہیں ہم ڈھانچہ ایسا کرنے سے پہلے. میں نے سب کا خیال پسند نہیں کر رہا ہوں کیونکہ لوگ اس لائن میں منتقل. ڈیوڈ کے ساتھ یہ کرتا ہے تو یہ کوئی بڑی بات نہیں ایک قدم ہے، لیکن پھر میں واپس لگتا ہے ہم پر آٹھ رضاکاروں تھا جب اسٹیج اور ہم اندراج کی طرح کیا ہے ہم شروع کرنے کے لئے تھا جہاں ترتیب دیں، سب کے ارد گرد آگے بڑھ رہے ہیں. یہ ٹھیک ہے، مہنگی مل سکا؟ یہ بڑی اے کے بارے میں مجھے چاپلوسی کرتا ہے (ن) کے، (ن) کے بڑے اے دوبارہ مربع. ایسا نہیں لگ رہا ہے ایک مثالی نتائج. تو اس کی صرف اس کی تازہ کاری کرتے ہیں. تو قطار کا سائز اب کوئی 2 ہے. اب یہ صرف 1 ہے. لیکن اب میں کچھ کو اپ ڈیٹ کر سکتے ہیں میں نے پہلے کو اپ ڈیٹ نہیں کیا، فہرست کے سامنے. میں صرف یہ کہہ سکتے ہیں، اس مقام 1 ہے؟ تو اب ہم یہاں ردی کی قیمت ہے ردی کی ٹوکری یہاں قیمت، اور میں ڈیوڈ یہ ردی کی ٹوکری کے درمیان. لیکن آنکڑا ڈھانچہ اب بھی برقرار ہے. اور حقیقت میں، میں بھی کرنے کی ضرورت نہیں جیک کی سابق نمبر تبدیل 9، پرواہ کرتا ہے جو اس وجہ سے. میں اب میں کافی معلومات ہے میں نے وہاں کی ایک شخص میں جانتے ہیں کہ سائز اس قطار. اور میں جانتا ہوں کہ اس شخص مقام 1، نہیں 0 پر ہے. میں گنتی نہیں کر رہا ہوں. اس کے ساتھ ساتھ 1 تو. تو آنکڑا ڈھانچہ اب بھی ٹھیک ہے. ٹھیک ہے، آگے کیا ہوگا؟ چلو enqueue - تمہارا نام کیا ہے؟ سامعین: Callen. DAVID MALAN: Callen. کی ایک Callen enqueue کرتے ہیں، اور 22 قطار میں ہے. تو اب یہاں تبدیل کرنے کے لئے کیا ہے؟ فرنٹ پر نہیں جا رہا ہے ظاہر ہے، تبدیل. سائز دوبارہ 2 بننے کے لئے تبدیل کرنے کی جا رہی ہے. اور 22 یہاں ختم ہو جاتی ہے، 9، اب بھی موجود ہے لیکن یہ مؤثر طریقے سے ایک ہے اب ردی کی ٹوکری میں قیمت. یہ صرف جیک ماضی کی باقی ہے. تو اب ایسا ہوتا ہے تو میں کیا کروں میں ڈیوڈ dequeue؟ ایک آخری آپریشن، dequeue ڈیوڈ. ہم میں منتقل کر سکتے ہیں، لیکن میں لشکر طیبہ کی تجویز ممکن طور پر چھوٹی سی کے طور پر کام کرتے ہیں. اب میری آنکڑا ڈھانچہ جاتا ہے 2 سے 1 سائز میں واپس. لیکن قطار کے سامنے اب 2 بن جاتا ہے. میں ان کی تعداد کو تبدیل کرنے کی ضرورت نہیں ہے وہ کر رہے ہیں ابھی، کیونکہ صرف ردی کی ٹوکری میں اقدار. لیکن اب کیا ہو گا؟ میں، 26 خود enqueue تو؟ میں یہاں سے تعلق رکھتے ہیں مجھے لگتا ہے جیسے. تو میں نے enqueued جا رہا ہوں. تو میں قسم کے یہاں سے تعلق رکھتے ہیں. اور تم نہیں بہت کرتے ہیں اگرچہ اسٹیج پر ضعف اس کی تعریف کرتے ہیں، ہم کمرے کی کافی مقدار ہوتی ہے، کیونکہ مجھے ایسا کرنا چاہیے یہاں کھڑا نہیں کیا، کیوں؟ سامعین: آپ حد سے باہر ہیں. DAVID MALAN: ٹھیک ہے. میں حد سے باہر ہوں. میں سے باہر حساب سے ترتیب ہے اس سرنی کی حد. مجھے سچ میں سے ایک میں ہونا چاہئے تین ممکنہ مقامات. اب، جہاں جانے کے لئے سب سے زیادہ قدرتی ہے؟ میرے خیال میں ہمیں لیوریجڈ تجویز ایک ہفتے سے ایک چال. MOD آپریٹر، فی صد. میں تکنیکی طور پر کھڑا رہا ہوں کیونکہ محل وقوع 3، لیکن میں، 3 MOD صلاحیت کرتے ہیں تاکہ 3، ایک فیصد علامت، 3 - صلاحیت 3 ہے. وہ کیا ہے؟ باقی تو کیا ہے آپ 3 کی طرف سے 3 تقسیم؟ 0. مجھ سے رکھتا ہے تاکہ جیک تھا جو کہ اصل میں اچھا ہے. لہذا اب عمل درآمد اس بات کو جا رہا ہے کے سر میں درد کا تھوڑا سا ہو جائے. یہ واقعی صرف ایک لائن ہے سر درد کی، کوڈ کی. لیکن کم سے کم اب ردی کی ٹوکری میں ہے قیمت یہاں، لیکن دو ہے یہاں جائز ints. اور میں اب ہم نے کیا دعوی ہے کہ ہم اتنے لمبے وقت تک کے طور پر کرنے کی ضرورت بالکل وہی جو ہم کیا جیک کی تبدیل قیمت 26 کیا جانا تھا. اب ہم اب بھی کافی معلومات ہے سالمیت کو برقرار رکھنے کے اس اعداد و شمار کے ڈھانچے کی. ہم اب بھی طرح کی قسمت سے باہر کے ہیں جب ہم چار یا اس سے زیادہ کل داخل کرنا چاہتے ہیں عناصر، لیکن میں کم از کم بنانے کے لئے خوبصورت کر سکتے ہیں یہ مسلسل کے موثر استعمال وقت، حقیقت میں. میں منتقلی کے بارے میں فکر کرنے کی ضرورت نہیں ڈیوڈ کی جھکاو کے طور پر ہر کسی کو تھا. پوٹ پر کسی بھی سوال کا، یا اس قطار؟ سامعین: وجہ آپ کو معلوم ہے تو آپ کو سائز کی ضرورت ہے ایک شخص ہے کہاں؟ DAVID MALAN: بالکل درست. میں سرنی کے سائز کو جاننے کی ضرورت ہے میں کس طرح جاننے کی ضرورت ہے کیونکہ ان اقدار کے بہت سے جائز ہیں، ڈال کہاں اور تو میں تلاش کر سکتے ہیں کہ پیچھے اگلا، دوسرا شخص. بالکل ٹھیک. سائز ہے - اصل میں، ہم نے ابھی تک اس کو اپ ڈیٹ نہیں کیا. میں نے 26 میں اپنے آپ کو شامل کیا. سائز، اب نہیں 1 ہے، لیکن اس کی 2. تو اب یہ واقعی مجھے تلاش کرنے میں مدد ملتی ہے فہرست کے سربراہ، جس 0 نہیں ہے، نہیں 1، لیکن اس کی 2 ہے. فہرست کے سامنے بے شک تعداد 22 ہے. انہوں نے سب سے پہلے میں آیا، تاکہ وہ کرنا چاہئے کیونکہ مجھ سے پہلے کی دکان میں کی اجازت دی جائے، اگرچہ ضعف میں کھڑا ہوں قریب دکان. ٹھیک ہے؟ ان لوگوں کے لئے تعریف کا ایک چکر اور ہم انہیں وہاں سے باہر دونگا. [تالیاں] DAVID MALAN: میں دے سکتے ہیں آپ کی ٹرے رکھنا. ہم تو کیا ہو گا دیکھ سکتا تھا آپ چاہتے ہیں، لیکن شاید نہیں. ٹھیک ہے. تو کیا اب وہ ہمیں چھوڑ کر ہے؟ ٹھیک ہے، کہ وہاں مجھ سے تجویز کرتے ہیں ہم کر سکتے تھے چند دیگر ڈیٹا کے ڈھانچے گے کہ ہماری آلے کے کٹ میں اضافہ شروع دراصل کافی، کافی متعلقہ کے طور پر ہونا ہم ویب چیزیں میں گوتا لگا. ایک بار پھر، کنکشن کسی قسم کا ہے جو کی شکل میں درختوں پر ڈوم، دستاویز کہا جاتا ہے کچھ آبجیکٹ ماڈل. لیکن ہم میں سے زیادہ نظر آئے گا کہ طویل عرصے سے اس سے پہلے. مجھے definitionally تجویز کرتے ہیں کہ ہم اب آپ کے طور پر جانتے ہو کیا درخت فون ایک خاندان کے درخت، تم کہاں سے زیادہ میں کچھ پرکھا ہے درخت کی جڑیں. میں ایک پترستتاتمک یا matriarch درخت کی سب سے اوپر. ان کی شریک حیات کے بغیر، اس معاملے میں. لیکن ہم اب ہم فون کروں گا کیا ہے پھانسی پر لٹکا ہے کہ نوڈ ہیں جو بچوں، بائیں یا دائیں بچے بچے کو بند، یہاں دکھایا گیا کے طور پر تیر. ایک درخت کے اعداد و شمار کے ڈھانچے میں دوسرے الفاظ میں، کمپیوٹر میں، ایک درخت صفر ہے یا اس سے زیادہ نوڈس. یہ کم از کم ایک نوڈ ہے تو، اس کی جڑ کہا جاتا ہے. یہ ضعف جو چیزیں ہے ہم نے سب سے اوپر اپنی طرف متوجہ. اور یہ کہ نوڈ، کسی بھی دوسرے نوڈ کی طرح کر سکتے ہیں ، صفر، ایک، یا دو، یا تین ہے یا تاہم بہت سے بچے آنکڑا ڈھانچہ کی حمایت کرتا ہے. اس صورت میں، جڑ، ذخیرہ قیمت ایک، دو بچے، 2 اور 3 ہے تو ہم عام طور پر 2 بائیں فون بچے اور 3 بچے کا حق. اور پھر ہم، 5 سے 6 نیچے اترو، اور جب 7، 6 مشرق بچے کو کہا جا سکتا ہے. آپ چار بچوں، ہے تو یہ مبہم ہو جاتا ہے. تو ہم نے اس قسم کا استعمال کرتے ہوئے کو روکنے کے زبانی طور پر شارٹ کٹ کی ہے. لیکن یہ واقعی صرف ایک خاندان کے درخت ہے. اور یہاں پتیوں کہ نوڈس ہیں خود کوئی اولاد ہے. انہوں نے درخت کے نیچے اتار پھانسی. تو ہم کس طرح ایک درخت اس کو نافذ کر سکتے ہیں زیادہ سے زیادہ صرف دو بچے ہیں؟ ہم اسے ایک بائنری درخت کو بلاتا ہوں. دو پھر اس میں دو معنی بائنری کے ساتھ جیسے کیس،. اور اس طرح یہ صفر، ایک ہو سکتا ہے زیادہ سے زیادہ یا دو بچوں کو. میرے خیال میں ہمیں نوڈ کو نافذ کہ تجویز کریں گے ایک INT (ن) کے ساتھ اس کی ساخت کے لئے، اور پھر دو اشارہ، ایک ملاقات کی چھوڑ دیا، ایک حق قرار دیا. لیکن ان لوگوں کو صرف اچھے ہیں صوابدیدی کنونشنوں. اور تم، اب خاص طور پر اگر اچھا کیا ہے اس قسم کے ساتھ conceptually جدوجہد تکرار ہے، یا یہ نہیں تھا سوچا کہ کچھ واقعی ایک حل ہے، خاص طور پر آپ کر سکتا ہے تو میموری سے باہر چلا رہے ہیں. ہم نے اعداد و شمار کے بارے میں بات کر رہے ہیں اب وہ ڈھانچے اور اجازت دیتے ہیں کہ یلگوردمز ہمیں گزرنا اور ان جوڑتوڑ تکرار میں واپس آتا ہے باہر کر دیتا ہے ایک بہت زیادہ مجبور خوبصورت طریقہ نہیں ہے. میں اس تجویز پر عمل درآمد ہے ایک تلاش تقریب کی. دو آدانوں کو دیکھتے ہوئے - تو ایک بلیک باکس کے طور پر اس کے بارے میں سوچنا. دو آدانوں، (ن)، ایک INT، اور ایک دیئے گئے ایک درخت پر پوائنٹر، ایک کے لئے ایک پوائنٹر ایک درخت کے نوڈ، یا واقعی جڑ، میں اس تقریب میں واپس آ سکتے ہیں اس دعوے صحیح یا غلط، اس قدر (ن) اس درخت کے اندر ہے. اس بلیک باکس کے اندر کیا ہے؟ ٹھیک ہے، چار شاخوں. سب سے پہلے صرف چیک کرتا ہے. درخت اتارنا null ہے تو، صرف جھوٹے واپس. کوئی نوڈ ہے تو پھر (ن) ہے کوئی نمبر ہے، صرف جھوٹے واپس. آپ کو تلاش کر رہے ہیں، تاہم ن، قیمت تو کے لئے، درخت تیر (ن) سے بھی کم ہے، اور صرف واضح کرنے کے لئے، یہ جب کا کیا مطلب ہے میں تو درخت اور تیر لکھنا سنکیتن، N؟ بالکل ٹھیک. یہ dereference کا مطلب ہے کہ پوائنٹر درخت سے ملاقات کی. اس کے اندر پھر وہاں جاؤ، اور نوڈ اور (ن) کہا جاتا ہے اپنے فیلڈ ملتا ہے. اور پھر تھا کہ اصل (ن) کا آپس میں موازنہ اس کے خلاف تلاش میں منظور کر دیا. ن ن قدر سے کم ہے تو اگر درخت نوڈ اپنے آپ میں، اچھی طرح سے، اس کا کیا مطلب ہے؟ کہ پہلی نظر میں کچھ بھی نہیں کا مطلب ہے. ٹھیک ہے؟ تم میں سے ایک سرنی ہے جب جیسا اقدار، آپ کو بائنری لاگو کرنے کے لئے پسند کر سکتے ہیں تقسیم کی ایک شکل کے طور پر تلاش اور فتح. لیکن ہم نے بنانے کے لئے کیا مفروضہ کی کیا ضرورت تھی بائنری تلاش تمام میں کام کرنے کے لئے فون بک اور میں پہلے مثال کے طور پر؟ حل کرنے کے لئے کس طرح. تو کی درخت کی تعریف کو بہتر دو یہاں جو کر سکتے ہیں صرف ایک درخت، نہیں بچوں کی کسی بھی تعداد ہے. نہ صرف ایک بائنری درخت، جو کر سکتے ہیں زیادہ سے زیادہ 0، 1، یا 2 ہے. لیکن ایک بائنری تلاش درخت، یا BST، کے طور پر جس میں صرف ایک کہاوت کی ایک پسند طریقہ ہے ایسی بائنری درخت ہر نوڈ کی بائیں بچے، موجود تو ہے، نوڈ سے بھی کم. اور ہر نوڈ کے حق بچے، موجود ہے، تو بڑا ہے نوڈ خود سے. تو دوسرے الفاظ میں، اگر آپ کو اپنی طرف متوجہ کرنے کے لئے تھے درخت باہر، نمبروں کی ہیں احتیاط سے اس طرح متوازن تاکہ اگر اگر آپ روٹ کے طور پر 55 ہے، 33 جا سکتے ہیں اس کے بائیں طرف یہ 55 سے بھی کم ہے کیونکہ. 77 اس کے حق کی وجہ سے جا سکتے ہیں یہ 55 سے زیادہ ہے. لیکن اب، ایک ہی تعریف نوٹس یہ زبانی طور پر ایک پنراورتی تعریف ہے 33 کے لئے درخواست ہے. 33 کی بائیں بچے، اس سے کم ہونا چاہیے اور 33 کے حق بچے، 44، ہونا ضروری ہے اس سے بڑے. تو یہ ایک بائنری تلاش درخت ہے، اور میں تھوڑا سا کا استعمال کرتے ہوئے، کی تجویز تکرار، اب ہم (ن) کے حاصل کر سکتے ہیں. (ن) کے اس قدر (ن) سے بھی کم ہے اگر ایسا ہے تو موجودہ نوڈ، میں جا رہا ہوں آگے اور پنٹ، تو بات ہے، اور صرف جواب کا ہے جو کچھ بھی واپس پر (ن) کی تلاش درخت کی بائیں بچے. دوبارہ نوٹس، اس تقریب صرف ایک نوڈ سٹار، ایک کی توقع رکھتا ہے ایک نوڈ پر پوائنٹر. تو یقینا میں درخت ایسا صرف کر سکتے ہیں کی قیادت کریں گے جس میں تیر بائیں، مجھے ایک اور نوڈ کرنے کے لئے. لیکن اس نوڈ کیا ہے؟ ٹھیک ہے، اس اعلان کے مطابق، بائیں تاکہ صرف، صرف ایک پوائنٹر ہے میں تلاش تقریب پر گزر رہا ہوں اس کا مطلب ایک مختلف پوائنٹر، یعنی کی نمائندگی کرتا ہے کہ ایک میرے بائیں بچے کے درخت. تو اس صورت میں، پوائنٹر، اگر 33 یہ ہمارا نمونہ ان پٹ دریں اثنا، تو ہے (ن) میں قدر (ن) سے زیادہ ہے درخت میں موجودہ نوڈ، تو میں ہوں دوسرے میں آگے اور پنٹ جانے والے سمت اور صرف کا کہنا ہے کہ، مجھے نہیں پتہ اس قیمت (ن) کے درخت میں ہے تو جانتے ہیں، لیکن یہ ہے کہ اگر میں جانتا ہوں، اس کے نیچے ہے میری حق شاخ، تو بات کرنے کے لئے. تو مجھے تلاش تکراری طور پر فون کرنے دو، پھر ایک (ن) گزر رہا ہے، لیکن ایک میں گزر رہا ہے میرے دائیں بچے پوائنٹر. دوسرے الفاظ میں، میں فی الحال ہوں تو 55 میں اور میں 99 کے لئے دیکھ رہا ہوں، مجھے معلوم ہے کہ 99 میں نے پھاڑ تو، جیسا کہ 55 سے زیادہ ہے فون بک ہفتے قبل اور ہم حق چلا گیا، اسی طرح ہم ہیں یہیں پر جانے والا. یہ میرا حق میں ہے اور اگر مجھے نہیں معلوم بچے، اور یہ نہیں ہے، 77 ہے، لیکن میں نے یہ اس سمت میں ہے. تو میں نے، میرے دائیں بچے پر تلاش فون 77، اور کی طرف سے کی تلاش کے اعداد و شمار سے باہر جانے وہاں تو اس صوابدیدی میں 99 مثال کے طور پر وہاں اصل میں ہے. دوسری صورت میں، فائنل میں کیس کیا ہے؟ درخت ہے تو شہوت انگیز null ایک کیس ہے. (ن) موجودہ نوڈ کی سے کم ہے تو قیمت کا ایک اور معاملہ ہے. (ن) موجودہ سے زیادہ ہے تو نوڈ کی قیمت ایک تیسرا معاملہ ہے. چوتھی اور آخری کیس کیا ہے؟ میں ٹھیک ہے، ہم مقدمات سے باہر ہو؟ یہ (ن) میں ہے ہونا ضروری ہے میں پر ہوں کہ موجودہ نوڈ. میں نے اس نقطہ پر 55 کے لئے تلاش کر رہا ہوں تو اگر کی کہانی میں، اس شاخ درخت سچ واپس کردے گا. تو کیا یہاں دلچسپ ہے یہ ہے کہ ہم اصل میں، ہفتے کے برعکس ماضی، ہم قسم کے دو مقدمات کی بنیاد ہے. اور وہ کرنے کی ضرورت نہیں سب سے اوپر تمام ہونا. سب سے اوپر ایک بنیاد کیس ہے کیونکہ اگر درخت اتارنا null ہے، ایسا کرنے کی کوئی بات نہیں ہے. بس ایک مشکل کوڈت واپس جھوٹے کی قدر. نیچے شاخ کی طرح ہے پہلے سے طے شدہ، جس کے تحت ہم نے کے لئے کی جانچ پڑتال کی ہے تو یہ ہونا چاہئے اگر شہوت انگیز null، ہم نے چیک کیا ہے چھوڑ دیا، لیکن یہ نہیں ہونا چاہئے، ہم نے یہ درست ہونا چاہئے اگر جانچ پڑتال کی، لیکن یہ نہیں ہونا چاہئے، واضح طور پر یہ ہونا ضروری ہے حق ہم کہاں ہیں. ایک بنیاد کیس ہے. تو دو پنراورتی مقدمات ہے وسط میں وہاں پھنسے. لیکن میں لکھا ہے کر سکتے ہیں یہ کسی بھی ترتیب میں. میں صرف اس قسم کی قدرتی محسوس کیا سوچا سب سے پہلے ایک ممکنہ خرابی کی جانچ پڑتال کرنے کے لئے، پھر بائیں کو چیک کریں، پھر، ٹھیک ہے چیک کریں آپ نوڈ پر ہیں کہ فرض آپ نے واقعی کے لئے تلاش کر رہے ہیں. تو کیوں اس مفید ہو سکتا ہے؟ تو یہ باہر کر دیتا ہے - اور مجھے ایک جھلکی پر کود دو یہاں اس ویب میں ہے. ہم نہیں ایک کا استعمال کرتے ہوئے شروع کرنے کے لئے جا رہے ہیں پروگرامنگ کے شروع میں زبان کی، لیکن ایک مارکاپ زبان. ہے ایک ہونے کا ایک مارکاپ زبان پروگرامنگ کی روح یہی زبان، لیکن یہ آپ کو نہیں دیتا کی صلاحیت منطقی طور پر اپنے آپ کو ظاہر کرنے کے لئے. یہ صرف کرنے کے لئے آپ کی صلاحیت دیتا ہے structurally خود اظہار. تم کہاں کچھ ڈال کرنا چاہتے ہیں صفحے پر، ویب صفحے؟ کیا رنگ آپ کو یہ کرنے کے لئے چاہتے ہیں؟ کیا فونٹ سائز اگر آپ اسے بنانے کے لئے چاہتے ہیں؟ کیا الفاظ اصل میں تم کرتے ہو ویب صفحے پر چاہتے ہیں؟ تاکہ ایک مارکاپ زبان ہے. لیکن اس وقت ہم بہت جلد ملواتا ہوں ایک مکمل ہے، جو جاوا سکرپٹ، زبان پروگرامنگ. syntactically ظہور میں بہت ہی سی کرنے کے لئے، لیکن یہ کچھ کرنا پڑے گا اچھا، زیادہ طاقتور، زیادہ صارف دوستانہ خصوصیات. اور اس پر مایوسی میں سے ایک سمسٹر میں نقطہ ہم کروں گا یہ ہے کہ جلد ہی اب تک کم میں ہجے کنندہ کو نافذ دیگر زبانوں کا استعمال کرتے ہوئے کوڈ کی لائنیں سی خود کی اجازت دیتا ہے کے مقابلے میں، لیکن وجہ ہے کے لئے ہم جلد ہی سمجھ جاوگی. یہ سب سے پہلے اس طرح کی ویب کے صفحے ہو جائے گا. یہ مکمل طور پر underwhelming ہو جائے گا ہم بناتے ہیں سب سے پہلے. یہ صرف دنیا کو خوش آمدید کہیں گے. لیکن تم اسے کبھی نہیں دیکھا ہے تو اس سے پہلے، اس، ایچ ٹی ایم ایل ہے ہایپر ٹیکسٹ مارکاپ زبان. آپ میں ایک خاص مینو کے اختیارات پر جانا ہے تو پر کسی بھی ویب صفحے پر سب سے زیادہ کسی بھی براؤزر، انٹرنیٹ، آپ ایچ ٹی ایم ایل کو دیکھ سکتے ہیں کچھ لوگوں کو خط لکھا ہے کہ اس ویب صفحہ تخلیق کریں. اور یہ شاید کے طور پر نظر نہیں آتا ہے مختصر یا اس کے طور پر کے طور پر صاف. لیکن یہ ان کی طرز کی پیروی کریں گے کھلی بریکٹ اور slashes اور حروف اور ممکنہ طور پر تعداد. میں نے آپ کو ایک چھیڑ دے سوچا آپ کرنے کے قابل ہو جائے گا کیا CS50 لینے کے بعد. مجھے cs.harvard.edu / لوٹنے کے لئے چلتے ہیں، ہمارے اپنے روب Bowden کے ہوم پیج پر. انہوں نے کہا کہ ہمارے لئے یہ بنایا ہے. تو کیا تم جلد ہی ایسا کر سکیں گے. اور بھی، تم نے کیا سنا آج صبح - آج صبح تم نے سنا کیا - [HAMSTER رقص MUSIC] - you'll اس بنانے کے لئے کے قابل ہو جائے. وہ بدھ کے روز ہم سے انتظار کر رہا ہے. ہم آپ کو اس کے بعد دیکھیں گے. [HAMSTER رقص MUSIC] DAVID MALAN: اگلے CS50 میں -