اروررررررر نداد ولی اجرا نکرد نمیدونم چرا
اینم بهش اضاف کردم #include <conio.h> ولی باز اجرا نداد
قبلا از سطر ;return 0 یک سطر ;()getch اضافه کنید تا بعد از نشون دادن خروجی مکث کنه :
کد:
#include <stdio.h>
#include <conio.h>
.
.
.
getch();
return 0;
}
بازم سوال دارم البته معذرت بابت این سوال های مکرررررررررررم
جزوه ای در مورد ساختمان داده ها در ارتباط با زبان برنامه نویسی c نیست
کتاب ساختمان داده ها در ++C با ترجمه ابراهیم زاده قلزم رو مطالعه فرمایید، چندان فرقی با C نداره.
میشه یکم بیشتر توضیح بدید در موردشششششش
یک آرایه با n خانه داریم به نام queue، از خانه اندیس 0 الی خانه اندیس n - 1 که قراره صف در اون خانه ها
پیاده سازی بشه. دقت کنید که خانه ای با اندیس n نداریم، اندیس ها از 0 الی n - 1 هستند.
rear ته صف رو نشون میده، یعنی اندیس خونه ای رو مشخص می کنه که آخرین عنصر در صف قرار گرفته.
فرضا اگه 6 باشه، یعنی آخرین عنصر صف در خانه 6 آرایه قرار گرفته.
موقع شروع برنامه rear برابر 1- است، چون صف خالیه.
front جلوی صف رو نشون میده، یعنی اندیس خونه ای رو مشخص می کنه که اولین عنصر در صف قرار گرفته.
فرضا اگه 2 باشه، یعنی اولین عنصر صف در خانه 2 آرایه قرار گرفته.
موقع شروع برنامه front برابر 1- است، چون صف خالیه.
اضافه شدن یک عنصر به ته صف (addqueue)
هر بار که عنصری به ته صف اضافه میشه، اول بررسی می کنیم که rear از محدوده n - 1 کوچکتره باشه، چون
اگه برابر n - 1 باشه یعنی آخرین اندیس آرایه هم پر شده، پس آرایه تا خرخره پره و جا برای ذخیره کردن
عنصر دیگه ای نیست. اگر هنوز در آرایه جا بود، rear یک واحد افزایش پیدا می کنه و عنصر جدید در خانه ای
که اندیس اش rear است ذخیره میشه. اگه قبل از این صف خالی بوده باشه، rear از 1- به 0 افزایش پیدا کرده،
اما front همچنان برابر 1- است. چون الان دیگه صف خالی نیست، باید از 1- به 0 تغییرش بدهیم تا به شروع
صف اشاره کنه.
حذف شدن یک عنصر از جلوی صف (delqueue)
هر بار که قراره عنصری از جلوی صف حذف بشه، اول بررسی می کنیم که صف خالی نباشه، یعنی front برابر
1- نباشه. اگر صف خالی نبود front اندیس عنصر مورد نظر رو که سر صف قرار داره نشون میده. بعد از اینکه
عنصر رو بدست آوردیم باید front یک واحد افزایش پیدا کنه تا به عنصر بعدی اشاره کنه که الان سر صف قرار داره.
بعد از افزایش یافتن front نشانه خالی شدن صف اینه که front و rear بهم برسند یعنی با هم برابر شوند.
در این حالت خاص که الان صف خالی شده باید مقدار front و rear رو به 1- تغییر دهیم تا مثل وضعیت اولیه باشند.
اگر اینکار رو انجام ندهیم، صف خالی است اما برای استفاده بعدی از همه ظرفیت آرایه استفاده نخواهد شد.
یعنی الان که صف خالی است مقدار rear بزرگتر از 1- است، مثلا 7 است و اگر عنصر جدیدی به صف خالی
اضافه کنیم در خانه 8 قرار می گیرد و خانه های 0 الی 7 بلا استفاده رها می شود. در نتیجه قبل از اینکه n عنصر
در آرایه قرار بگیرد مقدار rear به n - 1 می رسد و در ظاهر صف پر می شود.