[Powered by Google Translate] [6 دفعہ: کم آرام دہ اور پرسکون]
[نیٹ Hardison] [ہارورڈ یونیورسٹی]
[یہ CS50 ہے.] [CS50.TV]
ٹھیک ہے. دفعہ 6 میں آپ کا استقبال ہے.
اس ہفتے ہم سیکشن میں ڈیٹا ڈھانچے کے بارے میں میں بات کر جا رہے ہیں،
کی بنیادی وجہ اس ہفتے کا مسئلہ spellr مقرر
مختلف آنکڑا ڈھانچہ ریسرچ کے ایک مکمل جھوبڈ ہے.
مختلف طریقوں سے آپ کو مسئلہ کے سیٹ کے ساتھ جا سکتے ہیں کا ایک گروپ ہے،
اور مزید معلومات کے ڈھانچے آپ کے بارے میں جانتے ہیں، زیادہ ٹھنڈی چیزیں آپ کر سکتے ہیں.
>> تو شروع ہو. پہلے ہم stacks کے بارے میں بات کرنے کے لئے جا رہے ہیں،
اسٹیک اور قطار کے ڈیٹا ڈھانچے کہ ہم کے بارے میں بات کرنے کے لئے جا رہے ہیں.
Stacks اور قطار بہت مدد مل رہی ہے جب ہم گراف کے بارے میں بات کر شروع،
جو ہم حق کی اتنی اب نہیں رہے ہیں.
لیکن وہ واقعی کاوچ سرفنگ کے بڑے بنیادی ڈیٹا ڈھانچے میں سے ایک سمجھ اچھے ہیں.
مسئلہ سیٹ کی تفصیلات میں وضاحت،
ماخوذ طور پر اگر آپ اسے اوپر ھیںچو، stacks کے بارے میں بات چیت
کھانے کی ٹرے کے ڈھیر ہے کہ آپ کو کھانے کے ہال میں کیفیٹیریا میں ہے
جہاں جب کھانے کے عملے آتا ہے اور کھانے کے ٹرے رکھتا ہے کے بعد وہ ان سے صاف ہے،
وہ انہیں ایک دوسرے کے اوپر کتابیں رکھی.
اور پھر جب بچے کھانا حاصل کرنے کے لئے میں آتے ہیں،
وہ ٹرے ھیںچو نے، سب سے پہلے سب سے اوپر ایک، تو اس کے نیچے ایک تو جو ذیل میں سے ایک ہے.
تو، اثر میں، پہلی ٹرے ہے کہ کھانے کے عملے کو دبا دیا گزشتہ ایک ہے کہ لیا ہو جاتا ہے.
گزشتہ ایک یہ ہے کہ کھانے کے عملے پر ڈال پہلے کہ رات کے کھانے کے لئے لیا ہو جاتا ہے.
مسئلہ سیٹ کی رپورٹ میں، جو آپ کو ڈاؤن لوڈ، اتارنا اگر آپ کے پاس پہلے سے ہی نہیں ہے کر سکتے ہیں،
ہم ایک اسٹیک ڈیٹا اس قسم کی struct کا استعمال کرتے ہوئے stucture ماڈلنگ کے بارے میں بات کرتے ہیں.
>> تو ہم یہاں کیا مل گیا ہے، اس لیکچر میں پیش کیا گیا تھا اسی طرح ہے،
لیکچر میں سوائے ہم ints کے طور پر حروف * کی مخالفت کی کے ساتھ پیش کیا.
یہ ایک اسٹیک ہے کہ کیا اسٹورز جا رہا ہے؟
ڈینیل؟ کیا ہم اس اسٹیک میں ذخیرہ کرنے ہیں؟
[ڈینیل] ڈور؟ >> ہم اس اسٹیک میں تاروں ذخیرہ کرنے ہیں، بالکل.
آپ کی ضرورت ہے کے لئے اسٹیک بنانے کے لئے ایک صف ہے
ایک خاص صلاحیت کی،، اس معاملے میں جو
صلاحیت تمام بڑے حروف میں کیونکہ یہ ایک مسلسل ہونے جا رہا ہے.
اور پھر صف کے علاوہ میں، ہم سب کو ٹریک کرنے کی ضرورت ہے صف کی موجودہ سائز ہے.
ایک بات نوٹ کریں کہ کول کی طرح ہے
یہ ہے کہ ہم ایک اور آنکڑا ڈھانچہ، صف کے سب سے اوپر پر سجا دیئے آنکڑا ڈھانچہ کی تشکیل کر رہے ہیں.
stacks کو لاگو کرنے کے مختلف طریقے ہیں.
لیکن ہم یہ امید ہے کہ مسائل سے منسلک فہرست کرنے کے بعد بہت ابھی تک نہیں کیا جائے گا،،
تم نے دیکھا کہ کس طرح آپ کو ایک لنک کی فہرست کے سب سے اوپر پر ایک اسٹیک کے ساتھ ساتھ آسانی سے عمل درآمد کر سکتے ہیں کریں گے.
لیکن، اب ہم arrays رہنا ہوگا.
تو پھر ہم سب کی ضرورت ہے ایک صف ہے اور ہم صرف صف کے سائز کو ٹریک کرنے کی ضرورت ہے.
[سیم] معذرت، کیوں ہے کہ آپ نے کہا کہ اسٹیک ڈور کے سب سے اوپر پر ہے؟
میرے لئے ایسا لگتا ہے جیسے ڈور اسٹیک کے اندر اندر ہو.
[Hardison] جی ہاں. ہم بنانے، ہم اپنے صف آنکڑا ڈھانچہ لے جا رہے ہو رہے ہیں -
یہ ایک بہت بڑا سوال ہے. تو سوال یہی وجہ ہے کہ لوگ ہیں جنہوں نے اس آن لائن دیکھ رہے ہیں کے لئے ہے،
ہم کہہ رہے ہیں کیوں کہ اسٹیک ڈور کے سب سے اوپر پر ہے،
کیونکہ یہاں ایسا لگتا ہے طرح ڈور اسٹیک کے اندر ہیں؟
کو مکمل طور پر معاملہ ہے.
میں حوالہ دے رہے تھے یہ تھا کہ ہم ایک صف آنکڑا ڈھانچہ ہے.
ہم چار کے * ایک صف، تاروں کے اس صف ہے،
اور ہم اس پر سجا دیئے آنکڑا ڈھانچہ بنانے کے لئے شامل کرنے کے لئے جا رہے ہیں.
>> تو ایک اسٹیک ایک صف سے تھوڑا سا زیادہ پیچیدہ ہے.
ہم ایک صف کو اسٹیک کی تعمیر کے لئے استعمال کر سکتے ہیں.
تو وہ ہے جس پر ہم یہ کہتے ہیں کہ اسٹیک ایک صف کے سب سے اوپر پر بنایا گیا ہے.
اسی طرح، میں نے پہلے کہا، ہم نے ایک لنک کی فہرست کے سب سے اوپر پر اسٹیک بنانے کے کر سکتے ہیں.
ہمارے عناصر کو منعقد کرنے کے لئے ایک صف کا استعمال کرتے ہوئے کی بجائے،
ہمارے عناصر کو منعقد کرنے اور اس کے ارد گرد اسٹیک تعمیر کے لئے ہم نے ایک لنک کی فہرست کا استعمال کر سکتے ہیں.
چلو مثالوں کی ایک جوڑے کے ذریعے چل، کچھ کوڈ کو دیکھ
اصل میں یہاں کیا ہو رہا ہے دیکھ کر.
بائیں طرف، میں نیچے پھینک دیا ہے کیا طرح کہ اسٹیک struct یاد میں نظر آئے گا کے لئے
اگر صلاحیت # چار کے طور پر بیان کیا گیا تھا.
ہم نے اپنے چار عنصر حروف * صف ہے.
ہم ڈور [0]، ڈور [1]، ڈور، [2] ڈور، [3] ملا ہے
اور پھر ہمارے سائز عددی کے لئے کہ گزشتہ جگہ ہے.
کیا اس کا کوئی مطلب ہے؟ ٹھیک ہے.
یہ ہے جو ہوتا ہے اگر میں حق پر کرتے ہیں،
جو میری کوڈ جائے گا، صرف ایک struct، ایک سجا دیئے کہا جاتا ہے کے struct کا اعلان ہے.
اس کا ہے جو ہم حاصل ہے. یہ یاد میں اس کے زیر اثر دیتی ہے.
پہلے یہاں سوال یہ ہے کہ کیا اس اسٹیک struct کے مندرجات کیا ہیں؟
اب وہ کچھ نہیں ہیں، لیکن وہ مکمل طور پر کچھ نہیں ہو.
انہوں نے ردی کی ٹوکری میں اس قسم کی ہیں. ہم میں کوئی خیال نہیں کیا ان میں ہے.
جب ہم نے اسٹیک کا اعلان، ہم صرف یہ ہے کہ پھینک رہے ہیں میموری کے سب سے اوپر پر.
یہ int میں قرار دیا اور یہ نہیں ابتدا کی طرح ہے.
آپ کو پتہ نہیں وہاں کیا ہے. کیا تم پڑھ سکتے ہیں وہاں کیا ہے،
لیکن یہ انتہائی نہیں مددگار ثابت ہو سکتا ہے.
ایک چیز ہے جو آپ کو ہمیشہ یاد کرنا چاہتے ہیں ہیں ابتدا کریں جو initialized رکھا جائے کرنے کی ضرورت ہے.
اس صورت میں، ہم سائز صفر ابتدا جا رہے ہیں،
کیونکہ وہ ہمارے لئے بہت اہم باری ہو رہا ہے.
ہم آگے بڑھیں اور اشارہ کے تمام، تمام حروف * S ابتدا کر سکتا ہے،
کچھ سمجھ قیمت، شاید، شہوت انگیز null.
لیکن یہ مکمل طور پر ضروری ہے کہ ہم ایسا نہیں ہے.
>> اب، stacks پر دو اہم آپریشن ہے؟
کوئی لیکچر سے یاد ہے تم stacks کے ساتھ کیا کیا؟ جی ہاں؟
[سٹیلا] آگے بڑھانے اور پوپ آؤٹ؟ بالکل ٹھیک ہے. >>
آگے بڑھانے اور پوپ آؤٹ stacks دو اہم آپریشن ہے.
اور دھکا کیا کیا کرتا ہے؟ >> یہ سب سے اوپر پر کچھ کہتے ہیں
اسٹیک، اور پھر پوپ آؤٹ اسے لیتا ہے.
[Hardison] بالکل. اس کے بعد اسٹیک کے سب سے اوپر پر آگے بڑھانے کچھ pushes.
یہ کھانے کے ایک کھانے کی ٹرے کاؤنٹر پر نیچے رکھ عملے کی طرح ہے.
اور پوپ آؤٹ اسٹیک کے کھانے کی ٹرے لے جا رہا ہے.
چلو دیکھتے ہیں کیا ہوتا ہے مثال کے طور پر کے ایک جوڑے کے ذریعے چلنا
جب ہم نے اسٹیک میں چیزوں کو دھکا.
اگر ہم ہمارے اسٹیک پر STRING 'ہیلو' دھکا،
یہ وہی ہے جو ہمارے آریھ کی طرح دیکھو، اب.
دیکھو، کیا ہوتا ہے؟
ہم ہمارے ڈور صف کے پہلے عنصر میں دھکیل دیا
اور ہم نے اپنے سائز کا شمار upped 1.
یہاں تو اگر ہم دو سلائڈ کے درمیان فرق میں دیکھو، یہاں 0 تھا، دھکا سے پہلے ہے.
یہاں دھکا کے بعد ہے.
دھکا سے پہلے، دھکا کے بعد.
اور اب ہم اپنے اسٹیک میں ایک عنصر ہے.
یہ سٹرنگ "ہیلو" ہے، اور یہ بات ہے.
اور صف میں سب کچھ، ہمارے ڈور صف میں، اب بھی ردی کی ٹوکری میں ہے.
ہم اس initialized نہیں ہے.
چلو کا کہنا ہے کہ ہم اپنے اسٹیک پر ایک سٹرنگ دھکا.
ہم اس وقت پر "دنیا" دھکا جا رہے ہیں.
آپ دیکھ کر سکتے ہیں "دنیا" یہاں "ہیلو" کے سب سے اوپر پر جاتا ہے،
اور سائز کی گنتی 2 جاتا ہے.
اب ہم "CS50"، اور یہ کہ سب سے اوپر پر کریں گے دھکا کر سکتے ہیں.
اگر ہم واپس جاؤ، تم نے دیکھا، کہ ہم کس طرح اسٹیک کے سب سے اوپر پر چیزوں کو آگے بڑھانے رہے ہیں کر سکتے ہیں.
اور اب ہم پاپ.
اسٹیک کے جب ہم نے کچھ popped، کیا ہوا؟
کوئی فرق نظر آتا ہے؟ یہ بہت ٹھیک ٹھیک ہے.
[Student کی] فونز. >> جی ہاں، سائز تبدیل کر دیا ہے.
>> اور کیا آپ کو تبدیل کرنے کے لئے امید کی جاتی ہے؟
[Student کی] ڈور بھی. >> حق ہے. بھی ڈور.
یہ پتہ چلا ہے کہ جب آپ اس طرح کر رہے ہو
کیونکہ ہم عناصر ہمارے اسٹیک میں کاپی نہیں کر رہے ہیں،
ہم واقعی کچھ کرنے کی ضرورت نہیں ہے، ہم صرف سائز کا استعمال کر سکتے ہیں
ہمارے صف میں چیزوں کی تعداد کے ٹریک رکھنے کے
تاکہ جب ہم دوبارہ پاپ، پھر ہم صرف اپنے حجم 1 تدریج کریں.
اصل میں میں جانے اور کچھ ادلیکھت کرنے کی ضرورت نہیں ہے.
funky کی قسم.
یہ پتہ چلا ہے کہ ہم عام طور پر صرف چیزیں انفرادی چھوڑ کیونکہ یہ کم کام ہے، ہمارے لئے کیا ہے.
اگر ہم واپس جانے کے لئے اور کچھ کو ادلیکھت نہیں ہے، تو پھر کیوں کرتے ہیں؟
تو جو کچھ کرتا ہے جب ہم نے اسٹیک کے دو بار مر جانا ہے، سائز کے ایک جوڑے بار تدریج کریں.
اور پھر، یہ صرف اس صورت میں ہے کیونکہ ہم چیزیں ہمارے اسٹیک میں کاپی کرنے کی کر رہے ہیں نہیں.
جی ہاں؟ آگے جاؤ.
[طالب علم، unintelligible] >> اور اس کے بعد کیا ہوتا ہے جب تم سے کچھ پھر سے دھکا ہے؟
جب تم سے کچھ دوبارہ دھکا، یہ کہاں جاتا ہے؟
یہ کہاں تلسی جاتے ہو؟ [1] ڈور میں >>؟ >> حق ہے.
[3] ڈور میں کیوں نہیں جاتے؟
[تلسی] کیونکہ یہ بھول گیا تھا کہ ڈور میں کچھ تھا [1] [2]
[Hardison] بالکل. ہمارے اسٹیک، بنیادی طور پر، "بھول گیا انہوں نے کہا کہ کہ یہ کچھ بھی انعقاد کیا گیا تھا
ڈور میں [1] یا ڈور [2]، تو جب ہم "woot" دھکا
یہ صرف عنصر میں [1] ڈور میں رکھتا ہے.
یہ کس طرح کام کرتا ہے کے ذہن میں کوئی سوالات بنیادی سطح پر ہیں،؟
[سیم] تو یہ کسی بھی طرح میں متحرک نہیں ہے رقم کے لحاظ سے،
یا اسٹیک کے سائز کے لحاظ سے؟
[Hardison] بالکل. یہ ہے - نقطہ یہ تھا کہ یہ ایک متحرک طور growning اسٹیک نہیں تھا.
یہ ایک اسٹیک ہے کہ سب سے زیادہ، چار چار * کے میں پکڑ، کر سکتے ہیں، سب سے زیادہ چار چیزوں کو ہے.
اگر ہم نے دھکا میں پانچویں بات کرنے کی کوشش کر رہے تھے، کیا آپ کے خیال میں ہونا چاہیئے؟
[طالب علم، unintelligible]
[Hardison] بالکل. وہ چیزیں ہیں جو ہو سکتا ہے کی ایک بڑی تعداد ہیں.
یہ غلطی کا امکان seg کر سکتے ہیں، جو ہم تھے کے لحاظ سے -
کس طرح ہم نے پیچھے کے آخر میں کو لاگو کرنے کر رہے ہیں.
ادلیکھت کر سکتے ہیں. یہ کہ بفر اتپرواہ کر سکتے ہیں کہ ہم کلاس میں کے بارے میں بات کی ہے.
سب سے واضح چیز ہے جو ادلیکھت ہو سکتا ہے کیا جائے گا
اگر ہم ہمارے اسٹیک پر ایک اضافی چیز کو دھکا کرنے کی کوشش کی؟
تو آپ کو ایک بفر اتپرواہ کا ذکر کیا ہے.
کیا بات ہو سکتا ہے جو ختم ہونے لکھا کریں گے یا stomped
اگر ہم نے ایک اضافی بات کو آگے بڑھانے کی کوشش کر رہے کی طرف سے اتفاقی طور پر overflowed؟
[ڈینیل، unintelligible] >> ممکنہ.
لیکن ابتدائی طور پر کیا ہو سکتا ہے؟ کیا ہوگا اگر ہم ایک چوتھی بات کو آگے بڑھانے کی کوشش کی؟
یہ اس میموری آریھ ہے کہ ہمارے پاس کیا ہے کے ساتھ کم از کم سائز ادلیکھت ہو سکتا ہے.
>> مسئلہ سیٹ کی تفصیلات میں، جس میں ہے جو آج ہم پر عملدرآمد ہونے کے لئے جا رہے ہیں،
جو ہم کرنا چاہتے ہیں صرف جھوٹے واپس ہے.
ہماری دھکا طریقہ ایک بولین قیمت واپس کرنے جا رہا ہے،
اور یہ کہ بولین قدر درست ہو اگر دھکا کامیاب گا
اور جھوٹے اگر ہم کچھ دھکا نہیں کر سکتے ہیں کیونکہ اسٹیک بھرا ہوا ہے.
چلو اس کوڈ کی ایک تھوڑا سا کے ذریعے اب چل.
یہ ہمارا دھکا کی تقریب ہے.
ایک اسٹیک کے لئے ہماری دھکا تقریب سٹرنگ میں اسٹیک پر ڈال لے جا رہا ہے.
یہ سچ واپس جا اگر سٹرنگ کو کامیابی سے نکالا گیا ہے
اسٹیک اور جھوٹے ورنہ.
کیا کوئی رائے ہوں، ایک اچھا سب سے پہلے یہاں کیا کام ہو سکتا ہے؟
[سیم] اگر سائز صلاحیت برابر ہے تو باطل واپس؟
[Hardison] بنگو. بہت اچھا کام کیا.
اگر سائز کی صلاحیت موجود ہے، ہم جھوٹے واپس جا رہے ہیں.
ہم ہمارے اسٹیک میں مزید کچھ نہیں ڈال سکتا.
دوسری صورت میں، ہم اسٹیک کے سب سے اوپر پر کچھ کرنا چاہتے.
"اسٹیک کے سب سے اوپر،" ابتدائی طور پر کیا ہے؟
[ڈینیل] سائز 0؟ >> 0 سائز.
اسٹیک کے بعد اسٹیک میں ایک بات ہے کے سب سے اوپر کیا ہے؟ Missy، آپ کو معلوم ہے؟
[Missy]. >> سائز میں سے ایک ہے، بالکل. آپ سائز میں اضافہ رہو،
اور ہر وقت آپ صف میں انڈیکس کے سائز میں نئے عنصر میں ڈال رہے ہیں.
ہم نے اسے ایک جہاز کے اس قسم کے ساتھ کیا کر سکتے ہیں، اگر اس میں اس کا احساس کرتا ہے.
تو ہم اپنے ڈور کی صف ملا ہے، ہم اس کے سائز کے انڈیکس میں تک رسائی کی جا رہے ہیں،
اور ہم صرف وہاں میں ہمارے چار * ذخیرہ کرنے جا رہے ہیں.
نوٹس کس طرح کوئی تار نقل میں جا
میموری کا کوئی متحرک سے تین ہلاک ہے؟
اور پھر Missy پرورش اب ہمیں کیا کرنا ہے،
کیونکہ ہم نے صف میں مناسب جگہ میں سٹرنگ کا ذخیرہ ہے،
اور انہوں نے کہا کہ ہم نے ایک کے بعد سائز تاکہ ہم اگلے دھکا کے لئے تیار ہیں اضافہ تھا.
تو ہم s.size کے ساتھ کر سکتے ہیں + +
اس وقت ہم اپنے صف میں دھکیل دیا ہے. آخری چیز جو ہم پر واجب ہے کیا ہے؟
[Student کی] صحیح واپس. >> سچا واپس.
تو یہ بہت آسان ہے، ایک کافی آسان کوڈ. بہت زیادہ نہیں ہے.
ایک بار جب آپ نے کس طرح اسٹیک کام کرتا ہے کے ارد گرد اپنے سر لپیٹ ہے،
اس پر عملدرآمد بہت سادہ ہے.
>> اب، اس کے اگلے حصہ اسٹیک کی ایک تار نے پوپ آؤٹ ہے.
میں نے تم لوگوں کو اس سلسلے میں یہ ایک تھوڑا سا کام کرنے کے لئے کچھ وقت دینے جا رہا ہوں.
یہ بنیادی طور پر جو ہم یہاں دھکا میں کیا ہے ریورس ہے.
جو میں نے کیا ہے اصل میں ہے - اوہ.
میں یہاں اور آلات میں ہٹا دیا ہے آلات
میں ھنچائی مسئلہ 5 تفصیلات کا تعین کیا ہے.
ہم دیکھتے ہیں اگر ہم یہاں میں زوم، میں cdn.cs50.net/2012/fall/psets/pset5.pdf میں ہوں کر سکتے ہیں.
کیا تم لوگ اس کوڈ کو جو یہاں واقع ہے، section6.zip ڈاؤن لوڈ
ٹھیک ہے. اگر آپ نے نہیں کیا ہے کہ یہ درست کرو اب، واقعی بہت تیزی سے کیا ہے.
میں نے اسے میرے ٹرمنل ونڈو میں کیا کروں گا.
دراصل میں نے یہ کیا ہے یہاں. جی ہاں.
جی ہاں، سیم؟ >> میں کیوں آپ کو سائز کے s.string کی بریکٹ کہا STR = کے بارے میں ایک سوال ہے؟
STR کیا ہے؟ یہ ہے کہ اس سے پہلے کہیں بیان کیا، یا - اوہ، چار * STR میں؟
[Hardison] جی ہاں، بالکل. یہ دلیل تھی. >> اوہ، ٹھیک ہے. معاف کیجئے گا.
[Hardison] ہم اندر دھکا سٹرنگ کی وضاحت کر رہے ہیں
دوسرے سوال ہے جو آ گیا ہے کہ ہم یہاں کے بارے میں واقعی نہیں کیا بات ہو سکتی ہے
ہم نے کے لئے حاصل کی جاچکی ہے کہ ہم اسے کہتے ہیں کے متغیر تھا
گنجائش اور ہمارے لئے قابل رسائی ہے.
ہم نے کے لئے حاصل کی جاچکی ہے کہ اس اسٹیک struct.
تو اس دھکا کوڈ واپس دیکھ،
آپ دیکھیں گے کہ ہم نے اس سٹرنگ میں منظور ہو چکی ہے کے ساتھ چیزیں کر رہے ہیں کر سکتے ہیں
لیکن پھر اچانک، ہم s.size تک رسائی حاصل کر رہے ہیں، کی طرح، کہاں s سے آئے
کوڈ ہے کہ ہم سیکشن آرکائیو میں نظر آتے جا رہے ہیں میں
اور پھر چیزیں ہے کہ آپ کو آپ کے مسئلہ میں کر کریں گے کا تعین کرتا ہے،
ہم نے ہماری اسٹیک ایک عالمی متغیر struct ہے
تاکہ ہم اپنے تمام مختلف افعال میں اس تک رسائی حاصل کر سکتے ہیں
، دستی طور پر اس کے ارد گرد منتقل اور حوالہ کی طرف سے اسے منظور کرنے کے بغیر
اس سامان کے تمام اس طرح کرتے ہیں.
ہم صرف تھوڑا سا کو دھوکہ دے رہے ہیں، اگر تم اچھی چیزیں بنانے.
اور یہ کہ کچھ ہم یہاں کیا کر رہے ہو کیونکہ یہ تفریح ​​کے لئے ہے ہے ہے، آسان ہے.
اکثر آپ نے دیکھا، لوگ ایسا کرتے ہیں اگر وہ ایک بڑا آنکڑا ڈھانچہ پڑے گا
جو اپنے پروگرام کے اندر اندر کیا جا رہا ہے پر آپریشن.
>> آلات پر پر واپس جانا ہے.
کیا سب کو کامیابی سے section6.zip ملے گا؟
سب ان زپ ان زپ section6.zip کا استعمال کرتے ہوئے؟
اگر آپ سیکشن 6 ڈائریکٹری میں جانے -
آہ، سب جگہ میں سب کچھ -
آپ کی فہرست اور یہاں کیا ہے، تم نے دیکھا ہے کہ آپ کو تین مختلف سی فائلوں. ہے.
آپ کو ایک قطار ایک sll، جو فہرست اکیلے منسلک ہے اور ایک اسٹیک ہے.
اگر آپ کو stack.c کھولتے،
آپ دیکھیں گے کہ ہم نے یہ ہمارے لئے بیان کیا struct ہے کر سکتے ہیں،
عین مطابق struct ہے کہ ہم صرف سلائڈ میں کے بارے میں بات کی تھی.
ہم نے اسٹیک کے لئے ہمارے عالمی متغیر ملا ہے،
ہم اپنے دھکا تقریب ہے،
اور پھر ہم اپنے پاپ تقریب ہے.
میں کوڈ ڈال کے لئے سلائڈ پر واپس یہاں دھکا کریں گے،
لیکن کیا میں تم لوگ کیا کرنا چاہتے ہیں آپ کی صلاحیت کا بہترین ہے،
اور پاپ تقریب کے نفاذ.
ایک بار جب آپ نے اس پر عمل کیا ہے، آپ کو اسٹیک بنانے کے ساتھ اس کو مرتب کر سکتے ہیں،
اور پھر نتیجے میں اسٹیک کارکردگی کو چلانے کے،
اور یہ کہ اس ٹیسٹ کے کوڈ کے نیچے جو اہم ہے چلا جائے گا.
اور مین اصل میں دھکا اور پاپ کال کرنے کا خیال ہے
اور اس بات کا یقین کر لیں کہ کہ سب کچھ ٹھیک سے گزرتا ہے بنا رہے ہیں.
یہ بھی اسٹیک سائز یہیں initializes
تو آپ کہ ابتدا کے بارے میں فکر کرنے کی ضرورت نہیں ہے.
فرض ہے کہ یہ مناسب طریقے سے کیا گیا ہے initialized کر سکتے ہیں
اب وقت آ گیا ہے کہ تم نے اسے پاپ تقریب میں تک رسائی کی طرف سے.
کیا اس کا کوئی مطلب ہے؟
تو ہم یہاں جانا. دھکا کوڈ ہے.
میں آپ کو 5 لوگ یا 10 منٹ دے دیں گے.
اور، اگر آپ عبوری میں کوئی سوال ہے تو جب تم کوڈنگ رہے ہو
براہ مہربانی انہیں بلند آواز سے پوچھیں.
تو اگر آپ ایک سے چپکی ہوئی نقطہ حاصل کرنے کے لئے، صرف پوچھنا.
مجھے بتائیں، اور سب کو معلوم ہے.
اپنے پڑوسی کے ساتھ بھی کام کرتے ہیں.
[ڈینیل] ہم صرف پاپ پر عملدرآمد کر رہے ہیں ابھی؟ >> صرف پاپ.
اگرچہ آپ کو دھکا کے نفاذ کاپی اگر آپ چاہیں تو کر سکتے ہیں
ٹیسٹنگ تاکہ کام کریں گے.
کیونکہ یہ مشکل ہے میں ہو رہی چیز کی جانچ کرنے کے -
یا، یہ مشکل ہے کہ پوپ آؤٹ چیزوں اسٹیک سے باہر کی جانچ اگر اس کے ساتھ شروع کرنے کے لئے کے لئے اسٹیک میں کچھ بھی نہیں ہے.
>> واپس لوٹنے کرنا پاپ کیا ہے؟ اسٹیک کے سب سے اوپر سے عنصر.
یہ عنصر اسٹیک کے سب سے اوپر کو حاصل کرنا ہے
اور پھر اسٹیک کا سائز تدریج کریں
اور اب آپ نے اوپر عناصر کو کھو دیا ہے.
اور پھر آپ سب سے اوپر عنصر واپس.
[طالب علم، unintelligible]
[Hardison] تو کیا ہوتا ہے اگر تم نے؟ [طالب علم، unintelligible]
کیا ختم ہو جاتا ہے اپ ہو رہا ہے تو آپ شاید یا تو تک رسائی حاصل کر رہے ہیں
تو ایک عنصر ہے جو ابھی تک نہیں کیا گیا ہے initialized، اپنے حساب
جہاں گزشتہ عنصر ہے بند ہے.
تو، اگر آپ کو نوٹس، دھکا، ہم s.size عنصر میں ڈور تک رسائی حاصل کر رہے ہیں
کیونکہ یہ ایک نیا اشاریہ ہے.
یہ اسٹیک کے نئے اوپر ہے.
پاپ میں جبکہ s.size اگلے خلائی ہونے جا رہا ہے،
خلا ہے کہ آپ کے اسٹیک میں تمام عناصر کے سب سے اوپر پر ہے.
تو ہی سب سے اوپر کے عنصر کو s.size نہیں ہے،
بلکہ، یہ اس کے نیچے ہے.
>> دوسرے جب آپ کوئی بات - پاپ میں،
ہے آپ کے سائز تدریج کریں ہے.
اگر آپ ہماری چھوٹی خاکہ میں واپس یہیں یاد ہے،
سچ میں، صرف ایک چیز جو ہم ہو رہا دیکھا جب ہم نے بلایا پاپ
تھا کہ سب سے پہلے اس کے سائز 2 سے گرا دیا، تو 1.
پھر جب ہم ایک نئے عنصر کو دھکا دیا، یہ مناسب موقع پر جا سکتا ہے.
[تلسی]، اگر s.size 2 ہے، تو یہ 2 عنصر نہیں جائیں گے
اور اس کے بعد تم نے اس عنصر کو پاپ چاہتے ہیں؟
تو اگر ہم گئے - >> تو اس کو دوبارہ نظر.
اگر یہ اس وقت ہماری اسٹیک ہے
اور ہم کہتے ہیں پاپ،
جس میں انڈیکس عنصر سب سے زیادہ سب سے زیادہ ہے؟
[تلسی] 2، لیکن یہ 3 پاپ جا رہا ہے. >> حق ہے.
تو وہ ہے جہاں ہمارے حجم 3 ہے، لیکن ہم 2 انڈیکس میں عنصر پاپ کرنا چاہتے ہیں.
یہ ایک ہے کہ آپ arrays صفر تخکرمن کے ساتھ کی طرف سے اس دور کی مخصوص قسم ہے.
تو کیا تم تیسرا عنصر پاپ چاہتے ہیں، لیکن تیسرا عنصر صفحہ 3 پر نہیں ہے.
اور وجہ ہم کہ مائنس 1 جب ہم آگے بڑھانے رہے ہیں کرنے کی ضرورت نہیں ہے
کیونکہ اب، آپ کو نوٹس ہے کہ سب سے زیادہ سب سے زیادہ عنصر،
اگر ہم اس وقت اسٹیک پر کچھ اور دھکا،
ہم اس کے صفحہ 3 پر دھکا چاہتا.
اور یہ صرف اس لئے ہوتا ہے کہ سائز اور سوچکانکوں جب آپ آگے بڑھانے رہے ہیں قطار.
>> ایک کام کر اسٹیک عملدرآمد کس کے پاس ہے؟
آپ کو ایک کام کر رہے ہیں ایک اسٹیک ہے. کیا آپ پاپ ابھی تک کام کر رہی ہے؟
[ڈینیل] جی ہاں. مجھے ایسا لگتا ہے.
>> پروگرام چلا رہا ہے اور faulting نہیں seg ہے، اسے باہر پرنٹ ہے؟
کیا یہ "کامیاب" کو پرنٹ جب آپ اسے چلاتے ہیں؟
جی ہاں. ، بنائیں کتابیں رکھی، اسے چلانے، اگر یہ "کامیاب" پرنٹ اور تیزی نہیں جاتے
تو پھر اچھا ہے.
ٹھیک ہے. دو آلات پر ختم واقعی جلدی جاؤ،
اور ہم اس کے ذریعے چل گے.
اگر ہم نے کیا پاپ کے ساتھ ہو رہا ہے یہاں دیکھو،
ڈینیل، پہلی بات یہ ہے کہ تم نے کیا کیا تھا؟
[] ڈینیل اگر s.size 0 سے بڑا ہے.
[Hardison] ٹھیک ہے. اور تم نے ایسا کیوں کیا؟
[ڈینیل] اس بات کا یقین کر لیں کہ اسٹیک کے اندر کچھ تھا بنانے کے لئے.
[Hardison] حق. آپ کو اس بات کا یقین کر لیں کہ کہ s.size 0 سے بڑا ہے بنانے کے لئے کی جانچ کرنا چاہتے ہیں؛
دوسری صورت میں، کیا آپ کو ہوا ہے کرنا چاہتے ہیں؟
[ڈینیل] واپس شہوت انگیز null؟ بالکل >> واپس، شہوت انگیز null.
تو s.size اگر 0 سے بڑا ہے. تو ہم کس بات کرنے جا رہے ہو؟
ہمیں کیا کرنا ہے اگر اسٹیک خالی نہیں ہے؟
[سٹیلا] آپ سائز تدریج کریں؟ >> تم سائز تدریج کریں، ٹھیک ہے.
تو کس طرح تم نے ایسا کیوں کیا؟ >> s.size -
[Hardison] عظیم. اور پھر تم نے کیا کیا ہے؟
[سٹیلا] اور اس کے بعد میں نے واپسی s.string نے کہا کہ [s.size].
[Hardison] عظیم.
ورنہ تم واپس شہوت انگیز null. جی ہاں، سیم؟
[سیم] کیوں اس کی ضرورت ہے s.size 1 + ہو نہیں کرتا؟
[Hardison] 1 پلس؟ >> جی ہاں. >> سمجھے.
[سیم] میں نے سوچا تھا کہ کیونکہ آپ کو 1 باہر لے جا رہے ہیں،
تو آپ نہیں ہے کہ وہ کے لئے کہا پر آرہے ہیں جا رہے ہیں.
[Hardison] اور 0 سوچکانکوں کے اس سارے معاملے کے ساتھ کیا ہم بات کر رہے تھے.
لہذا اگر ہم یہاں واپس زوم.
اگر ہم نے اس آدمی پر نظر ٹھیک یہاں آپ دیکھ سکتے ہیں کہ جب ہم پاپ کر سکتے ہیں،
ہم 2 صفحہ عنصر پوپ آؤٹ کر رہے ہیں.
>> تو پہلے ہم اپنے سائز کو کم، تو ہمارے سائز ہمارے انڈیکس سے میل کھاتا ہے.
اگر ہم فونز تدریج نہیں ہے سب سے پہلے تو ہم -1 اور پھر تدریج کریں سائز کرنا ہے.
بہت اچھا ہے. سب اچھا ہے؟
اس میں آپ کا کوئی سوال ہے؟
مختلف طریقوں کی ایک بڑی تعداد کے ساتھ ساتھ یہ لکھنے کے لئے ہیں.
اصل میں، ہم کچھ بھی کر سکتے ہیں - ہم نے ایک لائنر کر سکتے ہیں.
ہم نے ایک ایک لائن کی واپسی کر سکتے ہیں.
تو ہم اس سے پہلے کہ ہم اس فعل پر واپس اصل میں تدریج کریں کر سکتے ہیں.
s.size سے پہلے میں سب کچھ - تو ڈال ہے.
یہ لائن بہت گھنے کرتا ہے.
کہاں کے درمیان فرق - کے سائز اور s.size -.
ہے کہ یہ postfix - وہ اس postfix کہتے ہیں کیونکہ - آتا ہے کے بعد s.size -
کا مطلب یہ ہے کہ کی s.size انڈیکس کو تلاش کرنے کے لئے مقاصد کے لئے کا تعین کیا جاتا ہے
کے طور پر وہ اس وقت ہے جب اس لائن کو پھانسی ہے،
اور پھر یہ - ہوتا ہے لائن کے پھانسی ہو جاتا ہے کے بعد کیا ہے.
صفحہ s.size میں عنصر کے بعد حاصل کیا ہے.
اور یہ نہیں ہے جو ہم چاہتے ہیں، کیونکہ ہم تدریج کریں سب سے پہلے ہونا چاہتے ہیں.
Othewise، ہم صف تک رسائی حاصل کرنے جا رہے ہیں، مؤثر طریقے سے، حد سے باہر ہے.
ہم میں سے ایک ہے کہ ہم واقعی تک رسائی حاصل کرنا چاہتے ہیں کے اوپر عنصر تک رسائی حاصل کرنے جا رہے ہیں.
جی ہاں، سیم؟ >> یہ تیز یا کم RAM ایک لائن یا نہیں کرنے کے لئے استعمال ہوتا ہے؟
[Hardison] سچ میں، یہ واقعی انحصار کرتا ہے.
[سیم، unintelligible] >> جی ہاں، یہ انحصار کرتا ہے. آپ سنکلک ترکیبیں کر سکتے ہیں
سنکلک کہ اس کو تسلیم کرنے پر حاصل کرنے کے لئے، عام طور پر، میں کلپنا.
>> تو ہم اس سنکلک اصلاحات کی چیزوں کے بارے میں تھوڑا سا ذکر کیا ہے
کہ آپ کو انتخاب میں کر سکتے ہیں،
اور اس بات کی قسم ہے کہ سنکلک جاننے کے قابل ہو سکتا ہے ہے،
اوہ طرح، ارے، شاید میں ایک آپریشن میں یہ سب کر سکتے ہیں،
RAM سے سائز متغیر لوڈ کرنے کی مخالفت کی تھی،
یہ decrementing، اسے ذخیرہ کرنے واپس، اور اس کے بعد اسے دوبارہ لوڈ کرنے کے واپس
اس آپریشن کے باقی پر کارروائی کرنے سے.
لیکن عام طور پر، نہیں، اس طرح کی بات کی نہیں ہے
جو آپ کے پروگرام تیزی سے نمایاں طور پر بنانے کے لئے جا رہا ہے.
stacks پر کوئی سوال؟
>> تو آگے بڑھانے اور پوپ آؤٹ. اگر تم لوگ ہیکر ایڈیشن کرنے کی کوشش کرنا چاہتے ہیں،
جو ہم ہیکر ایڈیشن میں کیا ہے اصل میں چلا گیا ہے
کیا اور اس اسٹیک کو متحرک طور پر بڑھ.
چیلنج بنیادی طور پر اپ یہاں دھکا تقریب میں،
یہ اعداد و شمار کو کس طرح اس صف بڑھ
کے طور پر آپ اسٹیک پر زیادہ سے زیادہ عناصر کو آگے بڑھانے رکھو.
یہ اصل میں ہے بہت زیادہ اضافی کوڈ نہیں ہے.
آپ وہاں میں malloc پر کالز کو مناسب طریقے سے حاصل کی یاد ہے - بس ایک کال
کر اندازہ لگا جب آپ realloc کو فون کرنے جا رہے ہیں.
یہ ایک تفریح ​​چیلنج ہے اگر آپ کو دلچسپی ہو.
>> لیکن کچھ وقت کے لئے دو، پر منتقل، اور چلو قطار کے بارے میں بات کریں.
کے ذریعے طومار یہاں.
قطار اسٹیک کے ایک قریبی بھائی ہے.
تو اسٹیک میں ان باتوں کا آخر میں دیا گیا
پہلے تو بازیافت تھے.
ہم یہ آخری، پہلی، یا LIFO، آرڈر ہے.
جبکہ قطار میں، آپ کو جب آپ کو لائن میں کھڑا کر رہے ہیں سے توقع تھا کے طور پر،
سب سے پہلے لائن میں حاصل کرنے کے لئے، سب سے پہلے قطار میں حاصل کرنے کی بات،
پہلی بات یہ ہے کہ قطار سے حاصل ہو جاتا ہے ہے.
قطار بھی اکثر جب ہم گراف کے ساتھ کام کر رہے ہیں کیا کرتے تھے،
جیسا کہ ہم مختصر طور پر stacks کے ساتھ بات کی،
اور قطار بھی دوسری چیزوں کا ایک گروپ کے لئے ہاتھ ہیں.
ایک بات یہ ہے کہ اکثر آتا ہے کو برقرار رکھنے کے، مثال کے طور پر کرنے کی کوشش کر رہا ہے،
عناصر میں سے ایک کے مطابق کی فہرست.
اور تم ایک صف کے ساتھ یہ کر سکتے ہیں. آپ چیزوں کی ایک صف میں ایک کے مطابق کی فہرست کو برقرار رکھنے کے لئے کر سکتے ہیں،
لیکن جہاں یہ مشکل ہو جاتا ہے ہے تو آپ کو ہمیشہ تلاش کرنے کے لئے ہے
اگلی بات داخل کرنے کے لئے مناسب جگہ ہے.
تو اگر آپ 10 کے ذریعے کی تعداد کے ایک صف، 1 ہے،
اور پھر آپ کو 100 کے ذریعے تمام 1 کی تعداد کو کہ بڑھانا چاہتے ہیں،
اور آپ نے ان کی تعداد کو بے ترتیب ترتیب میں ہو رہی ہے اور سب کچھ رکھنے کے لئے کی کوشش کر رہے
جیسا کہ آپ کے ذریعے جانا کے مطابق، آپ کو ختم منتقلی کا ایک بہت کچھ کرنے کے لئے.
قطار اور بنیادی ڈیٹا کے ڈھانچے کی کچھ اقسام کی کچھ اقسام کے ساتھ،
آپ اسے کافی آسان اصل میں رکھ سکتے ہیں.
تم کچھ اور شامل تو ساری بات ہر وقت ھسکانا کی ضرورت نہیں ہے.
نہ ہی آپ کے ارد گرد اندرونی عناصر کے منتقلی کے ایک بہت کچھ کرنے کی ضرورت ہے.
سیکشن کوڈ میں queue.c میں بھی - جب ہم ایک قطار میں نظر، آپ نے یہ دیکھا -
struct کہ ہم نے تمہیں دیا ہے واقعی struct کہ ہم آپ کو ایک اسٹیک کے لیے دی اسی طرح ہے.
>> اس سے مستثنی ہے، اور یہ کہ ایک رعایت
یہ ہے کہ ہم اس اضافی بلایا سر عددی ہے،
اور یہاں سر قطار کے سربراہ کا ٹریک رکھنے کے لئے ہے،
یا قطار میں پہلا عنصر.
ایک اسٹیک کے ساتھ، ہم نے عناصر کے یاد رکھنے کی ہے کہ ہم تھے کی بازیافت کے بارے میں کرنے کے قابل تھے،
یا اسٹیک کے سب سے اوپر، صرف سائز کا استعمال کرتے ہوئے،
جبکہ ایک قطار کے ساتھ، ہم مخالف ختم ہو جاتا ہے کے ساتھ نمٹنے کے لئے کر رہے ہیں.
ہم آخر میں چیزوں سمت کی کوشش کر رہے ہیں، لیکن پھر سامنے سے چیزیں واپس.
تو مؤثر طریقے سے، سر، ہم قطار کے شروع کی فہرست ہے،
اور سائز ہمیں قطار کے آخر کے انڈیکس دیتا ہے
تاکہ ہم سر سے چیزیں بازیافت اور دم پر چیزیں شامل کر سکتے ہیں.
جبکہ اسٹیک کے ساتھ، ہم نے صرف کبھی اسٹیک کے سب سے اوپر کے ساتھ نمٹنے کر رہے تھے.
ہم نے اسٹیک کے سب سے نیچے دیئے تک رسائی حاصل کرنے کے لئے کبھی نہیں.
ہم صرف سب سے اوپر چیزوں میں شامل کیا ہے اور چیزوں کے سب سے اوپر سے چھٹی لی
تو ہم ہمارے struct کے اندر اضافی فیلڈ کی ضرورت نہیں تھی.
کیا اس کا عام طور پر مطلب ہے؟
ٹھیک ہے. جی ہاں، شارلٹ؟ [شارلٹ، unintelligible]
[Hardison] یہ ایک بڑا سوال ہے، اور یہ کہ ایک لیکچر میں آیا تھا.
شاید چند مثالیں کے ذریعے چلنے کی نمائندگی کرتی کیوں
ہم ڈور قطار کے سربراہ کے طور پر [0] استعمال نہیں کرنا چاہتے.
>> تو یہ تصور کریں کہ ہم اپنی قطار ہے، ہم اس قطار کو فون کرنے جا رہے ہیں.
آغاز میں، جب ہم صرف اس مثال ہے،
جب ہم صرف یہ اعلان کیا ہے، ہم کچھ initialized نہیں ہے.
یہ سب ردی کی ٹوکری میں ہے. تو چاہے ہم سے یقین ہے کہ ہم اس کی ابتدا کرنے کے لئے کرنا چاہتے ہیں
دونوں سائز اور سر کے شعبوں 0، مناسب کچھ.
ہم آگے بھی اور ہمارے قطار میں عناصر شہوت انگیز null جا سکتا ہے.
اور اس آریھ فٹ نوٹس، کہ اب ہمارے قطار تین عناصر ہی کر سکتے ہیں؛
جبکہ ہمارے اسٹیک چار روک سکتا ہے، ہماری قطار صرف تین پکڑ سکتا ہوں.
اور یہ صرف آریھ فٹ بنانے کے لئے.
پہلی بات یہ ہے کہ یہاں ہوتا ہے ہم سٹرنگ enqueue "ہیلو".
اور جیسا کہ ہم نے اسٹیک کے ساتھ کیا تھا، بہت مختلف یہاں کچھ بھی نہیں
ہم ڈور [0] 1 اور ہماری حجم میں اضافہ سٹرنگ پھینک دیتے ہیں.
ہم enqueue "الوداع"، اس پر ڈال دیا جاتا ہے.
تو یہ سب سے زیادہ حصہ کے لئے ایک اسٹیک کی طرح لگتا ہے.
حجم رکھتا ہے ہم سے شروع کیا یہاں نئے عنصر، نئے عنصر، اوپر جا رہا ہے.
اس وقت کیا ہوتا ہے جب ہم کچھ dequeue کرنا چاہتے ہیں؟
جو جب ہم dequeue چاہتے ہیں، عنصر ہے کہ ہم dequeue کرنا چاہتے ہیں؟
[تلسی] سلک [0]. زیرو. >> بالکل صحیح، تلسی،.
ہم پہلے سٹرنگ، اس میں سے ایک، "ہیلو" سے چھٹکارا حاصل کرنے کے لئے چاہتے ہیں.
تو دوسری بات یہ ہے کہ تبدیل کیا تھا؟
نوٹس اسٹیک کے جب ہم نے کچھ popped، ہم صرف سائز کو تبدیل کر دیا گیا،
لیکن یہاں، ہم چیزیں ہیں جو تبدیلی کے ایک جوڑے کی ہے.
نہ صرف سائز میں تبدیلی، لیکن سر تبدیلیاں کرتا ہے.
اس کی شارلٹ پہلے نقطہ پر واپس جا رہا ہے:
ہم اس سر ساتھ ہی کیوں ہے؟
کیا یہ احساس، شارلٹ؟ >> کی ہے.
[Hardison] ہے؟ تو جب ہم dequeued کیا ہوا؟
کیا سر کیا کہ اب دلچسپ ہے؟
[شارلٹ] اوہ، کیونکہ اس کو تبدیل کر دیا گیا ہے - ٹھیک ہے. میں دیکھتا ہوں.
کیونکہ سر - جہاں سر جگہ شرائط میں تبدیلی کی طرف اشارہ کرتے ہوئے ہے.
یہ اب نہیں ہمیشہ صفر انڈیکس ہے. >> جی ہاں، بالکل.
کیا ہوا تھا اگر اعلی عنصر dequeueing
کیا گیا تھا اور ہم اس سر کے میدان نہیں تھا
کیونکہ ہم ہمیشہ 0 سوچکانک میں ہمارے قطار کے سربراہ میں اس جملے کو بلا
تو پھر ہم باقی قطار کے نیچے منتقل ہوتا ہے.
ہم ڈور سے منتقل "الوداع" [1] ڈور [0] پڑے گا.
اور ڈور [2] نیچے پر ڈور [1].
اور ہم عناصر کی مکمل فہرست کے لیے یہ کرنا پڑے گا،
عناصر کی پوری صف.
اور یہ کہ جب ہم ایک صف کے ساتھ کر رہے ہیں، بہت مہنگا ہو جاتا ہے.
تو یہاں، یہ کوئی بڑی بات نہیں ہے. ہم صرف ہمارے صف میں تین عناصر ہیں.
لیکن اگر ہم نے ایک ہزار عناصر کی قطار یا ایک ملین عناصر تھے،
اور پھر اچانک، ہم dequeue کا ایک گروپ بنانے شروع ایک لوپ میں سے ملاقات،
چیزیں واقعی نیچے کے طور پر یہ سب کچھ شفٹوں نیچے مسلسل سست جا رہے ہیں.
تم جانتے ہو، 1، 1 تبدیلی، کی طرف سے 1 کی طرف سے شفٹ منتقل 1 کی طرف سے تبدیلی.
اس کے بجائے، ہم اس سر کا استعمال کرتے ہیں، ہم اسے ایک "پوائنٹر'' کہتے ہیں حالانکہ یہ واقعی نہیں پوائنٹر
سخت معنوں میں یہ ایک پوائنٹر قسم نہیں ہے.
یہ ایک int * یا چار * یا اس طرح کچھ بھی نہیں ہے.
لیکن اس کی طرف اشارہ کرتے ہوئے یا ہماری قطار کے سربراہ کا اشارہ ہے. جی ہاں؟
>> [Student کی] کیسے dequeue معلوم ہے صرف پاپ سر میں جو کچھ بھی ہے؟
[Hardison] کیسے dequeue کس طرح سر میں جو کچھ بھی ہے پاپ کو جاننا ہے؟ >> ٹھیک ہے، جی ہاں.
>> کیا اس کی طرف دیکھ رہی ہے صرف جو سر میدان پر مقرر کیا گیا ہے.
تو اس پہلی صورت میں اگر ہم یہاں دیکھو،
ہمارے سر 0، انڈیکس 0 ہے. >> حق ہے.
[] Hardison تو یہ صرف کا کہنا ہے کہ ٹھیک ہے، ٹھیک ہے، 0 انڈیکس میں عناصر، سٹرنگ "ہیلو"،
ہمارے قطار کے سربراہ عنصر ہے.
تو ہم اس آدمی کو dequeue جا رہے ہیں.
اور یہ عنصر جو فون کرنے والے کو واپس ہو جاتا ہے ہو جائے گا.
جی ہاں، سعد؟ >> تو سر بنیادی طور پر متعین کرتا ہے - جہاں آپ یہ انڈیکس میں جا رہے ہیں؟
یہ اس کا آغاز ہے؟ >> جی ہاں. ٹھیک ہے. >>
[Hardison] جو ہمارے صف کے لئے نئے آغاز بننے.
تو تمہیں کیا کرنا ہے ہے، جب تم سے کچھ dequeue صفحہ q.head میں عناصر تک رسائی حاصل،
اور یہ کہ عنصر کہ آپ dequeue کرنا چاہتے ہیں کریں گے.
تم بھی سائز تدریج کریں ہے.
ہم تھوڑا سا میں چیزیں کہاں اس کے ساتھ تھوڑا مشکل حاصل کریں گے.
ہم dequeue، اور اب، اگر ہم دوبارہ enqueue،
ہم enqueue ہے کہاں؟
اگلے عنصر ہمارے قطار میں کہاں ہے؟
کہو کہ ہم سٹرنگ "CS" enqueue کرنا چاہتے ہیں.
یہ جو انڈیکس میں جائیں گے؟ [طلباء] سلک [2]. دو. >>
2 اور نہیں 0 کیوں؟
[تلسی] کیونکہ اب سر 1 ہے، تو ہے کہ فہرست کے آغاز کی طرح ہے؟
[Hardison] حق. اور فہرست کے آخر کیا کرنا ہے؟
ہم ہمارے قطار کے آخر ظاہر استعمال کر رہے ہیں؟
سر ہمارے قطار کے سربراہ، ہمارے قطار کے شروع ہے.
ہمارے قطار کے آخر کیا ہے؟ [طلباء] سائز. >> سائز، بالکل.
تو ہمارے نئے عناصر سائز میں، اور عناصر کہ ہم لے سر پر اتر آئے.
جب ہم اگلے عنصر enqueue، ہم اس کے سائز میں ڈال رہے ہیں.
[Student کی] اس سے پہلے کہ آپ ڈال دیا کہ اگرچہ میں، سائز 1 تھا، ٹھیک ہے؟
[Hardison] حق. تو سائز میں کافی نہیں. سائز +، +1 نہیں بلکہ + سر.
کیونکہ ہم نے سر رقم کی طرف سے سب کچھ منتقل کر دیا گیا ہے.
تو یہاں، اب ہم 1 سائز کے ایک قطار ہے کہ 1 صفحہ میں شروع ہوتی ہے ہے.
دم 2 صفحہ ہے. جی ہاں؟
>> [Student کی] کیا ہوتا ہے جب dequeue ڈور [0]، اور میموری میں 'ڈور کے دورانیے
صرف خالی، بنیادی طور پر، ہو یا بھول ہے؟
[Hardison] جی ہاں. اس لحاظ سے، ہم صرف انہیں بھول رہے ہو.
اگر ہم ان کی کاپیاں ذخیرہ کرنے کر رہے تھے -
کئی ڈیٹا کے ڈھانچے عناصر کے اپنے اپنے کاپیاں اکثر ذخیرہ گا
تاکہ آنکڑا ڈھانچہ کے انتظام شخص کو فکر کرنے کی ضرورت نہیں ہے
جہاں ان تمام لوگوں اشارہ جا رہے ہیں کے بارے میں.
آنکڑا ڈھانچہ کی ڈگری حاصل کی، سب کچھ پر تمام کاپیاں کی ڈگری حاصل کی ہے،
اس بات کا یقین کر لیں کہ کہ سب کچھ مناسب طور پر برقرار رہتا ہے.
تاہم، اس معاملے میں، ان اعداد و شمار کے ڈھانچے،، سادگی کے لئے
کچھ کی کاپیاں ہے کہ ہم نے ان میں ذخیرہ کرنے کر رہے ہیں نہیں کر رہے ہیں.
[Student کی] تو یہ ایک مسلسل صف ہے - >> جی ہاں.
اگر ہم جو تعریف اس ڈھانچے کی تھی واپس دیکھو، یہ ہے.
یہ صرف ایک معیاری صف ہے جیسا کہ تم نے دیکھا ہے،
چار * کے ایک صف.
کہ کیا -؟ >> جی ہاں، میں صرف سوچ رہا تھا
اگر آپ میموری آخر میں، ایک مخصوص حد تک چلانے کے، گے
اگر آپ کے پاس آپ کی صف میں ان تمام خالی مقامات ہیں؟
[Hardison] جی ہاں، یہ ایک اچھی بات ہے.
>> اگر ہم اب کیا ہوا ہے اس وقت نظر آتے ہیں،
ہم نے بھر ہمارا قطار ہے، جیسا لگتا ہے.
لیکن ہم سچ میں نہیں ہے ہمارے قطار بھر
کیونکہ ہم ایک قطار ہے کہ 2 سائز ہے ہے، لیکن اس کی 1 صفحہ میں شروع ہوتی ہے.
کیونکہ اس میں ہے جہاں ہمارے سر پوائنٹر ہے.
کہ جیسا کہ تم کہہ رہے تھے، ڈور میں عناصر [0] 0 انڈیکس میں، واقعی وہاں نہیں ہے.
یہ ہماری قطار میں نہیں ہے.
ہم بس میں جانا ہے اور جب ہم اس dequeued ادلیکھت کی زحمت نہیں تھا.
تو اگرچہ ایسا لگتا ہے جیسے ہم میموری سے باہر چلائے گئے، ہم سچ میں نہیں ہے.
یہ جگہ ہمارے لئے استعمال کرنے کے لئے دستیاب ہے.
مناسب رویہ، اگر ہم سب سے پہلے dequeue کچھ کرنے کی کوشش کر رہے تھے
"الوداع" پسند ہے، پاپ، الوداع دور کریں گے.
اب ہماری قطار 2 انڈیکس میں شروع ہوتی ہے اور 1 سائز کے ہے.
اور اب اگر ہم اور کچھ enqueue دوبارہ کوشش کریں، 50 کا کہنا ہے کہ،
اس جگہ پر 50 0 انڈیکس میں جانا چاہئے
کیونکہ وہ ابھی تک ہمارے لئے دستیاب ہے. جی ہاں، سعد؟
[سعد] کہ خود کار طریقے سے ہوتا ہے؟
[Hardison] یہ بہت خود کار طریقے سے نہیں ہوتا. تمہیں ریاضی کرنا پڑے گا
یہ کام کرنے کے لئے، لیکن بنیادی طور پر ہم نے کیا کیا ہے ہے، ہم صرف کے ارد گرد لپیٹ دیا ہے.
[سعد] اور کیا یہ ٹھیک ہے اگر یہ اس کے وسط میں ایک سوراخ ہے؟
[Hardison] یہ ہے کہ اگر ہم ریاضی مناسب طریقے سے کام کر سکتے ہیں.
>> اور یہ پتہ چلتا ہے کہ اصل میں نہیں ہے کہ جدید آپریٹر کے ساتھ کیا مشکل ہے.
تو ویسے ہی جیسے ہم کیسر اور crypto سامان کے ساتھ کیا تھا،
MOD کا استعمال کرتے ہوئے، ہم چیزوں کے ارد گرد لپیٹ ہو جاؤ اور جا رکھنے کے کر سکتے ہیں
، کے ارد گرد اور اس کے ساتھ کے ارد گرد اور ارد گرد ہمارے قطار
رکھنے کے چاروں طرف سر پوائنٹر منتقل.
ہمیشہ اس سائز نوٹس عناصر کی تعداد کا احترام کر رہا ہے قطار کے اندر اندر اصل میں.
اور یہ صرف سر پوائنٹر اس کے ذریعے سایکلنگ کرتا ہے.
اگر ہم یہاں کیا ہوا دیکھتے ہیں، اگر ہم شروع کرنے کے لئے واپس جاؤ،
اور آپ کو صرف دیکھنے کے سر پر کیا ہوا
جب ہم کچھ enqueue، سر پر کچھ بھی نہیں ہوا.
جب ہم نے کچھ enqueued، سر پر کچھ بھی نہیں ہوا.
جیسے ہی ہم کچھ dequeued، سر ایک کی طرف سے چلا جاتا ہے.
کچھ نہیں ہم کچھ enqueued، سر پر ہوتا ہے.
جب ہم کچھ dequeue، اچانک سر incremented ہو جاتا ہے.
کچھ بھی نہیں جب ہم کچھ enqueue، سر پر ہوتا ہے.
>> اس وقت کیا ہوگا اگر ہم پھر کچھ dequeue گے؟
کوئی خیال؟ سر پر کیا ہوگا؟
سر پر کیا ہونا چاہئے
اگر ہم کچھ dequeue تھے؟
سر ابھی 2 انڈیکس میں ہے،
جس کا مطلب یہ ہے کہ قطار کے سربراہ ڈور [2] ہے.
[Student کی] کون 0 واپس؟ >> 0 واپس آ جانا چاہئے. اس کے ارد گرد واپس لپیٹ، بالکل چاہئے.
اب تک، ہر وقت ہے کہ ہم dequeue ملاقات کی، ہم کیا گیا ہے سر پر سے ایک انہوں نے مزید کہا،
سر پر ایک شامل کرتے ہیں، سر پر ایک شامل کرتے ہیں، سر پر ایک شامل کریں.
جیسے ہی سر پوائنٹر ہمارے صف میں آخری فہرست ملتا ہے،
پھر ہم نے اسے شروع کرنے کے لئے واپس لپیٹ کے ارد گرد ہے، 0 واپس چلے جاؤ.
[شارلٹ] ایک اسٹیک میں قطار کی صلاحیت کا تعین کرتا ہے؟
[Hardison] اس صورت میں، ہم صرف کیا گیا ہے # کی وضاحت مسلسل استعمال کر رہے ہیں. ٹھیک ہے. >>
[Hardison]. اصل سی فائل میں، آپ اسے تھوڑا سا اور muck جا سکتے ہیں
اور یہ بڑا یا کم کے طور پر آپ چاہتے ہیں کے طور پر.
[شارلٹ] تو جب آپ اسے بنا ایک قطار رہے ہیں، آپ کو کس طرح کمپیوٹر معلوم
آپ کتنا بڑا اسٹیک کرنا چاہتے ہیں؟
[Hardison] یہ ایک بڑا سوال ہے.
طریقوں میں سے ایک جوڑے کی ہیں. صرف اسے سامنے وضاحت ہے
اور اس کا کہنا ہے کہ ایک قطار ہے جس میں 4 عناصر یا 50 عناصر یا 10،000 ہے جا رہا ہے.
دوسرے طریقے سے کیا کرنا ہے ہیکر ایڈیشن لوگ کر رہے ہیں
اور آپ کی قطار کو متحرک طور پر کے طور پر چیزوں کے اندر شامل کرنے کے لئے اضافہ افعال پیدا
>> [شارلٹ] تو پہلے آپشن کے ساتھ جانے کے لئے، تم کیا نحو استعمال کرتے ہیں
پروگرام کو بتانا قطار کا سائز کیا ہے؟
[Hardison] آہ. تو ہم اس سے باہر نکلتے ہیں.
اب بھی مجھے یہاں stack.c میں ہوں، تو میں صرف سب سے اوپر تک یہاں سکرال جا رہا ہوں.
اس حق کو آپ یہاں دیکھ سکتے ہیں؟ اس کا ہے # 10 صلاحیت کی وضاحت.
اور یہ تقریبا بالکل وہی نحو کہ ہم قطار کے لئے ہے.
قطار میں کے علاوہ، ہم نے یہاں کہ اضافی struct میدان مل گیا ہے.
[شارلٹ] اوہ، میں نے سوچا کہ صلاحیت سٹرنگ کے لئے صلاحیت کا مطلب ہے.
[Hardison] آہ. >> یہ ہے کہ یہ لفظ کے زیادہ سے زیادہ حد کے ہے. >> سمجھے.
جی ہاں. یہاں صلاحیت - یہ ایک بہت بڑی بات ہے.
اور یہ کچھ مشکل ہے
کیونکہ جو ہم یہاں اعلان کیا ہے چار * کے ایک صف ہے.
اشارہ کی ایک صف ہے.
یہ حروف کے ایک صف ہے.
شاید یہ ہے جو تم نے دیکھا جب آپ کو ہے فائل کے لئے آپ کے buffers قرار دیا ہے I / O،
آپ کو جب ہے ڈور اسٹیک پر پیدا کر دستی طور پر.
تاہم، کیا ہم یہاں ملا ہے چار کے * ایک صف ہے.
تو یہ اشارہ کے ایک صف ہے.
اصل میں، اگر ہم واپس باہر زوم اور ہم پر نظر یہاں کیا چل رہا ہے
پریزنٹیشن میں، آپ کہ اصل عناصر، کردار کے اعداد و شمار کو دیکھ
صف خود کے اندر اندر محفوظ نہیں ہے.
کیا ہمارے صف کے اندر اندر یہاں ذخیرہ کردار کے اعداد و شمار کے اشارہ ہیں.
ٹھیک ہے. تو ہم نے دیکھا کہ کس طرح اسٹیک کے ساتھ قطار کا سائز صرف پسند ہے،
سائز ہمیشہ قطار میں عناصر کی تعداد کا احترام کرتا ہے اس وقت.
2 enqueues کرنے کے بعد، سائز 2 ہے.
dequeue بنانے کے بعد سائز 1 ہے.
دوسرے enqueue کرنے کے بعد سائز 2 سے واپس آ گیا ہے.
تو سائز یقینی طور سے قطار میں عناصر کی تعداد کا احترام کرتا ہے،
اور پھر سر صرف سائیکلنگ رکھتا ہے.
یہ 0-1-2، 0-1-2 0-1-2 سے جاتا ہے.
اور ہر وقت ہے کہ ہم dequeue فون، سر کا پوائنٹر اگلے صفحہ incremented ہو جاتا ہے.
اور اگر سر پھر سے جانے کے لئے کے بارے میں ہے، اس کے ارد گرد 0 loops.
تو، ہم اس کے ساتھ dequeue تقریب کو لکھ سکتے ہیں.
اور ہم enqueue تقریب کے لئے آپ لوگ بجائے لاگو کرنے کے لئے چھوڑ کر جا رہے ہیں.
>> ، جب ہم اپنے قطار کے ایک عنصر dequeue
کہ پہلی بات یہ ہے کہ ڈینیل کیا جب ہم stacks کے لئے پاپ تقریب لکھنے شروع کر دیا تھا؟
کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے کسی جو بات ابھی تک نہیں کیا ہے سے سن دو
چلو دیکھتے ہیں، سعد، آپ کو یاد ہے کہ ڈینیل پہلی بات جب انہوں نے لکھا پاپ کے طور پر کیا ہے؟
[سعد] آمدید، یہ تھا - >> وہ کچھ کے لئے تجربہ کیا.
[] سعد اگر حجم 0 سے بڑا ہے. بالکل ٹھیک ہے. >>
اور کے لئے اس کی جانچ کیا تھا؟
[سعد] اگر صف کے اندر کچھ بھی ہے کو دیکھنے کے لئے جانچ کی گئی تھی.
[Hardison] جی ہاں. بالکل. تو تم نے اسٹیک سے باہر کچھ بھی پاپ نہیں کر سکتے ہیں اگر یہ خالی ہے.
اسی طرح آپ کو ایک قطار سے کچھ dequeue نہیں کر سکتے ہیں اگر یہ خالی ہے.
پہلی بات ہم نے ہمارے dequeue تقریب میں کیا یہاں کرنا چاہئے کیا ہے، آپ کے خیال میں ہے؟
[] سعد اگر حجم 0 سے بڑا ہے؟ >> جی ہاں.
اس صورت میں، میں نے اصل میں صرف اگر یہ 0 کے لئے تجربہ کیا ہے.
اگر یہ 0 ہے، ہم شہوت انگیز null واپس آ سکتے ہیں.
لیکن بالکل وہی منطق.
اور اس کے ساتھ ساتھ جاری ہے.
اگر سائز 0 نہیں ہے، جہاں عنصر ہے کہ ہم dequeue کرنا چاہتے ہیں؟
[سعد] سر میں؟ بالکل ٹھیک ہے. >>
ہم صرف ہمارے قطار میں پہلا عنصر ھیںچو کر سکتے ہیں
سر میں عنصر تک رسائی حاصل کرنے کی طرف سے.
پاگل کچھ بھی نہیں.
اس کے بعد، ہم نے کیا کرنا چاہیے؟ ہونا کیا ہے؟
دوسری بات یہ ہے کہ ہم نے dequeue میں کے بارے میں بات کی تھی کیا تھی؟
دو چیزوں پر ہو، کیونکہ ہمارے قطار تبدیل کر دیا گیا ہے.
[ڈینیل] سائز کم کریں. >> ہم سائز کو کم کرنے کے لئے، اور سر میں اضافہ ہے؟ بالکل.
سر میں اضافہ کرنے کے لئے، ہم صرف آنکھ بند کر کے نہیں سر میں اضافہ کر سکتے ہیں، یاد ہے.
ہم نہ صرف queue.head کر سکتے ہیں + +.
ہم نے صلاحیت کی طرف سے اس جدید شامل ہے.
اور ہم صلاحیت کی طرف سے کیوں MOD کرتے ہیں، سٹیلا؟
[سٹیلا] کیونکہ اس کے ارد گرد لپیٹ ہے. بالکل ٹھیک ہے. >>
صلاحیت کی طرف سے ہم جدید کیونکہ یہ 0 کے ارد گرد واپس لپیٹ ہے.
تو اب، ہم نے اس وقت کیا، کیا ڈینیل نے کہا کہ کر سکتے ہیں.
ہم سائز تدریج کریں کر سکتے ہیں.
اور پھر ہم عنصر جو قطار کے سب سے اوپر دیئے گئے تھے واپس آ سکتے ہیں.
یہ اس قسم کی پہلی نظر میں لگتا ہے gnarly. آپ نے ایک سوال کے جواب میں ہو سکتا ہے. معاف کیجئے گا؟
>> [سیم] کیوں قطار کے سب سے اوپر دیئے گئے پہلے ہے؟ کہ کہاں جاتا ہے؟
[Hardison] یہ نیچے سے چوتھے لائن سے آتا ہے.
کے بعد ہم اس بات کا یقین کرنے کے لئے کہ ہماری قطار خالی نہیں ہے ٹیسٹ،
ہم چار * پہلی بار ھیںچو، ہم باہر عنصر جو سر انڈیکس میں بیٹھا ہے ھیںچو
ہمارے صف، ہمارے ڈور صف >>، اور کہ پہلے کال کی؟
[Hardison] اور ہم نے اسے سب سے پہلے کہتے ہیں. جی ہاں.
صرف اس پر کی پیروی کرنے کے لئے، آپ کو ایسا کیوں لگتا ہے ہم ایسا تھا؟
[سیم] ہر پہلے q.strings واپس آ رہا ہے [q.head] >> جی ہاں.
>>، کیونکہ ہم جدید تقریب کے ساتھ q.head کا یہ تبدیل کر رہے ہیں
اور کوئی واپسی لائن کے اندر اندر بھی کر طریقہ ہے.
[Hardison] بالکل. آپ پر جگہ ہیں. سیم مکمل طور پر جگہ ہے.
وجہ سے ہم ہمارے قطار میں سب سے پہلے عنصر ھیںچو اور ایک متغیر میں محفوظ تھا
کیونکہ اس لائن جہاں ہم صرف q.head تھا،
وہاں وہاں میں جدید آپریٹر کچھ نہیں ہے ہم ایسا کر سکتے ہیں
- ایک ہی لائن میں اور اس کے بغیر سر پر اثر لے لو.
تو ہم اصل میں پہلا عنصر ھیںچو ہے، اور پھر سر کو ایڈجسٹ،
سائز کو ایڈجسٹ کریں، اور پھر عنصر ہے کہ ہم باہر نکالا واپس.
اور اس بات پر ہے کہ ہم نے دیکھ لو گے بعد میں کے ساتھ
منسلک فہرستوں، جیسا کہ ہم ان کے ساتھ کے ارد گرد ادا کرتے ہیں.
اکثر ایسا ہوتا ہے جب آپ یا آپ کا لنک کی فہرست کے آزاد کر رہے ہیں تصرف
آپ اگلے عنصر، ایک لنک کی فہرست کے اگلے پوائنٹر کو یاد کرنے کی ضرورت ہے
موجودہ میں تصرف کرنے سے پہلے.
کیونکہ ورنہ تم دور فہرست میں چھوڑ دیا ہے کے بارے میں معلومات پر پھینک دیتے ہیں.
اب، اگر آپ کو آپ کے آلے پر جاتے ہیں، آپ کو اس کی ایکس queue.c-کھولتے باہر.
تو یہاں دو اگر میں نے queue.c کھولتے ہیں تو، آپ کے وزٹرز کا ریکارڈ رکھا زوم،
آپ دیکھیں گے کہ آپ کو اسی طرح نظر آنے والے ایک فائل پڑے گا.
اسی طرح نظر آنے والے جو ہم stack.c کے ساتھ پہلے تھا فائل.
ہم نے صرف وضاحت کی گئی ہے کے طور پر ہم سلائڈ پر دیکھا قطار کے لئے نے ہماری struct ہے ہے.
>> ہم اپنے enqueue تقریب ہے جس سے آپ کے لئے کیا کرنا ہے ہے.
اور ہم dequeue تقریب یہاں ہے.
فائل میں dequeue تقریب unimplemented ہے،
لیکن میں اسے واپس پاورپوائنٹ پر ڈال تاکہ آپ اس میں ٹائپ کریں، اگر آپ چاہیں تو کر سکتے ہیں کریں گے.
تو enqueue پر تم لوگ اگلے 5 یا دو منٹ کے لئے کام کرتے ہیں،
جو تقریبا صرف dequeue کے برعکس ہے.
سر جب آپ enqueueing رہے ہیں کو ایڈجسٹ نہیں کرتے، لیکن کیا آپ کو ایڈجسٹ کرتے ہیں؟
سائز. تو جب سر آپ enqueue، اچھوتا رہتا ہے، سائز تبدیل ہو جاتا ہے.
لیکن یہ تھوڑا سا تھوڑا سا لگتا ہے - آپ کو اس جدید کے ساتھ کے ارد گرد ادا کرنا پڑے گا
باہر بالکل اعداد و شمار کیا سوچکانک میں نئے عناصر رکھا جائے داخل کیا جانا چاہئے.
ڈال دیا تو میں تم لوگوں کو تھوڑا سا دے دونگا، سلائڈ پر dequeue بیک اپ،
اور لوگ آپ کے سوالات ہیں، انہیں باہر چللاو تاکہ ہم ایسا کر سکتے ہیں
ایک گروپ کے طور پر ان کے بارے میں تمام باتیں.
کے علاوہ، سائز مت پہنچاو کے ساتھ میں سب کچھ - جب آپ کے سائز کو ایڈجسٹ، آپ ہمیشہ صرف کر سکتے ہیں -
کیا آپ فونز کبھی MOD ہے؟ [ڈینیل] نمبر >> آپ کو سائز MOD کی ضرورت نہیں ہے، ٹھیک ہے.
کیونکہ فونز، ہمیشہ اگر you're - سنبھالنے تم چیزوں کو مناسب طریقے سے انتظام،
سائز 0 اور 3 کے درمیان ہمیشہ رہے گا.
آپ کو جب آپ enqueue کر رہے ہیں MOD کہاں ہے؟
صرف سر کے لئے [Student کی]. صرف سر کے لئے >>، بالکل.
اور تم کیوں enqueue میں MOD ہے؟
ایک ایسی صورت حال ہے جس میں آپ جدید ہوگا کب ہے؟
[Student کی] اگر آپ کو خالی جگہ میں چیزیں ہیں خالی جگہوں 1 اور 2 میں، پسند،
اور اس کے بعد آپ 0 میں کچھ شامل کرنے کی ضرورت ہے.
[Hardison] جی ہاں، بالکل. تو اگر آپ کے سر پوائنٹر ہی آخر میں ہے،
یا اگر آپ کے سائز کے علاوہ اپنے سر بڑا ہے، یا بلکہ قطار کے گرد لپیٹ جا رہا ہے.
>> تو، اس صورت حال ہے کہ ہم نے یہاں ہے سلائڈ پر ابھی میں
اگر میں ابھی کچھ enqueue کرنا چاہتے ہیں،
ہم 0 انڈیکس میں کچھ enqueue چاہتے ہیں.
اگر ایسا ہے تو آپ کو جہاں 50 جاتا ہے میں نظر آئے گا اور میں enqueue 50 کہتے ہیں،
یہ نیچے کے نیچے دیے گئے وہاں جاتا ہے. یہ انڈیکس 0 میں جاتا ہے.
یہ 'ہیلو' جو پہلے ہی dequeued گیا تھا کی جگہ لے لیتا ہے.
[ڈینیل] اس کا خیال dequeue میں پہلے ہی نہیں لے جاتے؟
یہ enqueue سر کے ساتھ کچھ کیوں کرتی ہے؟
[Hardison] اوہ، تو آپ کو سر میں ترمیم نہیں کر رہے ہیں، معاف کرنا.
لیکن آپ کو جدید آپریٹر جب آپ تک رسائی حاصل کر رہے ہیں کا استعمال کرنا پڑے
عنصر ہے کہ آپ کو جب آپ تک رسائی حاصل کر رہے ہیں enqueue چاہتے ہیں
آپ کی قطار میں اگلے عنصر.
[تلسی] میں ایسا نہیں تھا، اور میں وہاں پر "کامیابی" ہے.
[ڈینیل] اوہ، میں سمجھ سکتا ہوں جو تم کہہ رہے ہو.
[Hardison] تو آپ didn't - آپ صرف q.size میں نے کیا کیا؟
[تلسی] جی ہاں. میں صرف اطراف کو تبدیل کر دیا گیا، میں نے سر سے کچھ نہیں کیا.
[Hardison] آپ سر کچھ بھی ہو ری سیٹ اصل میں نہیں ہے،
لیکن جب آپ ڈور صف میں انڈیکس
آپ اصل میں آگے جانا ہے اور جہاں اگلے عنصر ہے حساب ہے،
کیونکہ اسٹیک withe، اپنے اسٹیک میں اگلے عنصر ہمیشہ
سائز اسی انڈیکس میں.
اگر ہم ہمارے اسٹیک دھکا تقریب میں واپس دیکھو،
ہم انڈیکس سائز میں ہمیشہ ہمارے نئے عنصر میں plunk سکتا ہے.
قطار کے ساتھ جبکہ ہم ایسا نہیں کر سکتے
، اگر ہم اس صورت حال میں ہو کیونکہ
اگر ہم enqueued 50 ہمارے نئے سٹرنگ [1] ڈور میں جائیں گے
جس سے ہم نہیں کرنا چاہتا.
ہم نئی سٹرنگ 0 انڈیکس میں جانے کے لئے چاہتے ہیں.
>> کیا کسی - جی ہاں؟ [Student کی] میں ایک سوال کے جواب میں ہے لیکن یہ واقعی میں کوئی تعلق نہیں ہے.
کیا اس کا مطلب یہ ہے جب کوئی صرف کچھ pred پوائنٹر کی طرح کہتے ہیں؟
اس کے نام کیا ہے کے لئے مختصر ہے؟ مجھے پتہ ہے کہ یہ صرف ایک نام ہے.
[Hardison] Pred پوائنٹر؟ چلو دیکھتے ہیں. کس تناظر میں ہے؟
[Student کی] یہ داخل کے لئے تھا. میں آپ کو بعد میں پوچھیں اگر آپ چاہتے ہیں کر سکتے ہیں
کیونکہ یہ واقعی سے متعلق نہیں ہے، لیکن صرف میں -
[Hardison] لیکچر سے ڈیوڈ داخل کوڈ سے؟
ہم اس ھیںچو تک کر سکتے ہیں اور اس بارے میں بات کر سکتے ہیں.
ہم کہ اگلے منسلک کی فہرست ایک بار ہم کے بارے میں بات کریں گے.
>> تو واقعی بہت تیزی سے کیا enqueue تقریب کی طرح لگتا ہے میں تلاش کریں.
پہلی بات یہ ہے کہ لوگوں کو اپنے enqueue لائن میں کرنے کی کوشش کی تھی؟ اس قطار میں؟
کیا آپ کو آگے بڑھانے اسٹیک کے لئے کیا کیا اسی طرح.
آپ کیا کیا سٹیلا؟
[سٹیلا، unintelligible]
[Hardison] بالکل. اگر (== صلاحیت q.size) -
میں صحیح جگہ میں اپنے منحنی خطوط وحدانی پر ڈال کرنے کی ضرورت ہے - جھوٹے واپس.
تھوڑا سا میں زوم. ٹھیک ہے.
اب اگلی بات یہ ہے کہ ہم نے کرنا تھا؟
صرف اسٹیک کے ساتھ پسند ہے، اور صحیح جگہ میں داخل کیا گیا.
اور تو کیا حق ہے کہ شامل کرنے کے لئے جگہ تھی؟
اسٹیک کے ساتھ انڈیکس سائز کا تھا، اس کے ساتھ یہ کافی نہیں ہے.
[ڈینیل] میں q.head یا ہے - >> q.strings؟ >> جی ہاں.
q.strings [q.head q.size + MOD صلاحیت]
[Hardison] ہم شاید اس کے ارد گرد قوسین ڈال کرنا چاہتے ہیں
تاکہ ہم مناسب مقدم رہی ہے اور کر رہے ہیں تاکہ سب cleart ہے.
سیٹ اور برابر ہے کہ ہے؟ STR کے لئے >>؟ STR کے لئے ہے. >> بہت اچھا ہے.
اور اب آخری بات یہ ہے کہ ہم نے کیا کرنا ہے کیا ہے؟
جیسا کہ ہم نے اسٹیک میں کیا تھا. >> سائز اضافہ؟ >> سائز اضافہ.
بوم. اور پھر، سٹارٹر کوڈ کے بعد صرف ڈیفالٹ کی طرف سے جھوٹی واپس،
ہم سچ یہ اگر تمام کے ذریعے جاتا ہے اور سب کچھ ٹھیک جاتا ہے کو تبدیل کرنا چاہتے ہیں.
ٹھیک ہے. اس حصے کے لئے کے بارے میں معلومات کا ایک بہت ہے.
ہم بالکل ختم نہیں ہو. ہم اکیلے سے تعلق رکھنے والے کی فہرست کے بارے میں واقعی جلدی بات کرنا چاہتا ہوں.
میں یہ ڈال تک تو ہم اسے واپس جانے کے بعد کر سکتے ہیں کریں گے.
لیکن صرف ایک چند سلائڈز کے لئے ہماری پیشکش میں واپس جانے.
تو enqueue TODO ہے، اب ہم نے یہ کیا ہے.
>> اب ہم اکیلے سے تعلق رکھنے والے کی فہرست پر ایک نظر لے.
ہم درس میں یہ تھوڑا سا زیادہ کے بارے میں بات کی تھی.
تم لوگ کتنے ڈیمو نے دیکھا جہاں ہم لوگوں تھا
awkwardly ایک دوسرے کے اور ہولڈنگ کی تعداد کی طرف اشارہ کرتے ہوئے؟ >> مجھے اس میں تھا.
>> تم لوگ کیا سوچا تھا؟ کہ کیا ہے، امید ہے کہ یہ تھوڑا سا demystify؟
ایک فہرست کے ساتھ، یہ پتہ چلا ہے کہ ہم نے اس قسم کے ساتھ نمٹنے کے لئے ہے کہ ہم ایک نوڈ کو فون کرنے جا رہے ہیں.
قطار اور اسٹیک کے ساتھ جبکہ ہم structs ہے کہ ہم نے اسٹیک میں قطار فون کروں گا،
ہم نے اسٹیک اقسام میں ان نئی قطار تھا،
یہاں ایک فہرست کو واقعی صرف مراکز کی ایک گروپ کی ہے بنا دیا ہے.
اسی طرح ہے کہ ڈور صرف حروف کے ایک گروپ ہیں میں سب ایک دوسرے کے ساتھ اہتمام کیا.
ایک لنک کی فہرست میں صرف ایک نوڈ اور دوسرے نوڈ اور دوسرے نوڈ اور دوسرے نوڈ ہے.
بلکہ تمام نوڈس smashing مل کر اور انہیں contiguously ذخیرہ کرنے سے
، ٹھیک یاد میں ایک دوسرے کی اگلی
یہ اگلے پوائنٹر والے ہمیں بے ترتیب میں نوڈس جہاں بھی، ذخیرہ کرنے کی اجازت دیتا ہے ہے.
اور پھر تار کی طرح ان سب کو ایک ساتھ ایک سے دوسرے کی طرف اشارہ ہے.
>> اور بڑا فائدہ کیا تھا کہ یہ ایک صف پر تھا؟
ذخیرہ کرنے کا سب کچھ ختم ہو contiguously صرف ایک دوسرے کے ساتھ پھنس گئے؟
تمہیں یاد ہے؟ جی ہاں؟ >> متحرک میموری مختص کرنے؟
>> کس معنی میں متحرک میموری مختص کرنے؟
[Student کی] اس میں آپ کو یہ بڑا اور تم نے اپنی ساری صف منتقل کی ضرورت نہیں ہے بنانے رکھ سکتے ہیں؟
[Hardison] بالکل. تو ایک صف کے ساتھ، جب تم اس کے وسط میں ایک نئے عنصر کے لئے کرنا چاہتے ہیں،
آپ کو ہر چیز کی جگہ بنانے کے لئے منتقل کی ہے.
اور اس طرح ہم نے قطار کے ساتھ کے بارے میں بات کی،
، یہی وجہ ہے کہ ہم اس سر پوائنٹر رکھنا
تاکہ ہم چیزیں مسلسل نہیں منتقل کر رہے ہیں.
کیونکہ وہ مہنگا ہو جاتا ہے، اگر آپ کو ایک بہت بڑی صف ہے
اور آپ مسلسل ان بے ترتیب اضافے کر رہے ہیں.
جبکہ ایک فہرست کے ساتھ، تمام تمہیں کیا کرنا ہے ہے ایک نیا نوڈ پر اسے پھینک،
اشارہ ایڈجسٹ، اور تم نے کیا کیا کر رہے ہیں.
اس کے بارے میں کیا بیکار ہے؟
علاوہ حقیقت یہ ہے کہ یہ اتنا آسان نہیں ہے ایک صف کے طور پر کے ساتھ کام کرنے سے؟ جی ہاں؟
[ڈینیل] ٹھیک ہے، مجھے لگتا ہے کہ یہ بہت مشکل ہے منسلک فہرست میں ایک مخصوص عنصر تک رسائی حاصل ہے؟
[Hardison] آپ صرف آپ کے منسلک فہرست کے وسط میں ایک صوابدیدی عنصر نہیں کود کر سکتے ہیں.
آپ اس کے بجائے کیسے ہے؟ >> آپ کو پوری بات کے ذریعے قدم ہے.
[Hardison] جی ہاں. آپ ایک وقت میں ایک، ایک وقت میں ایک کے ذریعے جانا ہے.
یہ ایک بہت بڑا ہے - یہ ایک درد ہے.
اور کیا ہے - اس میں ایک اور خاتمے ہے.
[تلسی] آپ آگے اور پیچھے کی طرف جانا نہیں کر سکتے ہیں؟ آپ کو ایک سمت جانے کے لئے ہے؟
[Hardison] جی ہاں. تو ہم اس کو کس طرح کو حل کرتے ہیں، کبھی کبھی؟
[تلسی] فہرستوں دوگنا سے منسلک ہے؟ بالکل ٹھیک ہے. >> دوگنا سے تعلق رکھنے والے کی فہرست ہیں.
بھی ہیں - معاف کرنا؟
>> [] سام کہ pred بات یہ ہے کہ کا استعمال کرتے ہوئے کے طور پر ایک ہی ہے -
مجھے ابھی یاد نہیں ہے کہ کیا pred بات کے لئے ہے؟
میں دوگنا اور اکیلے کے درمیان ہے کہ نہیں؟
[Hardison] چلو نظر بالکل وہی جو وہ کر رہے تھے.
تو ہم یہاں جانا. فہرست کوڈ ہے.
یہاں ہم predptr یہاں ہے. اس کا ہے جو آپ کے بارے میں بات کر رہے تھے؟
تو یہ تھا - وہ ایک فہرست آزاد ہے اور وہ اس کے پاس ایک پوائنٹر جمع کرنے کی کوشش کر رہا ہے.
یہ دوگنا اکیلے، منسلک کی فہرست نہیں ہے.
ہم اس کے بارے میں مزید بعد میں فہرست آزاد کرنے کے بارے میں بات کے بعد یہ بات کر رہا ہے کر سکتے ہیں
اور میں کچھ دیگر چیزیں سب سے پہلے دکھانا چاہتا ہوں.
لیکن یہ صرف ہے - ptr کی قدر یاد ہے
[Student کی] اوہ، یہ preceeding پوائنٹر ہے؟ >> جی ہاں.
تو ہے کہ ہم ہم تو مفت کیا predptr ہے سے قبل ptr خود تو اضافہ کر سکتے ہیں.
کیونکہ ہم آزاد اور پھر ptr ptr = ptr اگلے، ٹھیک ہے؟ فون نہیں کر سکتے ہیں
یہ خراب ہو جائے گی.
تو چلو دیکھتے ہیں، اس آدمی کے پاس واپس.
>> فہرستوں کے بارے میں دیگر بری بات یہ ہے کہ جبکہ ایک صف کے ساتھ
ہم صرف تمام عناصر خود ایک دوسرے کے ساتھ سجا دیئے ہیں،
ہم یہاں بھی اس پوائنٹر کو متعارف کرایا ہے.
تو میموری کا ایک اضافی حصہ ہے کہ ہم استعمال کرنے کے لئے کر رہے ہیں
ہر عنصر ہے کہ ہم ہماری فہرست میں ذخیرہ کرنے کر رہے ہیں کے لئے ہے.
ہم لچک ملے، لیکن یہ ایک قیمت پر آتا ہے.
یہ اس وقت کی قیمت کے ساتھ آتا ہے،
اور یہ اس میموری قیمت کے ساتھ بھی آتا ہے.
معنوں میں اب وقت آ گیا ہے کہ اب ہم صف میں ہر عنصر کے ذریعے جانا ہے
10 انڈیکس میں ایک، یا کہ 10 انڈیکس ایک صف میں ہوتا ہے.
>> واقعی بہت تیزی سے، جب ہم ان فہرستوں آریھ
عام طور پر ہم نے فہرست کے سربراہ یا فہرست کے پہلے پوائنٹر پکڑ
نوٹ اور یہ کہ یہ ایک حقیقی پوائنٹر ہے.
اس میں صرف 4 بائٹس ہے. یہ ایک اصل نوڈ خود نہیں ہے.
تو دیکھتے ہیں کہ یہ اس میں کوئی int قیمت ہے، اس میں کوئی اگلے پوائنٹر ہے.
یہ لفظی صرف ایک پوائنٹر ہے.
یہ کچھ ہے جو ایک حقیقی نوڈ struct ہے کی طرف اشارہ ہو رہا ہے.
[سیم] نامی نوڈ پوائنٹر؟ >> یہ ہے - نہیں. یہ قسم نوڈ کے کچھ پوائنٹر ہے.
یہ نوڈ struct پوائنٹر ہے. >> اوہ، ٹھیک ہے.
دائیں بائیں کوڈ پر ڈایا گرام.
ہم شہوت انگیز null، جس میں شروع کرنے کے لئے ایک اچھا طریقہ ہے مقرر کر سکتے ہیں.
جب آپ نے اسے آریھ، آپ کو یا تو لکھنے اتارنا null طور پر یا آپ کو اس کے ذریعے ایک لائن ڈال یہ پسند ہے.
>> کی فہرست کے ساتھ کام کرنے کا سب سے آسان کے طریقوں میں سے ایک،
اور ہم نے آپ دونوں prepend سے دعا گو ہیں اور دونوں کے درمیان فرق کو دیکھنے کے لئے شامل کرتے ہیں،
لیکن prepending یقینی طور پر آسان ہے.
جب آپ prepend ہے، جہاں آپ کو - جب آپ prepend (7)،
آپ اور تخلیق نوڈ struct
اور آپ سب سے پہلے کیونکہ اب اس کی طرف اشارہ ہے، کیونکہ ہم اس prepended
اس فہرست کے آغاز میں ہونے جا رہا ہے.
اگر ہم prepend (3)، کہ ایک اور نوڈ پیدا، لیکن اب 3 7 سے پہلے آتا ہے.
تو ہم بنیادی طور پر ہماری فہرست پر چیزیں آگے بڑھانے رہے ہیں.
اب تم دیکھ کر، کہ prepend، کبھی کبھی لوگ اسے دھکا کر سکتے ہیں،
کیونکہ آپ کو آپ کی فہرست پر ایک نئے عنصر کو آگے بڑھانے رہے ہیں.
یہ آسان بھی ہے ایک فہرست کے سامنے خارج کرنے کی.
تو لوگوں کو کہ پاپ اکثر ملاقات کریں گے.
اور، آپ کو اس راہ میں ایک لنک کی فہرست کا استعمال کرتے ہوئے اسٹیک کا مقابلہ کر سکتے ہیں.
افوہ. معذرت، اب ہم نے شامل میں ہو رہے ہیں. تو ہم یہاں prepended (7)، اب ہم prepend (3).
اگر، ہم نے اس فہرست پر کچھ prepended، اگر ہم prepended (4)
تو ہم 4 اور 3 پھر اور پھر 7 تھا.
تو ہم تو پاپ اور 4 ہٹانے، 3 ہٹائیں، 7 خارج کر دیں.
اکثر اس کے بارے میں سوچنا زیادہ بدیہی طریقہ شامل کے ساتھ ہے.
تو میں باہر diagrammed کے ساتھ شامل کی طرح نظر آئے گا ہے.
یہاں، سے منسلک (7) مختلف نظر نہیں ہے
کیونکہ فہرست میں صرف ایک عنصر ہے.
اور appending (3) یہ آخر میں رکھتا ہے.
شاید تم ٹھیک اب شامل کے ساتھ چال دیکھ سکتے ہیں
کہ چونکہ ہم صرف فہرست کے آغاز کہاں ہے معلوم ہے،
ایک فہرست آپ کو فہرست کے ذریعے پورے راستے پر چلنا پڑے ملحق
ختم کرنے کے لئے حاصل کرنے کے لئے، روکو، تو آپ کے نوڈ اور plunk نیچے سب کچھ کی تعمیر کے.
ساری چیزیں تار.
تو prepend کے ساتھ، جیسا کہ ہم صرف اس کے ذریعے بہت تیزی سے فٹ،
جب آپ ایک کی فہرست میں prepend، کافی آسان ہے.
>> آپ اپنے نئے نوڈ بنانے کے لئے، کچھ متحرک میموری مختص کرنے سے شامل کریں.
تو ہم یہاں ایک نوڈ malloc کا استعمال کرتے ہوئے struct کر رہے ہیں.
تو malloc ہم کا استعمال کریں کیونکہ کہ ایک طرف بعد کے لئے ہمارے لئے یاد قائم کریں گے رہے ہیں
کیونکہ ہم یہ نہیں کرنا چاہتے ہیں - ہم یہ یاد ایک طویل وقت کے لئے برقرار رہتا ہے کرنا چاہتے ہیں.
اور ہم یاد میں جگہ ہے کہ ہم صرف مختص پوائنٹر ملتا ہے.
ہم نوڈ کے سائز کا استعمال کرتے ہیں، ہم شعبوں خلاصہ نہیں ہے.
ہم بائٹس کی تعداد دستی طور پر نہیں پیدا،
بجائے ہم sizeof ہے تا کہ ہم جانتے ہیں کہ ہم بائٹس کی مناسب تعداد حاصل کر رہے ہیں کا استعمال کرتے ہیں.
ہم ٹیسٹ میں ہمارے malloc کال کامیاب اس بات کا یقین کر رہے ہیں.
یہ کچھ ہے آپ کو عام طور پر کرنا چاہتے ہیں.
جدید مشینوں پر، اور میموری سے باہر رہا کچھ نہیں ہے یہ تو آسان ہے
جب تک آپ کو چیزیں ایک ٹن آونٹن کر رہے ہیں اور ایک بہت بڑی فہرست بنانے،
لیکن، اگر آپ کو ایک فون یا لوڈ، اتارنا Android کی طرح کے لئے کہتے ہیں، چیزیں بنا رہے ہیں،
آپ کو محدود میموری وسائل کی کیا ضرورت ہے، خاص طور پر اگر آپ شدید کچھ کر رہے ہیں.
تو یہ اچھی بات ہے کہ پریکٹس میں حاصل کرنے کے لئے.
>> یاد رکھیں کہ میں نے ایک جوڑے کو مختلف افعال کا استعمال کیا یہاں ہے
کہ تم نے دیکھا ہے کہ نئے کی طرح ہیں.
تو fprintf صرف printf پسند ہے
سوائے اپنی پہلی دلیل کے ندی ہے جس سے آپ کو پرنٹ کرنا چاہتے ہیں.
اس صورت میں، ہم معیاری غلطی کی سٹرنگ پر پرنٹ کرنے کے لئے چاہتے ہیں
کے جو معیاری outstream سے مختلف ہے.
بنیادی طور پر یہ ایک ہی جگہ پر ظاہر کرتا ہے.
یہ بھی ٹرمینل پرنٹ، لیکن آپ کر سکتے ہیں -
ان حکم دیتا ہے کا استعمال کرتے ہوئے آپ کے بارے میں، نئ سمت تکنیک سیکھا
آپ ٹومی ویڈیو میں مسئلہ 4 سیٹ کے لئے کے بارے میں سیکھا ہے، تو آپ اسے براہ راست کر سکتے ہیں
مختلف علاقوں میں، پھر، ٹھیک ہے یہاں سے باہر نکلیں، آپ کے پروگرام exits.
یہ اہم سے واپس آنے کی طرح بنیادی طور پر ہے،
کے علاوہ ہم نے وہاں سے نکلنے کی کا استعمال کرتے ہوئے کیونکہ یہاں واپس کچھ نہیں کروں گا.
ہم نے اہم نہیں ہیں، تو واپس لوٹنے پروگرام اخراج نہیں ہوتا ہے جیسا کہ ہم چاہتے ہیں.
تو ہم نے وہاں سے نکلنے کی تقریب کا استعمال کرتے ہیں اور اس میں ایک خرابی کا کوڈ دے.
تو پھر ہم یہاں نئے نوڈ قدر فیلڈ، اس میں میدان میں برابر ہو، اور پھر ہم یہ تار.
ہم نئے نوڈ کے اگلے پوائنٹر پہلے کی طرف اشارہ ہے،
اور پھر سب سے پہلے نئے نوڈ کی طرف اشارہ کریں گے.
کوڈ کا یہ پہلا لائنز، ہم اصل میں نئے نوڈ کی تعمیر کر رہے ہیں.
اس تقریب کی آخری دو لائنوں لیکن پہلی ہیں.
آپ اصل میں ایک تقریب میں باہر ھیںچو، ایک مدد گار تقریب میں کر سکتے ہیں.
وہ اکثر مجھے کیا کرنا ہے، میں ایک تقریب میں اسے باہر ھیںچو،
میں اسے تعمیر نوڈ کی طرح کچھ کہتے ہیں،
اور یہ کہ prepend تقریب بہت چھوٹے رکھتا ہے، صرف 3 لائنوں تو ہے.
میں اپنے تعمیر نوڈ تقریب ایک فون کر، اور پھر میں تار سب کچھ ہے.
>> آخری بات میں آپ کو ظاہر کرنے کے لئے چاہتے ہیں،
مجھے اور آپ کو اپنے آپ شامل اور وہ سب کر لیں گے،
ہے کہ کس طرح ایک فہرست iterate پر.
ایک کی فہرست میں iterate کے لئے مختلف طریقوں سے ایک گروپ ہیں.
اس صورت میں، ہم نے ایک فہرست کی لمبائی کو تلاش کرنے کے لئے جا رہے ہیں.
تو ہم = 0 کی حد کے ساتھ شروع ہو جاتے ہیں.
یہ ایک تار کے لئے strlen لکھنے کی طرح ہے.
اس کا ہے جو میں آپ کو لوپ کے لئے ظاہر یہ یہیں چاہتا ہوں.
یہ تھوڑے funky لگ رہا ہے، یہ ہمیشہ کی طرح نہیں ہے int میں = 0، میں جو کچھ بھی <، میں + +.
اس کے بجائے یہ ہماری متغیر (ن) کی ابتدا فہرست کے آغاز کے لئے ہے.
اور پھر جبکہ ہماری iterator متغیر خالی نہیں ہے، ہم جاری رکھتے ہیں.
یہ اس لئے ہے کیونکہ ہماری فہرست کے آخر کنونشن کی طرف سے اتارنا null ہو جائے گا.
اور پھر + + کر کی بجائے، اضافہ،
+ کے منسلک فہرست برابر + N = ن اگلا> ہے.
>> میں نے تمہیں یہاں خلیج میں بھر کیونکہ ہم وقت سے باہر ہو.
لیکن یہ بات ذہن میں رکھنے کے طور پر آپ کو آپ کے spellr psets کام.
لنک کی فہرست، اگر آپ ہیش کی میز پر عمل پیرا رہے ہیں،
بہت ہاتھ میں ضرور آئے گا.
اور چیز پر looping کے لئے اس جملے کو ہونے کی زندگی بہت آسان بنانے کے، امید ہے کہ جائے گا.
کوئی سوال، جلدی سے؟
[سیم] تم مکمل sll اور سپریم کورٹ بھیج دیں گے؟
[Hardison] جی ہاں. میں مکمل سلائڈ اور مکمل sll اسٹیک اور queue.cs بھیج دیں گے.
[CS50.TV]