موضوع مقاله: گردآورد (نوع داده انتزاعی) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # گردآورد (نوع داده انتزاعی) | مقدمه: در علوم رایانه، یک گردآورد یا گنجانه یک گروه‌بندی از عناصر داده با سایز متغیر (ممکن است سایز صفر باشد) است، که این عناصر برای مساله‌ای که قصد حل کردن آن را داریم، دارای اهمیت مشترک می‌باشند، و لازم است تا به یک روش نظارت‌شده روی آن‌ها عملیاتی به صورت دست‌جمعی انجام شود. | ## بخش 1: گردآورد (نوع داده انتزاعی) | به‌طور کلی داده‌ها از یک نوع هستند و یا در پشتیبانی از وراثت زبان‌ها از اجداد مشترک از یک نوع نشات گرفته‌اند یک مجموعه یک مفهوم قابل استفاده برای انواع داده انتزاعی و نه تجویز خاص پیاده‌سازی به عنوان یک بتن ساختمان داده, هر چند اغلب یک انتخاب متعارف وجود دارد . نمونه‌هایی از مجموعه‌های شامل لیست ها, مجموعه‌ها , چند دسته ها , درخت ها و گراف ها است . آرایه (یا جدول) با اندازه ثابت معمولاً به عنوان یک مجموعه در نظر گرفته نمی‌شود به دلیل نگهداری مقدار ثابت از داده‌ها اگر چه آن‌ها معمولاً نقش مهمی در پیاده‌سازی مجموعه ایفا می‌کنند . مجموعه های خطی هم چنین ببینید : فهرست ساختار داده بسیاری از مجموعه‌ها یک ترتیب خطی خاص را تعریف می‌کنند.و بعضی داده ساختارها نیازی به پیاده‌سازی خطی نیست ; برای مثال یک صف اولویت که اغلب پیاده‌سازی آن با پشته است که یک نوع درخت است. مجموعه‌های مهم خطی عبارتند از: لیست پشته صف صف اولویت دار صف دوطرفه صف دو طرفه اولویت دار فهرست مقاله اصلی :لیست (نوع داده انتزاعی) یک لیست یا دنباله، یک نوع داده انتزاعی است که نمایانگر تعداد شمارش پذیری از مقادیر مرتب است، بطوریکه یک مقدار ممکن است بیش از یکبار مشاهده شود. نمونه‌هایی از عملیات در لیست‌ها جستجو برای یک داده در لیست و تعیین محل آن (اگر آن وجود دارد) , حذف یک آیتم داده از لیست، اضافه کردن یک آیتم داده به لیست در یک مکان خاص و غیره است .اگر عملیات اصلی در لیست، اضافه کردن اقلام داده در یک انتها و حذف موارد داده در انتهای دیگر باشد یک صف یا FIFO به وجود می‌آید پشته مقاله اصلی :پشته پشته یک ساختار داده LIFO (آخرین ورودی از همه زودتر خارج می‌شود : Last In First Out) با دو عملیات اصلی است: (push) که یک عنصر به بالای مجموعه اضافه می‌کند و (pop) عنصر بالای مجموعه را حذف می‌کند. صف مقاله اصلی : صف صف لیستی است که عمل افزودن داده‌ها درون آن از انتهای لیست و عمل حذف داده‌ها از ابتدای لیست انجام می‌شود. بنابراین اولین داده ورودی اولین داده خروجی نیز خواهد بود، این به این معنی است که شیوهٔ عمل‌کرد صف براساس سیاست FIFO است. | ## بخش 2: گردآورد (نوع داده انتزاعی) | صف اولویت مقاله اصلی :صف اولویت در صف اولویت‌دار برای هر داده اولویتی - نه لزوماً منحصربه‌فرد - مشخص می‌شود. صف اولویت را می‌توان به اورژانس یک بیمارستان تشبیه کرد که هر بیمار با شدت بیماری بیشتر اولویت بیشتری برای رسیدگی دارد. صف دو طرفه مقاله اصلی :صف دوطرفه یک صف را تعمیم می‌بخشد به طوری که بتوان هم از ابتدای صف و هم از انتهای صف حذف یا اضافه کرد و دسترسی داشت. این ساختمان داده هم مانند صف از عملکرد بر اساس سیاست FIFO (خروج به ترتیب ورود) و هم مانند پشته از عملکرد بر اساس سیاست LIFO (خروج به ترتیب عکس ورود) پشتیبانی می‌کند صف دو طرفه اولویت دار مجموعه های انجمنی دسته ها چند دسته ها آرایه های انجمنی. دسته در یک دسته یا (set)، ترتیب آیتم‌های داده مهم نیست (یا نامشخص است) اما اقلام داده تکراری مجاز نیستند. نمونه‌هایی از عملیات در دسته‌ها افزودن و حذف آیتم‌های داده و جستجو برای اطلاعات در این دسته است. در بقیه زبان‌ها دسته می‌تواند توسط یک جدول هش با ارزش ساختگی پیاده‌سازی شود ; تنها کلید برای نمایندگی از دسته استفاده می‌شود. چند دسته ای در یک چند دسته ای یا multiset همانند یک دسته ترتیب داده‌ها مهم نیست اما در این مورد تکرار داده‌ها موارد مجاز است. | ## بخش 3: گردآورد (نوع داده انتزاعی) | آرایه های انجمنی در علوم رایانه، آرایهٔ ربطی، نگاشت، یا دیکشنری به نوع داده انتزاعی اطلاق می‌شود که از کلکسیونی از جفت‌های (کلید، مقدار) تشکیل شده‌است، بطوری‌که هر کلید ممکن حداکثر یکبار در کلکسیون ظاهر می‌شود. دلیل این نامگذاری این است که در این نوع آرایه هر مقدار به صراحت به یک کلید «ربط» داده شده‌است (در انگلیسی: Associated) در حالیکه در نوع عادی آرایه، ربط دهی به صورت ضمنی انجام می‌شود؛ یعنی هر مقدار به‌طور ضمنی مرتبط با یک اندیس (در انگلیسی: Index) است و نیازی به ذخیرهٔ کلید (اندیس) وجود ندارد. گراف مقاله اصلی : گراف یک داده ساختار گراف اساساً از یک مجموعهٔ متناهیِ زوج‌های مرتب موسوم به یال شامل واحدهایی به نام رأس یا گره تشکیل می‌شود؛ همان‌طور که در ریاضیات به ازای یک یال (u,v) می‌گوییم که u به v می‌رود یا u و v مجاورند. همچنین می‌توان به هر یال یک گراف یک عدد نسبت داد که در این صورت گراف وزن دار به وجود می آید . نمونه‌هایی از عملیات بر روی نمودار‌ها، عبور و جستجو هستند که ارتباطات اقلام داده را دنبال می‌کنند که به دنبال برخی از ویژگی‌های خاص هستند. درخت درخت ساختار دادهٔ پر استفاده است که شبیه به یک ساختار درختی با مجموعه‌ای از گره‌های متصل به هم است. | ## جمع‌بندی | پیاده سازی در یک زبان بعضی از مجموعه‌ها ممکن است انواع داده‌های اولیه باشند مانند لیست در حالی که در مجموعه‌های پیچیده تر انواع داده کامپوزیت در کتابخانه‌ها پیاده‌سازی شده‌اند .