Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Likeri
5 / 5 / 1
Регистрация: 14.12.2011
Сообщений: 92
#1

Простая очередь - C++

28.12.2012, 13:53. Просмотров 634. Ответов 1
Метки нет (Все метки)

Здравствуйте. Мне нужно сделать циклическую очередь, я ее почти доделал но вот проблема с проверкой, она работает по кривому. Буду рад любой помощи
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
 
using namespace std;
 
#define MAX 5
 
struct queue
{
 int arr[MAX];
 int rear,front;
};
 
int isempty(struct queue *p)
{
 if(p->front == p->rear)
  return 1;
 else
  return 0;
}
void insertq(struct queue *p,int v)
{
 int t;
 t = (p->rear + 1) % MAX; 
 if(p->front == p->rear) {   
  printf("\nQueue Overflow\n");
 }
 
 {
 
  p->rear = t;  
  p->arr[p->rear] = v;
 }
}
 
int removeq(struct queue *p)
{
 if(isempty(p))
 {
  printf("\nQueue Underflow");
 }
 else
 {
  p->front = (p->front + 1) % MAX;
  return (p->arr[p->front]);
 }
}
 
void display(struct queue *p)
{
 printf("QUEUE: ");
 for(int i = 0; i < MAX; i++)
  printf("%d ", p->arr[i]);
 printf("\n");
}
 
int getMin(struct queue *p)
{
 int min = p->arr[p->rear];
 for(int i = 0; i < MAX; i++) {
  if(p->arr[i] < min)
   min = p->arr[i];
 }
 return min;
 
}
 
void main()
{
 struct queue q;
 
 q.rear = -1;
 q.front = -1;
 
 insertq(&q,7);display(&q);
 insertq(&q,10);display(&q);
 insertq(&q,12);display(&q);
 insertq(&q,15);display(&q);
 insertq(&q,8);display(&q);
 removeq(&q);display(&q);
 removeq(&q);display(&q);
 insertq(&q,16);display(&q);
 removeq(&q);display(&q);
 insertq(&q,14);display(&q);
 insertq(&q,66);display(&q);
 
 
 display(&q);
 
 cout<<"\nMin element: "<<getMin(&q);
 
 cin.get();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 13:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Простая очередь (C++):

Простая очередь, с указателями не дружится с другим классом - C++
Привет парни! Ситуация следующая. Я пишу программу печати двоичного дерева поиска в консоли (АА дерево). Поскольку основная особенность...

Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете - C++
Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете. В каждый момент времени происходит одно из событий:...

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.) - C++
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать очередь, чтобы добавляло, удаляло, читало....

Задача на очередь (вывод сообщения, что очередь пуста) - C++
Доброго дня! Есть задачка на очередь, которая работает нормально, только надо добавить код, чтобы выводил сообщение, что очередь пуста.....

Очередь, теория. Очередь на шести стеках - C++
Здравствуйте, пытаюсь побольше найти информации про очереди и их применение в программировании. Из того что я нашел, все описывается лишь...

Создать очередь. Добавить элемент в очередь. Удалить элемент из очереди - C++
Нужно создать очередь. Добавить элемент в очередь. Удалить элемент из очереди. Вот моё &quot;творение&quot;. int main() { int...

1
Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
28.12.2012, 14:43 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include<iostream>
#include<conio.h>
using namespace std;
const int maxlength = 100;
struct QUEUE{
  char elements[maxlength];
  int front;
  int rear;
  };
 
void MAKENULL(QUEUE *);
bool EMPTY(QUEUE *);
char FRONT(QUEUE *);
void ENQUEUE(char, QUEUE *);
void DEQUEUE(QUEUE *);
int addone(int);
 
int main()
{
  QUEUE Q;
  char c;
  cout<<"Enter TEXT"<<endl;
  MAKENULL(&Q);
  c = getchar();
  while (c != '=') 
  {
    ENQUEUE(c, &Q);
    c = getchar();
  }
  DEQUEUE(&Q);
  DEQUEUE(&Q);
  ENQUEUE('<', &Q);
  while (!EMPTY(&Q)) 
  {
    cout<<FRONT(&Q);
    DEQUEUE(&Q);
  }
  cout<<endl;
  getch();
  return 0;
}
 
void MAKENULL(QUEUE *Q)
{
  Q->front = 1;
  Q->rear = maxlength;
}
 
bool EMPTY(QUEUE *Q)
{
  if (addone(Q->rear) == Q->front)
    return true;
  else 
    return false;
}
 
char FRONT(QUEUE *Q)
{
  if (EMPTY(Q))
    cout<<"Queue is empty";
  else return Q->elements[Q->front];
}
 
void ENQUEUE(char elem, QUEUE *Q)
{
  if (addone(addone(Q->rear)) == Q->front)
    cout<<"Queue is full";
  else 
  {
    Q->rear = addone(Q->rear);
    Q->elements[Q->rear] = elem;
  }
}
 
void DEQUEUE(QUEUE *Q)
{
  if (EMPTY(Q))
    cout<<"Queue is empty";
  else 
    Q->front = addone(Q->front);
}
 
int addone(int i)
{
  return (i % maxlength) + 1;
}
пример очереди
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2012, 14:43
Привет! Вот еще темы с ответами:

максимальный(простая) - C++
что то я туплю... подскажите алгоритм:)

Простая программа на С++ - C++
#include&lt;iostream&gt; #include&lt;ctime&gt; #include&lt;cstdlib&gt; int f1(int a) { a++; return 2*a; }

Простая задача - C++
Друзья, в общем если нарушаю какие-либо правила заранее извиняюсь. В общем говорю честно я студент, и в с++ пока что в общем то 0. Прошу...

Простая программа на С++ - C++
Дана линейная программа: #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; void main(void) { setlocale (LC_ALL,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.