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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.67
Koketka
5 / 5 / 0
Регистрация: 27.11.2009
Сообщений: 232
#1

Циклические очереди в C++ - C++

27.11.2009, 18:57. Просмотров 3609. Ответов 3
Метки нет (Все метки)

Привеет всем
нужно написать функции занесения и извлечения данных для циклической очереди???(обратите внимание на аргументы можно использовать перегрузку функций - так в задании написано)

простую очередь я вот так накидала(правильно ли?!!):

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
struct Queue {
   int d;
   Queue *p;
};
    
/*prostaya ochered formirovanie*/
Queue *first(int d){
  Queue *pv = new Queue;
  pv->d = d;
  pv->p = 0;
  return pv;
}
 
/*prostaya ochered + */
void add(Queue **end, int d){
  Queue *pv = new Queue;
  pv->d = d;
  pv->p = 0;
  (*end)->p = pv;
}
 
/*prostaya ochered - */
int del(Queue **beg){
  int temp = (*beg)->d;
  Queue *pv = *beg;
  *beg = (*beg)->p;
  delete pv;
  return temp;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2009, 18:57     Циклические очереди в C++
Посмотрите здесь:

Найдите суммарную длину строк, принадлежащих очереди, кроме первой строки очереди - C++
Создать очередь строковых значений, для реализации используя односвязные списки.Реализовать операции добавления (enqueue) и удаления...

Очереди. Дан массив. Создать две очереди, первая должна содержать все нечетные, а вторая - все четные - C++
Очереди. Дан массив. Создать две очереди, первая должна содержать все нечетные, а вторая - все четные числа из исходного набора; порядок...

С++ (циклические алгоритмы) - C++
Большая просьба помочь с кодом по задаче. Проста, но разбираться в этой теме времени не хватает, а результат срочно нужен. "В...

Циклические вычисления - C++
Можете сказать, где ошибка? #include <iostream> #include <iomanip> #include <math.h> using namespace std; int main() { ...

Циклические коды - C++
Для построение циклического кода (CRC) нужен образующий полином, который мы должны найти по таблице неприводимых многочленов(см....

Циклические сдвиги - C++
доброго времени суток, уважаемые форумчане. напишите пожалуйста код к задаче, от этого зависит получу ли я талон или нет: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Koketka
5 / 5 / 0
Регистрация: 27.11.2009
Сообщений: 232
28.11.2009, 07:01  [ТС]     Циклические очереди в C++ #2
пишите кто что знает, будут полезны любые мысли...
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
28.11.2009, 08:54     Циклические очереди в C++ #3
Доброе утро. что-то никто вам отвечать не хочет =)
Вот набросал по быстрому - код сырой.
код
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
//Наши элементы имеют вид:
struct node
{
    some_type data;
    node* next;
}
//указатель на голову очереди. Если NULL, то очередь пуста.
node* head = NULL;
//функции добавления:
void push(node* tmp)
{
    //Выделяем память, переносим туда данные:
    node* tail = new node;
    tail->data = tmp->data;
    // Именно здесь логично использовать перезгрузку 
    //функции присваивания и определить правила по которым 
    //выполняется копирование данных нашего типа some_type.
 
    tail->next = head;// "Хвост змеи кусает её голову"
    
    //теперь нужно найти предыдущий узел (который 
    // всё еще указывает на голову) и исправить его так,
    // чтобы он указывал на добавляемый узел:
    node* ip = tail->next;
    while(!(ip->next==head))   ip = ip->next;
    ip->next = tail;    
}
 
node* pop() // возвращает указатель на элемент, элемент 
            // исключается из очереди. После окончания работ с 
            // элементом, не забываем освобождать память.
{
    node* tmp = head;
    //новой головой станет либо следующий узел, либо, если вытал-
    //киваемый элемент единственный (является головой и хвостом 
    //одновременно, следовательно указывает сам на себя) значение NULL -
    // очередь будет пуста.
    head = (head==head->next)?NULL:head->next;        
    return tmp;  
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2009, 11:17     Циклические очереди в C++
Еще ссылки по теме:

Циклические операторы - C++
Нужна помощь. плз кому не трудно. Циклические операторы: 1) Вводится последовательность из N целых чисел. Найти наибольшее из всех...

Циклические алгоритмы - C++
Help!!! Задача предполагает применение оператора цикла while языка программирования С++. 1. Найти сумму ряда с точностью =0,001, общий...

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

Циклические операторы (for,do,while) - C++
http://imageshack.us/a/img821/3474/aaaaaaaalz.jpg http://imageshack.us/a/img689/165/ffffue.jpg Объясните плс почему внутри цикла p=x...


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

Или воспользуйтесь поиском по форуму:
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
28.11.2009, 11:17     Циклические очереди в C++ #4
обратите внимание на аргументы можно использовать перегрузку функций
значит описать двунапр и однонапр очередь.
Циклической ето однонапр вроде.
P.s Функции написаны корректно.
Yandex
Объявления
28.11.2009, 11:17     Циклические очереди в C++
Ответ Создать тему
Опции темы

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