مسیرها
/
Nim
Nim
/
تمرین‌ها
/
لیست پیوندی
لیست پیوندی

لیست پیوندی

متوسط

دستورالعمل‌ها

یک لیست پیوندی دوطرفه پیاده‌سازی کنید.

لیست پیوندی، مانند آرایه، یک ساختار داده‌ی خطی ساده است. چندین نوع داده‌ی رایج را می‌توان با لیست‌های پیوندی پیاده‌سازی کرد، مانند صف‌ها، پشته‌ها و آرایه‌های انجمنی.

لیست پیوندی مجموعه‌ای از عناصر داده است که به آن‌ها «گره» می‌گویند. در یک «لیست پیوندی یک‌طرفه»، هر گره یک مقدار و پیوندی به گره‌ی بعدی نگه می‌دارد. در یک «لیست پیوندی دوطرفه»، هر گره پیوندی به گره‌ی قبلی هم نگه می‌دارد.

شما یک پیاده‌سازی از لیست پیوندی دوطرفه خواهید نوشت. یک Node پیاده‌سازی کنید که یک مقدار و اشاره‌گرهایی به گره‌های بعدی و قبلی نگه دارد. سپس یک List پیاده‌سازی کنید که ارجاع‌هایی به گره‌ی اول و آخر نگه می‌دارد و یک رابط شبیه به آرایه برای افزودن و حذف عنصرها ارائه می‌دهد:

  • push (مقدار را در انتها درج می‌کند)؛
  • pop (مقدار را از انتها حذف می‌کند)؛
  • shift (مقدار را از ابتدا حذف می‌کند).
  • unshift (مقدار را در ابتدا درج می‌کند)؛

برای اینکه پیاده‌سازی‌تان ساده بماند، تست‌ها شرایط خطا را پوشش نمی‌دهند. به‌طور مشخص: pop یا shift هرگز روی یک لیست خالی فراخوانی نمی‌شوند.

درباره‌ی لیست‌های پیوندی در ویکی‌پدیا بیشتر بخوانید.


منبع

موضوعی کلاسیک در علوم کامپیوتر
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Nim Exercism

آماده‌اید لیست پیوندی را شروع کنید؟

در Exercism ثبت‌نام کنید تا Nim را همراه با 70 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.