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

Циклическая очередь, сбой после удаления/добавления элемента - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ перегрузка [] http://www.cyberforum.ru/cpp-beginners/thread810842.html
Здарова никак не могу перегрузить имеется класс Int2 моделирующий int я перегрузил rvalue тоесть при вызове int a; Int2 b(5,4);//5 элементов, знач 4 a=b; cout <<a; //4
C++ Кодер Хемминга Нашёл в интернете кодер Хемминга, но при запуске выдаёт ошибку о том, что переменная otv была использована до её объявления. Сам в коде разобраться пока не смог. Помогите исправить код, чтобы он... http://www.cyberforum.ru/cpp-beginners/thread810833.html
dev c++ max stack size C++
подскажите где в dev c++ можно выставить размер стэка,стандартного 1 мб маловато мне 3 необходимо
C++ программирование рекурсивных алгоритмов
Подсчитать, сколькими способами можно расставить k двоек в n- мерном троичном векторе (0\leq k\leq n). Вывести все возможные варианты.
C++ Неизвестная конструкция http://www.cyberforum.ru/cpp-beginners/thread810817.html
Задача поставлена так: Написать программу, переводящую арабские числа в римские. Задача упрощается тем, что можна считать, что 40=XXXX, 9=VIIII и тому подобное. Саму программу я написал, но меня...
C++ Условия if Компилятор выдает ошибки: miplased else, expression syntax, missing ;. Не могу разобраться что не так в условиях... if (GetText=="REGISTRATION") { ... подробнее

Показать сообщение отдельно
nati94
2 / 2 / 0
Регистрация: 18.02.2013
Сообщений: 29

Циклическая очередь, сбой после удаления/добавления элемента - C++

17.03.2013, 13:30. Просмотров 1306. Ответов 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
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <iostream>
#include <conio.h>
#define MAX 3
using namespace std;
 int q[MAX];
int qnext=0,qindex=0,qlength=MAX;
 
 
 int main(void)
{
 void Add(void);
 int Delete(void);
 void Print(void);
 setlocale(0,"");
 for(int t=0; t < MAX; ++t) q[t] = NULL;
 int a;
 bool flag=true;
 while(flag)
 {
 printf("Выберите требуемый пункт меню:\n");
 printf("Ввести (1), Удалить (2),  Список (3),Выход (0): ");
 cin >> a;
 
 switch(a)
 {
 case 0: flag=false; break;
 case 1: Add(); break;
 case 2: Delete(); break;
 case 3: Print(); break;
 default: printf("Введено некорректное значение. Попробуйте еще раз!\n\n");
 }
 } 
 }
 
 void Add(){
 if(qnext+1 == qindex || (qnext == qlength && !qindex))
 {
  cout<<"Мест нет! Очередь будет переполнена!\n";
   qnext=0;
 scanf("%d", &q[qnext]);   //запись;
  // Смещение позиции записи
  // Циклический переход.
 return;
 }
 scanf("%d", &q[qnext]);   //запись;
 qnext++; // Смещение позиции записи
 if(qnext>qlength)
  qnext=0; // Циклический переход.
 }
 
 int Delete()
{
 if(qindex == qlength)
  qindex=0; // Циклический переход.
 if(qindex+1 == qnext)
 {
  cout<<"Очередь пуста.\n";
  return 0;
 }
 qindex++; // Смещение позиции считывания
 return q[qindex-1]; // Считывание
}
 
 void Print(void)
{ 
 for(int t=qindex; t < MAX; t++)
  if (q[t]!=NULL)
          printf("%d. %d\n", t+1, q[t]);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.