PDA

View Full Version : مشکل در ساختمان داده!



x.coder
شنبه 21 فروردین 1389, 16:16 عصر
با سلام و عرض ادب خدمت دوستان عزیز
راستیاتش بنده دانشجوی ترم 3 نرم افزار هستم
این ترم برنامه سازی پیشرفته برداشتم ادامه ی C++‎‎‎
استادمون یه سوالی ازمون کرده که اگه جواب ندیم یعنی اگه بلد نباشیم حذفمون میکنه :افسرده::افسرده: پس لطفا کمکم کنید :گریه::گریه:
من خودم ساختمان داده نخودم اما گفته باید برید نمیدونم صف و توضیح بدید و پیاده سازی
کنید من اصلا نمیفهمم این صف چیه
میشه یه توضیحی بدید و همچنین سورس پیاده سازیش و :افسرده::افسرده:

دارم از استرس میمیرما
پس هر چه زودتر به کمکم بشتابید :گریه::گریه:

چمن همه ی بچه هام هستیم فقط دمتون گرم دیگه توپول توضیح بدین که دو قرونیم بیفته :افسرده::افسرده: :لبخند::لبخند: :خجالت: :قلب::قلب:

arashpd
شنبه 21 فروردین 1389, 16:34 عصر
من دانشجوی برنامه نویسی نیستم، ولی یه چیز هایی در این مورد میدونم ،
کلا صف یک آرایه است که روی این آرایه می توان دو تابع رو به صورت کلی پیاده سازی است یکی deque و دیگری enque البته میتونی از queu.h هم استفاده کنی که به جای این دو تابع ،تابع pop و push رو استفاده کنی که پوش یعنی یک نفر به آخر صف اضافه کن و پاپ یعنی نفر اول را از صف خرج کن.

#include<queue>
queue<int> list;
list.pop(متغیری که می خوای اول صف رو ت اون بریزه);
list.push(متغیری که میخوای تو صف وارد شه);

baran_mehr
شنبه 21 فروردین 1389, 17:02 عصر
سلام
صف به مجموعه ای از عناصر گفته میشه که در اون اولین ورودی اولین خروجی است(FIFO) (Firest in firest out)مثل صف نانوایی که هرکی زودتر میاد زودتر نونشو میگیره و میره پی کارو زندگیش
برای پیاده سازی صف باید اول فکری به حال فضایی برای ذخیره سازی داده کنیم که آرایه میتونه باشه یا ...
بعد هم باید توابعی برای ورود و خروج عناصر از صف بنویسیم که معمولا تابع Add برای ورود به صف و Delete برای خارج کردن از صف هست
درون تابع add باید چک کنیم که صف پر نباشه با جای خالی برای ریختن مقدار داشته باشه
در تابع delete هم باید چک کنیم که صف خالی نباشه
موفق باشی.
برای کدهاش هم میتونی تو گوگل جستجو کنی که تا دلت هم بخواد نتیجه برات میاره

masoud.t123
شنبه 21 فروردین 1389, 17:57 عصر
صف لیست مرتبی است كه عناصر در انتهای آن (Rear) اضافه و از ابتدای آن(Front) حذف می شوند. به عبارت ديگر طول صف از انتهای آن افزایش و از ابتدای آن كاهش می یابد.
اولين عنصری که وارد صف می شود اولين عنصری است که از صف خارج می شود. بنابراين عناصر به همان ترتيبی که به صف اضافه می شوند از آن حذف می شوند. به همين دليل به صف لیست FIFO (first in, first out) نیز گفته می‌شود.
پیاده‌سازی صف با آرایه

صف را می توان توسط يک آرايه يک بعدی پیاده سازی کرد. به دو متغیر Front و Rear برای مشخص كردن ابتدا و انتهای صف نياز است.
هر گاه عنصری به صف اضافه شود Rear یك گام به جلو حركت می كند و هر گاه كه عنصری را از صف حذف می شود Front یك واحد افزايش می يابد.
چون اندازه آرايه از قبل تعريف می شود، هنگام اضافه کردن عنصری به صف ابتدا باید اطمينان حاصل کرد که هنوز ظرفیت پذیرش داده را دارد. اگر Rear برابر با ظرفیت كل آرایه شود صف پر درنظر گرفته می شود.
اگر ابتدا و انتهای صف برابر بودند (Front=Rear) یعنی صف خالی است. عمل حذف روی صف خالی انجام نمی گيرد.
طول صف يا تعداد عناصر موجود در صف برابر با Rear-Front است.

javanerd
شنبه 21 فروردین 1389, 19:23 عصر
کلا صف یک آرایه است

[/source]
دوست عزیز، صف کجا آرایه است؟ چرا جوان مردم رو داری از راه به در می‌کنی؟

javanerd
شنبه 21 فروردین 1389, 19:26 عصر
صف لیست مرتبی است كه عناصر در انتهای آن (Rear) اضافه و از ابتدای آن(Front) حذف می شوند.
دوست عزیز، شما هم که دارید جوان مردم رو از راه به در می‌کنید. لزومی نداره که اضای صف مرتب شده باشند.

javanerd
شنبه 21 فروردین 1389, 19:27 عصر
صف لیست مرتبی است كه عناصر در انتهای آن (Rear) اضافه و از ابتدای آن(Front) حذف می شوند.
دوست عزیز، شما هم که دارید جوان مردم رو از راه به در می‌کنید. لزومی نداره که اعضای صف مرتب شده باشند.

x.xoma
شنبه 21 فروردین 1389, 22:05 عصر
دوست عزیز، شما هم که دارید جوان مردم رو از راه به در می‌کنید. لزومی نداره که اعضای صف مرتب شده باشند.


دوست بسیار عزیز و محترم و با سواد ؛ به جای اینکه از نوشته های دیگران ایراد بگیری و اظهار نظر های خودتو در باره اونا بنویسی ؛ یه لطفی به همه ماها که تمام دانسته هامون اشتباهه بکن و خودت یه توضیح ؛ کامل و درست و دقیق در این باره بده تا ما هم مثل شما بلد بشین.

MIDOSE
شنبه 21 فروردین 1389, 22:49 عصر
قبل از طرح سوال حتمن جستجو کنید. پاسخ (http://barnamenevis.org/forum/showpost.php?p=567287&postcount=12)

همچنین سورس پیاده سازیش
انجام تمرین های دانشجویی برخلاف قوانین سایت است؛

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

baran_mehr
شنبه 21 فروردین 1389, 22:49 عصر
سلام مجدد
با فرض اینکه عناصر صف اعداد صحیح هستند میخوایم تابع add رو پیاده سازی کنیم

a:array[1..n] of integer;
front,rear:integer;
proceder add(item:integer);
begin
if rear<=n then
begin
a[rear]:=item;
rear:=rear+1;
end
else
write('array a is full');
end;