PDA

View Full Version : آموزش: چگونگی ایجاد صف حلقوی



hadi_723
جمعه 26 آذر 1389, 12:48 عصر
سلام دوستان،خسته نباشید
من میخوام برای درس ساختمان داده ها در visual studio برنامه ی صف حلقوی بنویسم که که هم بشه بهش حذف و اضاف کرد و هم پر و خالی بودن رو نشون بده و به صورت exe بتونم اجراش کنم! اما گیج شدم نمیدونم چیکار کنم! آخه اولین بار هست که میخوام عملی انجام بدم!
دوستان اگه بتونن کمک کنن و یا آموزش ها مربوط به این کار رو قرار بدن واقعا ممنون میشم!خیلی فوریه!:خجالت:
با تشکر:قلب:

silverfox
جمعه 26 آذر 1389, 16:07 عصر
صف حلقوی چیه اگه یه سری آرایه که اولی همون آخری هست...خوب حذف که کردی هر کدوم رو ازونجا به بعد بقیه رو یه دونه میاری عقب اضافه هم خواستی بکنی از اون index به بعد همه رو می دی جلو و عضو جدید رو قرار می دی پر و خالی بودن چیه؟
اگه این نیست یه توضیح بده صف حلقوی چیه :دی

hadi_723
جمعه 26 آذر 1389, 16:30 عصر
صف حلقوی یکم شبیه اینه که شما گفتی! اما تو صف حلقوی از n خونه از n-1 خونه استفاده میشه که اون یک واسه نشون دادن پر یا خالی بودن صف هستش! لطفا دوستانی که انجام دادن پاسخ بدن! بازم ممنون:چشمک: گفتم که! من الان از جاهای دیگه که کد میزارم تو visual studio اجرا کنم همش faild میشه! چون وارد نیستم اینجا کمک خواستم!

mohammad_amini
یک شنبه 28 آذر 1389, 16:29 عصر
struct Queue{
int front;
int rear;
int a[20];
};
int isFull(Queue q){
if(q.front==q.rear)
retrun 1;
return 0;
}
int isEmpty(Queue q){
if(q.rear==0)
return 1;
return 0;
}
void insert(Queue q,int item){
if( isFull(q) ){
cout<<"\nError\n";
return;}
rear=(rear+1)%20;
q.a[rear]=item;
}
void remove(Queue q,int &item){
if( q.isEmpty() ){
cout<<"\nError\n";
return;}
front=(front+1)%20;
item=a[front];
}
void traverse(Queue q){
for(int i=q.front;i<q.rear;i++)
cout<<q.a[i]<<" ";
}
main(){
Queue q;
insert(q,2);
insert(q,4);
traverse(q);
getch();
}

hadi_723
یک شنبه 28 آذر 1389, 20:04 عصر
---------------------------
Microsoft Visual Studio
---------------------------
Unable to start program 'C:\Users\HaDi\Documents\Visual Studio 2010\Projects\saf\Debug\saf.exe'.

The system cannot find the file specified.
دوستان این کدی که دوستمون دادم زدن این پیغام رو داد visual studio هر کد دیگه ای هم میزنم این پیغام میاد!! کسی هست بدونه دلیلش چیه؟؟؟ جواب بدید ممنون میشم:قلب:

Arcsinos
یک شنبه 28 آذر 1389, 23:09 عصر
این ارور وقتی پیش میاد که برنامه نتونه اجرا بشه ، یا بهتره بگم فایل اجرایی برنامه اجرا بشه و مشکل کار چیزی نیست جز ، خود برنامه .
برنامه رو یه مقدار که چه عرض کنم خیلی دست کاری کردم تا اجرا شد .
remoove ش رو خودت اضاقه کن . وقتی که برنامه اجرا شد تا وقتی که عدد 0 رو نزدی برنامه عدد میگره وقتی 0 رو زدی نمایش میده .


// qeen.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;
struct Queue
{
int front;
int rear;
int a[20];
};
int isFull(Queue q)
{
if(q.front==q.rear)
return 1;
return 0;
}
int isEmpty(Queue q)
{
if(q.rear==0)
return 1;
return 0;
}
void insert(Queue &q,int item)
{
q.rear=(q.rear+1)%20;
if(isFull(q))
{
cout<<"\nError\n";
return;
}
q.a[q.rear]=item;
}
void remove(Queue q,int &item)
{
if(isEmpty(q))
{
cout<<"\nError\n";
return;
}
q.front=(q.front+1)%20;
item=q.a[q.front];
}
void traverse(Queue q)
{
for(int i=q.front+1;i<q.rear;i++)
cout<<q.a[i]<<"\n ";
}
int _tmain(int argc, _TCHAR* argv[])
{
Queue q;
int input=-1;
q.front=q.rear=-1;
while(input!=0)
{
cout<<"\nplease enter a number :";
cin>>input;
insert(q,input);
}
traverse(q);
getch();
return 0;
}