Форум программистов, компьютерный форум CyberForum.ru

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

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

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

28.12.2012, 13:53. Просмотров 565. Ответов 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 13:53     Простая очередь
Посмотрите здесь:

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

Простая геометрия - C++
Недавно решал пачку задач на геометрию, но с одной не справился, даже сейчас не выходит. Постановка: Дан выпуклый многоугольник...

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

простая арифметика - C++
дан массив и матрица 3*3,хранящая числа.например 5 7 6 4 2 5 1 9 7 первый элемент массива равен 5-7-6 второй=4-2-5 третий 1-9-7...

Простая загвоздка) - C++
Може кому то покажется смешным мой вопрос, ну имеем, то что имеем) Дано масив &quot;char s&quot; он пустой, и дано переменную &quot;int а&quot;как зделать...

Простая задачка на C++ - C++
s=sin x + sin x^2 + sin x^3 + sin x^4 + ... + sin x^n - условие, а что как с этим делать я не понимаю, т.к. нам тупо раздали задание и...

простая программа - C++
написать программу которая печатает числа от 1 до 4? так что соседние числа разделены одним пробелом. 1) используя один оператор вывода с...

простая примерчик - C++
как с помощью ф-ции или рекурсии В С++ написать прогу На 11 делятся только те числа, у которых сумма цифр, занимающих нечётные места,...

Простая СУБД. H*E*L*P* - C++
Вообщем БД вроде как создается, элементы добавляются только первый раз, при создании БД, потом при повторных запусках не хочет добавлять. И...

Простая задача - C++
Помогите пожалуйста решить. Имеется в наличии 3 арбуза. Найти самый тяжелый. Примечание: решить задачу, используя язык...

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

Простая задачка - C++
Нужен код для Dev C++ Найти суму цифр четырёхзначного натурального числа. Буду очень благодарен.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
}
пример очереди
Ответ Создать тему
Опции темы

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