PDA

View Full Version : مشکلات در مفهوم صف



dada_vahid
جمعه 06 خرداد 1390, 21:29 عصر
با سلام من داشتم روی ساختمان داده c++ کار می کردم بعضی لز مطالب رو متوجه نمی شم ممنون مشم کمکم کنید
1- این قطه چیه و چکار میکنه #define max 4
2- این قطه کد چه کار می کنه enum bool {false=0,true=1};
و در اخر این تیکه کد در کل چه کار می کنه

typedef struct{
int items[max];
int front,rear;
}queue;
queue q;






#define max 4
#include<iostream.h>
enum bool {false=0,true=1};
typedef struct{
int items[max];
int front,rear;
}queue;
queue q;
bool empty()
{
if(q.front==q.rear)
return true;
else
return false;
}
bool full()
{
if((q.rear+1)%max==q.front)
return true;
else
return false;
}



void addqueue(int x)
{
if(full())
cout<<"Queue is full";
else
{
q.rear=(q.rear+1)%max;
q.items[q.rear]=x;
}
}
int delqueue()
{
int y;
if(empty())
{
cout<<"Queue is empty";
return NULL;
}
else
{
q.front=(q.front+1)%max;
y=q.items[q.front];
return y;
}
}
void main()
{
int x;
q.front=0;
q.rear=0;
addqueue(2);
addqueue(4);
addqueue(1);
x=delqueue();
addqueue(8);
addqueue(5);
cout<<endl;
cout<<x;
}

Arcsinos
جمعه 06 خرداد 1390, 23:03 عصر
سوال 1- متغیر Max رو تعریف میکنه و عدد 4 رو میذاره توش . این دستور یه دستور پیش پردازنده است و شما نمیتونید در طول مقدار max رو تغییر بدید .

سوال 2- یه متغیر شمارشی به نام bool ساخته که دو مقدار true و false داره . البته اگه از visual استفاده میکنید نیازی به تعریف این خط نیست . مثلا شما میتونید یه متغیر شمارشی به نام فصل بسازید و توی اون چهار نام { بهار ، تابستان ، پاییز ، زمستان } رو قرار بدید . حالا اگه بیایید یه متغیر از نوع فصل درست کنید میتونید نام بهار رو توی اون بریزید و برنامه ازتون ایراد نمیگیره . و بهار رو به عنوان یک مقدار از نوع فصل میشناسه .

سوال 3- یه ساختار به نام queue میسازه و بعد در خط آخر یه متغیر از نوع queue و به نام q میسازه . حالا شما میتونید مثلا برای دستیابی به front صف q بنویسید q.front .

اگه نا مفهوم بود بگید بیشتر توضیح بدیم .

موفق و پیروز باشید

dada_vahid
شنبه 07 خرداد 1390, 00:18 صبح
دوست عزیز تشکر
1- این کد یک اسمه و میتونه هر چیز دیگه هم باشه درسته ؟؟؟؟ typedef
2- چرا تکه کد queue; queue q; رو پشت class Stracht تعریف کرده
3-بعد از این که ساختار به نام queue درست کردچطو می تونه از class Strackt استفاده کنه

Arcsinos
شنبه 07 خرداد 1390, 01:01 صبح
1- نه کلمه ی typedef ذخیره شده است .

2-میتونستی از کلمه ی typedef استفاده نکنی عوضش کلمه ی queue رو بعد از struct بیاری که بشه : struct queue {}

3- یه مقدار مطالعه کنی بد نیست .:چشمک:

موفق باشی

dada_vahid
شنبه 07 خرداد 1390, 10:33 صبح
تشکر شما
منابع معرفی کن حتما

Arcsinos
شنبه 07 خرداد 1390, 11:42 صبح
سلام
شما هر کتابی که روش نوشته آموزش مقدماتی سی یا سی پی پی رو که بخونید همه ی اون چیزها رو نوشته . کار شما مثل این میمونه که انتگرال یه گانه بلد نباشید بعد یه انتگرال سه گانه با حلش رو بذارید جلوتون و هر جاکه مشکل داشتید بیایید سوال بپرسید که روش درستی نیست . کلمات define یا typedef یا struct تقریبا با کلمات int و char برابری میکنن . یعنی شما اگه int و char رو خونده باشید اون سه تا هم کنار همونها یاد میگیرید ولی مثل اینکه شما بدون هیچ مطالعه ای میخوایید برنامه نویس بشید .

اگه جسارتی شد ببخشید منظور بدی نداشتم .

برای شروع اگه میخوایید c یاد بگیرید کتاب c آقای قمی کتاب خوبی هست . اگه ++C میخوایید کار کنید کتاب deitel یا کتاب قمی کتابهای خوبی هستند .

موفق و پیروز باشید .

dada_vahid
شنبه 07 خرداد 1390, 11:44 صبح
تشکر دوست عزیز