اسٹیک اور قطار کے مابین فرق

مصنف: Laura McKinney
تخلیق کی تاریخ: 2 اپریل 2021
تازہ کاری کی تاریخ: 10 مئی 2024
Anonim
Основные ошибки при возведении перегородок из газобетона #5
ویڈیو: Основные ошибки при возведении перегородок из газобетона #5

مواد


اسٹیک اور قطار دونوں غیر اعداد و شمار کے ڈھانچے ہیں۔ اسٹیک اور قطار کے مابین اہم اختلافات یہ ہیں کہ اسٹیک ڈیٹا عناصر تک رسائی حاصل کرنے اور شامل کرنے کے لئے LIFO (پہلے آخری میں آخری) طریقہ استعمال کرتا ہے جبکہ ڈیٹا عناصر تک رسائی اور اضافے کے لئے قطار FIFO (First in first out) طریقہ استعمال کرتی ہے۔

دوسری طرف اعداد و شمار کے عناصر کو آگے بڑھانے اور پاپ کرنے کے لئے اسٹیک کا صرف ایک ہی سرعام کھولا ہوا ہے اور ڈیٹا عناصر کی تلاش اور تلاش کرنے کے لئے قطار میں دونوں سرے کھلے ہیں۔

اسٹیک اور قطار اعداد و شمار کے ڈھانچے ہیں جو ڈیٹا عناصر کو ذخیرہ کرنے کے لئے استعمال ہوتے ہیں اور درحقیقت کچھ حقیقی دنیا کے مساوی پر مبنی ہوتے ہیں۔ مثال کے طور پر ، یہ اسٹیک سی ڈی کا ایک اسٹیک ہے جہاں سے آپ سی ڈی کے اسٹیک کے اوپری حصے میں سی ڈی رکھ سکتے ہیں۔ اسی طرح ، تھیٹر ٹکٹوں کے لئے قطار ایک قطار ہے جہاں پہلے جگہ پر کھڑا شخص ، یعنی قطار کے سامنے والا حصہ پہلے پیش کیا جائے گا اور پہنچنے والا نیا شخص قطار کے عقب میں (قطار کے آخری سرے) دکھائے گا۔

  1. موازنہ چارٹ
  2. تعریف
  3. کلیدی اختلافات
  4. عمل آوری
  5. آپریشنز
  6. درخواستیں
  7. نتیجہ اخذ کرنا

موازنہ چارٹ

موازنہ کی بنیاداسٹیک قطار
کام کرنے کا اصولLIFO (آخری میں فرسٹ آؤٹ)FIFO (پہلا باہر پہلا)
ساختعناصر کو داخل کرنے اور حذف کرنے کے لئے ایک ہی اختتام استعمال ہوتا ہے۔ایک سرے کو داخل کرنے کے لئے استعمال کیا جاتا ہے ، یعنی ، عقبی اختتام اور دوسرا سر عنصروں کو حذف کرنے کے لئے استعمال ہوتا ہے ، یعنی سامنے والا اختتام۔
اشارے کی تعدادایکدو (سادہ قطار کے معاملے میں)
آپریشن انجام دیئے گئےپش اور پاپ ینکیو اور قابل
خالی حالت کا امتحاناوپر == -1سامنے == -1 || سامنے == پیچھے +1
مکمل حالت کا امتحان
اوپر == زیادہ سے زیادہ - 1پیچھے == زیادہ سے زیادہ - 1
متغیراتاس کی مختلف حالتیں نہیں ہیں۔اس میں سرکلر قطار ، ترجیحی قطار ، دگنا ختم ہونے والی قطار جیسی مختلف قسمیں ہیں۔
عمل آوریآساننسبتا complex پیچیدہ


اسٹیک کی تعریف

اسٹیک ایک غیر قدیم لکیری ڈیٹا ڈھانچہ ہے۔ یہ آرڈر شدہ فہرست ہے جہاں نیا آئٹم شامل کیا جاتا ہے اور موجودہ عنصر کو صرف ایک سرے سے حذف کردیا جاتا ہے ، جسے اسٹیک کے اوپر (TOS) کہا جاتا ہے۔ چونکہ اسٹیک میں تمام حذف اور اندراج اسٹیک کے اوپری حصے سے ہوچکا ہے ، لہذا اس میں شامل آخری عنصر اسٹیک سے ہٹانے والا پہلا ہوگا۔ یہی وجہ ہے کہ اسٹیک کو آخری قسم کا پہلا آؤٹ (LIFO) قسم کی فہرست کہا جاتا ہے۔

نوٹ کریں کہ جو عنصر اسٹیک میں اکثر استعمال ہوتا ہے وہ سب سے اوپر والا عنصر ہوتا ہے ، جبکہ آخری دستیاب عنصر اسٹیک کے نیچے ہوتا ہے۔

مثال

آپ میں سے کچھ بسکٹ (یا پاپپن) کھا سکتے ہیں۔ اگر آپ فرض کریں تو ، ڈھانپے کے صرف ایک ہی حصے کو پھاڑ دیا گیا ہے ، اور بسکٹ ایک ایک کرکے باہر نکالے گئے ہیں۔ اسی کو پاپنگ کہا جاتا ہے ، اور اسی طرح ، اگر آپ کچھ دیر بعد کچھ بسکٹ کو محفوظ رکھنا چاہتے ہیں تو ، آپ انہیں اسی پھٹے ہوئے سرے سے دوبارہ پیک میں ڈال دیں گے جسے پشنگ کہا جاتا ہے۔


قطار کی تعریف

ایک قطار ایک لکیری ڈیٹا ڈھانچہ ہے جو غیر آدم قسم کے زمرے میں آتا ہے۔ یہ اسی طرح کے عناصر کا ایک مجموعہ ہے۔ نئے عناصر کا اضافہ ایک سرے پر ہوتا ہے جسے ریئر اینڈ کہا جاتا ہے۔ اسی طرح ، موجودہ عناصر کو حذف کرنا دوسرے سرے پر ہوتا ہے جسے فرنٹ اینڈ کہا جاتا ہے ، اور یہ منطقی طور پر پہلے نمبر پر ہے۔

مثال

اپنی روز مرہ کی زندگی میں ہم بہت سارے حالات کا سامنا کرتے ہیں جہاں ہم مطلوبہ خدمت کا انتظار کرنے نکل جاتے ہیں ، وہاں اپنی خدمت کے ل for اپنی باری کے لئے ویٹنگ لائن میں جانا پڑتا ہے۔ اس انتظار کی قطار کو قطار کی طرح سمجھا جاسکتا ہے۔

  1. اسٹیک LIFO میکانزم کو دوسری طرف کرتا ہے قطار عناصر کو شامل کرنے اور اسے دور کرنے کے لئے FIFO میکانزم کی پیروی کرتی ہے۔
  2. اسٹیک میں ، ایک ہی سرے کو عناصر کو داخل کرنے اور حذف کرنے کے لئے استعمال کیا جاتا ہے۔ اس کے برعکس ، قطار میں عناصر کو داخل کرنے اور حذف کرنے کے لئے دو مختلف سرے استعمال کیے جاتے ہیں۔
  3. چونکہ اسٹیک کا صرف ایک کھلا اختتام ہے جو اسٹیک کے اوپری حصے کا حوالہ دینے کے لئے صرف ایک پوائنٹر کے استعمال کی وجہ ہے۔ لیکن قطار قطار کے سامنے اور قطار کے آخر تک حوالہ دینے کے لئے دو پوائنٹر استعمال کرتی ہے۔
  4. اسٹیک دو آپریشن کرتا ہے جنہیں پش اور پاپ کہا جاتا ہے جبکہ قطار میں اس کو اینکیو اور ڈیقیو کے نام سے جانا جاتا ہے۔
  5. اسٹیک پر عمل درآمد آسان ہے جبکہ قطار کا نفاذ مشکل ہے۔
  6. قطار میں سرکلر قطار ، ترجیحی قطار ، دگنا ختم ہونے والی قطار وغیرہ کی مختلف حالتیں ہوتی ہیں۔ اس کے برعکس ، اسٹیک میں مختلف حالتیں نہیں ہوتی ہیں۔

اسٹیک عمل

اسٹیک کا اطلاق دو طریقوں سے کیا جاسکتا ہے:

  1. جامد نفاذ اسٹیک بنانے کے لئے ارے کا استعمال کرتا ہے۔ جامد نفاذ اگرچہ ایک آسان تکنیک ہے لیکن تخلیق کا لچکدار طریقہ نہیں ہے ، کیوں کہ اسٹاک کے سائز کا اعلان پروگرام ڈیزائن کے دوران کرنا پڑتا ہے ، اس کے بعد اس کا سائز مختلف نہیں ہوسکتا ہے۔ اضافی طور پر ، میموری کے استعمال کے سلسلے میں جامد نفاذ زیادہ موثر نہیں ہے۔ چونکہ آپریشن شروع کرنے سے پہلے (پروگرام ڈیزائن کے وقت) ایک صف (اعلان اسٹیک کے لئے) کا اعلان کیا جاتا ہے۔ اب اگر اسٹیک میں الگ کرنے والے عناصر کی تعداد بہت کم ہے تو جامد طور پر مختص میموری کو ضائع کردیا جائے گا۔ دوسری طرف ، اگر اس وقت ان ذخیرے میں ذخیرہ کرنے کے لئے بہت سارے عناصر موجود ہیں تو ، ہم اس کی صلاحیت کو بڑھانے کے لئے سرنی کے سائز کو تبدیل نہیں کرسکتے ہیں ، تاکہ یہ نئے عناصر کو جگہ دے سکے۔
  2. متحرک نفاذ منسلک فہرست نمائندگی بھی کہا جاتا ہے اور ڈیٹا سٹرکچر کے اسٹیک قسم کو لاگو کرنے کے لئے پوائنٹرز کا استعمال کرتا ہے۔

قطار پر عمل درآمد

قطار کو دو طریقوں سے نافذ کیا جاسکتا ہے۔

  1. جامد نفاذ: اگر کسی قطار کو صفوں کے ذریعہ نافذ کیا جاتا ہے تو ، عناصر کی صحیح تعداد کی جس کی ہم قطار میں محفوظ کرنا چاہتے ہیں اس کی یقین دہانی پہلے کرنی ہوگی ، کیونکہ صف کے سائز کا ڈیزائن کے وقت یا پروسیسنگ شروع ہونے سے پہلے ہی اعلان کرنا ہوتا ہے۔ اس صورت میں ، سرنی کا آغاز قطار کا اگلا حص .ہ بن جائے گا ، اور صف کا آخری مقام قطار کے عقبی حصے کا کام کرے گا۔ درج ذیل رشتہ قطاروں میں موجود تمام عناصر کو صفوں کے ساتھ موجود کرتے ہیں۔
    سامنے - پیچھے + 1
    اگر "پیچھے <فرنٹ" ہے تو قطار میں کوئی عنصر نہیں ہوگا یا قطار ہمیشہ خالی ہوگی۔
  2. متحرک نفاذ: پوائنٹس کا استعمال کرتے ہوئے قطار پر عمل درآمد ، بنیادی نقصان یہ ہے کہ منسلک نمائندگی میں ایک نوڈ صف کی نمائندگی میں اسی عنصر کے مقابلے میں زیادہ میموری کی جگہ استعمال کرتا ہے۔ چونکہ ہر نوڈ میں کم از کم دو فیلڈز ہیں ایک ڈیٹا فیلڈ کے لئے اور دوسرا اگلے نوڈ کا پتہ اسٹور کرنے کے ل. جبکہ منسلک نمائندگی میں صرف ڈیٹا فیلڈ موجود ہے۔ منسلک نمائندگی کو استعمال کرنے کی قابلیت اس وقت واضح ہوجاتی ہے جب اسے دوسرے عناصر کے گروپ کے بیچ میں کسی عنصر کو داخل کرنے یا حذف کرنے کی ضرورت ہوتی ہے۔

اسٹیک پر آپریشن

اسٹیک پر چلائے جانے والے بنیادی آپریشنز مندرجہ ذیل ہیں:

  1. دھکا: جب اسٹیک کے اوپری حصے میں ایک نیا عنصر شامل کیا جاتا ہے تو اسے پش آپریشن کے نام سے جانا جاتا ہے۔ اسٹیک میں کسی عنصر کو دھکیلنا عنصر کو شامل کرنے کی درخواست کرتا ہے ، کیونکہ نیا عنصر اوپری طرف داخل ہوجائے گا۔ ہر پش آپریشن کے بعد ، سب سے اوپر ایک ایک کرکے بڑھایا جاتا ہے۔ اگر سرے بھرا ہوا ہے ، اور کوئی نیا عنصر شامل نہیں کیا جاسکتا ہے ، تو اسے اسٹیک فل مکمل حالت یا اسٹیک اوورفلو کہتے ہیں۔ پش آپریشن - سی میں کام:
    غور کرنے کے اسٹیک کے طور پر اعلان کیا گیا ہے
    انٹ اسٹیک ، ٹاپ = -1؛
    باطل دھکا ()
    {
    انٹ آئٹم؛
    اگر (سب سے اوپر <4)
    {
    f ("نمبر درج کریں")؛
    اسکین ("٪ d"، & آئٹم)؛
    ٹاپ = ٹاپ + 1؛
    اسٹیک = آئٹم؛
    }
    اور
    {
    f ("اسٹیک بھرا ہوا ہے")؛
    }
    }
  2. پی او پی: جب کسی عنصر کو اسٹیک کے اوپری حصے سے حذف کردیا جاتا ہے تو اسے پی او پی آپریشن کے نام سے جانا جاتا ہے۔ ہر پاپ آپریشن کے بعد ، اسٹیک میں ایک ایک کمی واقع ہوتی ہے۔ اگر اسٹیک پر کوئی عنصر باقی نہیں بچا ہے اور پاپ انجام دے دیا گیا ہے ، تو اس کے نتیجے میں اسٹیک انڈر فلو حالت ہوگی جس کا مطلب ہے کہ آپ کا اسٹیک خالی ہے۔ پوپ آپریشن - سی میں کام کرتا ہے:
    غور کرنے کے اسٹیک کے طور پر اعلان کیا گیا ہے
    انٹ اسٹیک ، ٹاپ = -1؛
    باطل پاپ ()
    {
    انٹ آئٹم؛
    اگر (سب سے اوپر> = 4)
    {
    آئٹم = اسٹیک؛
    ٹاپ = ٹاپ - 1؛
    f ("حذف شدہ نمبر =٪ d" ہے ، آئٹم)؛
    }
    اور
    {
    f ("اسٹیک خالی ہے")؛
    }
    }

ایک قطار پر آپریشن

بنیادی کاروائیاں جو قطار پر انجام دی جاسکتی ہیں وہ ہیں:

  1. اینکیو: ایک قطار میں عنصر داخل کرنے کے لئے۔ سی میں جاری آپریشن کی تقریب:
    قطار کے طور پر اعلان کیا گیا ہے
    انٹ قطار ، فرنٹ = -1 اور پیچھے = -1؛
    باطل اضافہ ()
    {
    انٹ آئٹم؛
    اگر (پیچھے <4)
    {
    f ("نمبر درج کریں")؛
    اسکین ("٪ d"، & آئٹم)؛
    اگر (سامنے == -1)
    {
    سامنے = 0؛
    پیچھے = 0؛
    }
    اور
    {
    پیچھے = پیچھے + 1؛
    }
    قطار = آئٹم؛
    }
    اور
    {
    f ("قطار بھری ہوئی ہے")؛
    }
    }
  2. Dequeue: قطار سے کسی عنصر کو حذف کرنا۔ سی میں جاری کاروائی تقریب:
    قطار کے طور پر اعلان کیا گیا ہے
    انٹ قطار ، فرنٹ = -1 اور پیچھے = -1؛
    باطل حذف کریں ()
    {
    انٹ آئٹم؛
    اگر (سامنے! = -1)
    {
    آئٹم = قطار؛
    اگر (سامنے == پیچھے)
    {
    سامنے = -1؛
    پیچھے = -1؛
    }
    اور
    {
    سامنے = سامنے + 1؛
    f ("حذف شدہ نمبر =٪ d" ہے ، آئٹم)؛
    }
    }
    اور
    {
    f ("قطار خالی ہے")؛
    }
    }

اسٹیک کی درخواستیں

  • ایک مرتب میں تجزیہ کرنا۔
  • جاوا ورچوئل مشین۔
  • ورڈ پروسیسر میں کالعدم کریں۔
  • ایک ویب براؤزر میں بیک بٹن۔
  • ایرس کے لئے پوسٹ اسکرپٹ کی زبان۔
  • ایک مرتب میں فنکشن کال پر عمل درآمد۔

قطار کی درخواستیں

  • ڈیٹا بفرز
  • غیر متشدد ڈیٹا کی منتقلی (فائل IO ، پائپ ، ساکٹ)
  • مشترکہ وسائل (ار ، پروسیسر) پر درخواستیں الاٹ کرنا۔
  • ٹریفک تجزیہ۔
  • ایک سپر مارکیٹ میں آنے والے کیشیئروں کی تعداد کا تعین کریں۔

نتیجہ اخذ کرنا

اسٹیک اور قطار لکیری ڈیٹا ڈھانچے کچھ طریقوں سے مختلف ہیں جیسے کام کرنے والے طریقہ کار ، ڈھانچے ، عمل درآمد ، مختلف حالتوں میں لیکن دونوں کو فہرست میں موجود عناصر کو ذخیرہ کرنے اور عناصر کو شامل کرنے اور حذف کرنے جیسے فہرست میں کارروائیوں کے لئے استعمال کیا جاتا ہے۔ اگرچہ سادہ قطار کی کچھ حدود ہیں جو دوسری اقسام کی قطار کو استعمال کرکے دوبارہ تشکیل دی گئی ہیں۔