رفتن به مطلب
مشاهده در اپلیکیشن

راهی بهتر برای مشاهده سایت بیشتر بدانید

وبلاگ شخصی سینا جلالوندی

یک برنامه تمام‌صفحه روی صفحه اصلی شما با دریافت نوتفیکیشن، نشان‌ها و امکانات بیشتر

برای نصب روی iOS و iPadOS
  1. Tap the Share icon in Safari
  2. منو را اسکرول کنید و روی Add to Home screen بزنید
  3. روی Add در گوشه‌ی بالا-راست بزنید
برای نصب روی اندروید
  1. روی منوی سه‌نقطه (⋮) در گوشه‌ی بالا-راست مرورگر بزنید.
  2. روی Add to Home screen یا Install app بزنید.
  3. با زدن روی نصب تأیید کنید.
  • زمان مطالعه : 6 دقیقه

در دنیای برنامه‌نویسی، داده‌ها مثل آجرهای یک ساختمان هستند؛ نحوه سازماندهی و مدیریت آن‌ها می‌تواند سرعت و کارایی برنامه‌ ما را تعیین کند. یکی از پرکاربردترین روش‌های سازماندهی داده‌ها، استفاده از Linear Data Structure است. در این مقاله، قصد داریم این مفهوم یعنی ساختار داده خطی را به زبانی ساده توضیح دهیم، انواع آن را بررسی کنیم و مثال‌هایی برای درک بهتر ارائه دهیم.

Linear Data Structure چیست؟

Linear Data Structure یا ساختار داده‌ی خطی، نوعی ساختار داده است که در آن عناصر به صورت خطی و ترتیبی ذخیره می‌شوند. این یعنی هر عنصر، حداکثر یک عنصر قبل و یک عنصر بعد دارد (به جز اولین و آخرین عنصر). به زبان ساده‌تر، داده‌ها مثل یک صف یا یک زنجیره پشت سر هم قرار می‌گیرند.

مزیت این ساختار این است که دسترسی و پیمایش داده‌ها ساده و قابل پیش‌بینی است. اما نقطه ضعفش این است که افزودن یا حذف عناصر می‌تواند هزینه‌بر باشد، به‌خصوص اگر بخواهید وسط زنجیره را تغییر دهید.

انواع Linear Data Structure

1. Array (آرایه)

آرایه یکی از ساده‌ترین و شناخته‌شده‌ترین ساختارهای خطی است. در آرایه، اندازه مشخص است و داده‌ها در خانه‌های پشت سر هم حافظه ذخیره می‌شوند.

ویژگی‌ها:

  • دسترسی سریع به هر عنصر با استفاده از اندیس (Index)

  • اندازه ثابت (در بسیاری از زبان‌ها)

  • افزودن یا حذف عنصر در وسط آرایه پرهزینه است

مثال در Python:

# تعریف یک آرایه از اعداد
numbers = [10, 20, 30, 40, 50]

# دسترسی به عنصر سوم
print(numbers[2])  # خروجی: 30

# اضافه کردن عنصر به انتهای آرایه
numbers.append(60)
print(numbers)  # خروجی: [10, 20, 30, 40, 50, 60]

2. Linked List (لیست پیوندی)

لیست پیوندی از چند گره (Node) تشکیل شده است که هر گره شامل داده و اشاره‌گر به گره بعدی است. برخلاف آرایه، اندازه لیست پیوندی انعطاف‌پذیر است.

ویژگی‌ها:

  • افزودن یا حذف عنصر در هر نقطه آسان‌تر از آرایه است

  • دسترسی به عناصر به صورت ترتیبی است، نه مستقیم

  • مصرف حافظه بیشتر به خاطر ذخیره اشاره‌گرها

مثال ساده در Python:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        last = self.head
        while last.next:
            last = last.next
        last.next = new_node

    def print_list(self):
        current = self.head
        while current:
            print(current.data, end=" -> ")
            current = current.next
        print("None")

# استفاده
llist = LinkedList()
llist.append(10)
llist.append(20)
llist.append(30)
llist.print_list()  # خروجی: 10 -> 20 -> 30 -> None

3. Stack (پشته)

پشته یک ساختار داده‌ی خطی است که بر اساس قانون LIFO (Last In, First Out) عمل می‌کند؛ یعنی آخرین داده‌ای که وارد می‌شود، اولین داده‌ای است که خارج می‌شود.

ویژگی‌ها:

  • استفاده در Undo/Redo برنامه‌ها، مدیریت حافظه و الگوریتم‌های بازگشتی

  • عملیات اصلی: push (اضافه کردن) و pop (حذف کردن)

مثال ساده:

stack = []
stack.append(1)  # push
stack.append(2)
stack.append(3)

print(stack.pop())  # خروجی: 3
print(stack)        # خروجی: [1, 2]

4. Queue (صف)

صف یک ساختار داده‌ی خطی دیگر است که بر اساس قانون FIFO (First In, First Out) عمل می‌کند؛ یعنی اولین داده‌ای که وارد می‌شود، اولین داده‌ای است که خارج می‌شود.

ویژگی‌ها:

  • استفاده در مدیریت پردازش‌ها، صف پرینترها و شبکه

  • عملیات اصلی: enqueue (اضافه کردن) و dequeue (حذف کردن)

مثال ساده:

from collections import deque

queue = deque([1, 2, 3])
queue.append(4)      # enqueue
print(queue.popleft())  # dequeue -> خروجی: 1
print(queue)           # خروجی: deque([2, 3, 4])

جمع‌بندی

Linear Data Structure پایه و اساس بسیاری از الگوریتم‌ها و سیستم‌های نرم‌افزاری است. انتخاب نوع ساختار مناسب بستگی به نیاز شما دارد:

  • اگر سرعت دسترسی مهم است، آرایه انتخاب خوبی است.

  • اگر اندازه داده‌ها پویا است و تغییرات زیادی در وسط داده‌ها دارید، لیست پیوندی بهتر است.

  • اگر ترتیب ورود و خروج اهمیت دارد، Stack و Queue گزینه‌های عالی هستند.

با تسلط بر این مفاهیم، شما آماده‌اید تا داده‌ها را در برنامه‌هایتان هوشمندانه مدیریت کنید و الگوریتم‌های بهینه‌تری بنویسید.

بازخورد کاربر

دیدگاه‌های پیشنهاد شده

هیچ دیدگاهی برای نمایش وجود دارد.

دیدگاه خود را ارسال کنید

از استفاده از کلمات رکیک و خلاف قوانین و غیر مرتبط با موضوع خودداری کنید ...
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
افزودن دیدگاه...

...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.