[Powered by Google Translate] [قطار] [کرس Gerber، ہارورڈ یونیورسٹی] یہ CS50 ہے، CS50.TV] عناصر میں سے ایک کا حکم دیا مجموعہ کو ذخیرہ کرنے کے لئے ایک مفید آنکڑا ڈھانچہ ایک قطار ہے. استعمال کیا جاتا ہے جب عناصر کو ہٹا دیا جائے گا کی ضرورت ہے اسی ترتیب میں انہیں شامل کیا گیا ہے. اس تصور FIFO، جس میں میں، سب سے پہلے باہر پہلی کے لئے مخفف ہے کے طور پر کہا جاتا ہے. یہ دیکھ کرنے میں مدد کرنے کے لئے، اس تصویر کے لئے مفید ہو سکتے ہیں ایک سٹور میں چیک آؤٹ لائن. کے طور پر لوگ آتے ہیں، وہ لائن کے آخر تک انتظار کریں. کوشپال تو موڑ لیتا ہے سامنے گاہکوں کی خدمت کر رہا ہے، جو اس وقت ایک وقت میں ایک سے باہر نکلنے کے. کمپیوٹر سائنس میں، ہم سربراہ کے طور پر قطار کے سامنے کا حوالہ دیتے ہیں اور پونچھ کے کے طور پر واپس. جب ہم نے ایک درخواست میں یہ استعمال کر سکتے ہیں کی ایک مثال کلاس enrollments کے لئے ایک waitlist ہے. جیسے جیسے نشستوں کلاس میں دستیاب ہونے پر، انتظار کی فہرست کے سربراہ شخص کلاس میں اندراج کرنے کا موقع فراہم کیا گیا ہے. ایک قطار کو کسی بھی مجموعہ کا استعمال کرتے ہوئے تعمیر کیا جا سکتا ہے کہ اس طرح کے لئے ایک صف یا ایک لنک کی فہرست کے طور پر میں ڈیٹا ذخیرہ،. ساتھ قطار میں اشیاء کی ذخیرہ کی وصولی کے ساتھ، ہم بھی قطار کے آخر میں اشیاء شامل کرنے کا طریقہ کی ضرورت ہے، جس enqueuing کہا جاتا ہے، اور ایک اور قطار کے سربراہ کی جانب سے ایک آئٹم کو دور کرنے کے لئے، جس dequeuing کہا جاتا ہے. یہ اکثر فائدہ مند ہوتا ہے دوسرا طریقہ قطار کی موجودہ لمبائی واپس شامل کے ساتھ ساتھ اگر قطار خالی ہے چیک کرنے کے لیے طریقہ کار کے طور پر. ، چلو کو دیکھو کہ ہم کس طرح سی integers کے ایک قطار کو لاگو کر سکتے ہیں عناصر کے جمع کرنے کے لئے ایک صف کا استعمال کرتے ہوئے. سب سے پہلے، ہم ایک ہمارے متغیر کو منعقد کرنے قطار نامی ڈھانچے کی تشکیل ہے. ہم integers کی ایک مقررہ سائز 0 انڈیکس صف استعمال کریں گے عناصر جمع. ہم نامی ایک متغیر سر بھی شامل ہوں گے کہ عنصر جو قطار کے سربراہ اس وقت ہے کے سوچکانک میں ذخیرہ. ایک تیسری متغیر، استعمال کیا جاتا ہے کہا جاتا طوالت رکھا جائے گا صف میں عناصر کی تعداد کا ٹریک رکھنے کے لئے. ایک متبادل کے طور پر، آپ کو نامی ایک متغیر دم کا استعمال کرتے ہوئے کے بارے میں غور کر سکتے ہیں صف میں آخری میدان عنصر کی طرف اشارہ ہے. اس سے پہلے کہ ہم کوئی کوڈ لکھنا، چلو ہمارے ڈیزائن کی کوشش کریں. 0 لمبائی کے ایک خالی صف سے شروع سر 0 پر مقرر کیا ہے. اب چلو enqueue 4 اقدار - 6، 2، 3، اور 1. لمبائی 4 اب ہو جائے گا، اور سر 0 میں رہیں گے. اگر ہم ایک قدر dequeue تو کیا ہوتا ہے؟ ہم نے 3 کی لمبائی کم ہو جائے گا، 1 سربراہ مقرر کریں، اور 6 قیمت واپس. یہ کوڈ اس طرح دیکھ سکتا ہے. یہاں ہم dequeue تقریب ہے، Q - - جو قطار میں ایک پوائنٹر لیتا ہے اور عنصر پوائنٹر جو کہ ایک قسم int ہے. سب سے پہلے ہم قطار کی لمبائی اس بات کا یقین کر لیں کہ یہ 0 سے زیادہ ہے چیک کرنے کے لیے، اس بات کا یقین کرنے کے لئے کہ ایک dequeued رکھا جائے عنصر ہے. پھر ہم پوزیشن سر میں عناصر صف میں نظر آتے ہیں، اور عنصر کی قدر اس پوزیشن میں قدر کے قائم کرنے. پھر ہم سر اگلے انڈیکس کو تبدیل کرنے صلاحیت٪ پھر ہم 1 کی طرف سے قطار کی لمبائی کو کم کرتے ہیں. آخر میں، ہم ظاہر ہوتا ہے کہ dequeue کامیاب رہا سچ واپس. اگر ہم پھر سے dequeue، کی حد کے 2 بن جائے گا، سر 2 بھی بن جائے گا، اور واپسی قیمت 2 ہو جائے گا. اگر ہم جیسا کہ 7 ایک قدر enqueue تو کیا ہوتا ہے؟ جیسا کہ ہم نے قطار کے آخر میں تھے، ہم ارد گرد لپیٹ اور ذخیرہ صف کے عنصر 0 میں قدر کی ضرورت ہو گی. Mathematically، یہ لمبائی انہوں نے مزید کہا کی طرف سے نمائندگی کیا جا سکتا ہے سر کی فہرست اور ایک قطار صلاحیت کا استعمال کرتے ہوئے معامل کارکردگی کا مظاہرہ کر. یہاں 2 +2، جس میں 4 4 فیصد ہے ہے، جس 0 ہے. اس خیال کا ترجمہ کوڈ ہم اس تقریب میں ہے. یہاں ہم enqueue تقریب، ملاحظہ کریں Q - جو قطار پوائنٹر لیتا ہے - اور عنصر enqueued رکھا جائے لیتا ہے، جس میں ایک عدد صحیح ہے. ہم آئندہ اس بات کا یقین کرنے کے لئے چیک کرنے کے لیے ہے کہ قطار کی صلاحیت اب بھی قطار کی موجودہ لمبائی سے بڑا ہے. اگلا، ہم عناصر صف میں عنصر ذخیرہ انڈیکس میں جو سر + لمبائی فیصد قطار کی صلاحیت کی طرف سے مقرر کیا جاتا ہے. پھر ہم 1 کی طرف سے قطار کی لمبائی میں اضافہ، اور پھر سچ ظاہر ہوتا ہے کہ enqueue تقریب کامیاب تھا واپس. دو افعال ہم نے ذکر کیا ہے کے علاوہ میں، دو اضافی افعال ہیں. پہلا isempty تقریب ہے، جو قطار پوائنٹر لیتا ہے تصدیق اور یہ کہ لمبائی 0 ہے. دوسری لمبائی کی تقریب ہے، جو بھی قطار پوائنٹر لیتا ہے اور struct سے موجودہ لمبائی واپس. یہ مختصر جائزہ ایک قطار کے ممکنہ عمل درآمد کا اظہار کیا ہے. حدود کے اس عمل سے ایک یہ ہے کہ قطار ایک مقررہ زیادہ سے زیادہ سائز کے ہیں. اگر ہم زیادہ عناصر قطار سے زیادہ کر سکتے ہیں کو شامل کرنے کی کوشش کرتے ہیں، ہم آپ سے درخواست کو نظر انداز کرنے اور عنصر چھوڑ کی ضرورت ہو سکتی ہے، یا ہم کچھ قسم کی غلطی کی واپس پسند کر سکتے ہیں. ایک صف کے بجائے ایک لنک کی فہرست کا استعمال کرتے ہوئے کو متحرک سائز قطار آسان بنا دے گا. تاہم، چونکہ ہم ایک لنک کی فہرست کے عناصر کو براہ راست رسائی حاصل نہیں کرتے، اگر ہم دم کا ٹریک رکھنے کے نہیں، ہم پورے منسلک فہرست کو ختم کرنے کے لئے ہر وقت حاصل کرنے کے لئے اسکین ہوگا. ہم دوسرے اعداد و شمار کی قسم کی ایک صف کا استعمال کرتے ہوئے بھی غور کر سکتے ہیں، structs جیسے پیچیدہ زیادہ عناصر کے قطار بنانے کے لئے. ہمارے ایک کلاس waitlist کی مثال واپس سوچ رہا تھا، یہ ڈھانچے انفرادی طالب علموں کی نمائندگی کر سکتے ہیں. میرا نام Chris Gerber ہے، اور اس CS50 ہے. [CS50.TV] اور واپسی - >> اور ایک بار. اور سچ ہے کہ اس بات کی نشاندہی کرنے کے واپس - قطار کامیاب رہا. -٪ قطار کی صلاحیت - یہ ترمیم میں مذاق ہو رہا ہے. [ہنسی]