صف اور لنکڈ لسٹ میں فرق

مصنف: Laura McKinney
تخلیق کی تاریخ: 3 اپریل 2021
تازہ کاری کی تاریخ: 24 اپریل 2024
Anonim
صف بمقابلہ لنکڈ لسٹ | صفوں اور لنکڈ لسٹ کے درمیان فرق | ڈیٹا سٹرکچرز | سادہ سیکھنا
ویڈیو: صف بمقابلہ لنکڈ لسٹ | صفوں اور لنکڈ لسٹ کے درمیان فرق | ڈیٹا سٹرکچرز | سادہ سیکھنا

مواد


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

بنیادی طور پر ، ایک سرنی اسی طرح کے ڈیٹا اشیاء کا ایک مجموعہ ہے جو مشترکہ عنوان یا متغیر نام کے تحت ترتیب وار میموری والے مقامات میں محفوظ ہوتا ہے۔

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

ایک سرنی اور منسلک فہرست کے درمیان ایک اور اہم فرق یہ ہے کہ سرے کا ایک مقررہ سائز ہوتا ہے اور اس سے قبل اس کا اعلان کرنا ضروری ہوتا ہے ، لیکن عملدرآمد کے دوران لنکڈ لسٹ سائز اور وسیع اور معاہدہ تک محدود نہیں ہے۔


  1. موازنہ چارٹ
  2. تعریف
  3. کلیدی اختلافات
  4. نتیجہ اخذ کرنا

موازنہ چارٹ

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


صف کی تعریف

ایک سرنی ایک خاص عناصر یا اعداد و شمار کی اشیاء کی ایک مقررہ تعداد کے ایک سیٹ کے طور پر بیان کی گئی ہے۔ اس کا مطلب ہے کہ ایک صف میں صرف ایک قسم کا ڈیٹا ہوسکتا ہے ، یا تو تمام اعداد صحیحہ ، تمام تیرتے ہوئے نمبر ، یا تمام حرف۔ کسی صف کا اعلان مندرجہ ذیل ہے۔
int a؛
جہاں int اعداد و شمار کی قسم یا عناصر کی صفوں کی دکانوں کو ٹائپ کرتا ہے۔ "اے" ایک صف کا نام ہے ، اور مربع خط وحدت کے اندر مخصوص تعداد میں عناصر کی تعداد ہے جو ایک صف کو جمع کر سکتی ہے ، اسے ارے کا سائز یا لمبائی بھی کہا جاتا ہے۔

آئیے کچھ تصورات کو دیکھیں جن کے بارے میں یادوں کو یاد کیا جائے:

  • سرنی کے انفرادی عناصر تک صف کے نام کی وضاحت کرکے ، مربع خطوطی کے اندر اشاریہ یا سبسکرپٹ (سرنی میں عنصر کے مقام کا تعین کرنے) کے ذریعہ رسائی حاصل کی جاسکتی ہے۔ مثال کے طور پر ، صف کے 5 عنصر کو بازیافت کرنے کے ل we ، ہمیں بیان a لکھنا ہوگا۔
  • کسی بھی صورت میں صف کے عناصر کو لگاتار میموری والے مقام پر محفوظ کیا جائے گا۔
  • سرنی کا پہلا عنصر انڈیکس صفر ہے۔ اس کا مطلب ہے کہ پہلا اور آخری عنصر بالترتیب a اور بالترتیب واضح ہوگا۔
  • عناصر کی تعداد جو ایک صف میں محفوظ ہوسکتی ہے ، یعنی ، کسی سرنی کا سائز یا اس کی لمبائی مندرجہ ذیل مساوات کے ذریعہ دی گئی ہے۔
    (اوپری باؤنڈ - لوئر باؤنڈ) + 1
    مذکورہ صفوں کے ل For ، یہ (9-0) + 1 = 10 ہوگا۔ جہاں 0 صف کی نچلی حد ہے ، اور 9 سرنی کی اوپری حد ہے۔
  • صفوں کو لوپ کے ذریعے پڑھا یا لکھا جاسکتا ہے۔ اگر ہم ایک جہتی صف کو پڑھتے ہیں تو ، اس کو پڑھنے کے ل one ایک لوپ کی ضرورت ہوتی ہے اور دوسرے سرے کو لکھنے کے لئے (مثال):
    a. ایک صف کو پڑھنے کے لئے
    (i = 0؛ i <= 9؛ i ++) کیلئے
    {اسکینف ("٪ d" ، اور ایک)؛ }
    b. ایک صف لکھنے کے لئے
    (i = 0؛ i <= 9؛ i ++) کیلئے
    {f ("٪ d"، a)؛ }
  • 2-D صف کی صورت میں ، اس کو دو لوپ کی ضرورت ہوگی اور اسی طرح ن جہتی سرنی کو بھی n لوپس کی ضرورت ہوگی۔

ارایوں پر کئے گئے آپریشنز یہ ہیں:

  1. صف کی تخلیق
  2. ایک صف کا سفر کرنا
  3. نئے عناصر کا اضافے
  4. مطلوبہ عناصر کا خاتمہ۔
  5. کسی عنصر میں ترمیم
  6. صفوں کو ضم کرنا

مثال

مندرجہ ذیل پروگرام میں صف کے پڑھنے اور تحریر کی مثال دی گئی ہے۔

# شامل کریں
# شامل کریں
باطل اہم ()
{
int a، i؛
f ("سرنی درج کریں")؛
(i = 0؛ i <= 9؛ i ++) کیلئے
{
اسکینف ("٪ d" ، اور ایک)؛
}
f ("سرنی درج کریں")؛
(i = 0؛ i <= 9؛ i ++) کیلئے
{
f ("٪ d n"، a)؛
}
گیچ ()؛
}

لنکڈ لسٹ کی تعریف

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

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

منسلک فہرستوں کی اقسام واحد سے منسلک فہرست ، دوگلی سے منسلک فہرست ، سرکلر لنکڈ لسٹ ، سرکلر ڈبل لنکڈ لسٹ ہیں۔

لنکڈ لسٹ پر کئے گئے آپریشنز یہ ہیں:

  1. تخلیق
  2. سیر کرنا
  3. اندراج
  4. حذف کرنا
  5. تلاش کر رہا ہے
  6. مقابلہ کرنا
  7. ڈسپلے کریں

مثال

مندرجہ ذیل ٹکڑا ایک منسلک فہرست کی تشکیل کی وضاحت کرتا ہے:

سٹرک نوڈ
{
انٹ نمبر
اسٹکٹ نوڈ * اگلا؛
}
شروع = NULL؛
باطل تخلیق ()
{
ٹائپڈف سٹرک نوڈ NODE؛
NODE * p، * q؛
چار انتخاب؛
پہلا = NULL؛
کیا
{
p = (NODE *) malloc (سائز (NODE))؛
f ("ڈیٹا آئٹم درج کریں n")؛
اسکینف ("٪ d"، & p -> نمبر)؛
اگر (p == NULL)
{
q = start؛
جبکہ (q -> اگلا! = NULL)
{q = q -> اگلا
}
p -> اگلا = q -> اگلا؛
q -> = p؛
}
اور
{
p -> اگلا = شروع کریں؛
شروع = p؛
}
f ("کیا آپ جاری رکھنا چاہتے ہیں (y یا n ٹائپ کریں؟ n")؛
اسکینف ("٪ c" ، اور انتخاب)؛
}
جبکہ ((پسند == y) || (انتخاب == Y))؛
}

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

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

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