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

Реализовать класс "Очередь" - C++

Восстановить пароль Регистрация
 
Jim_Hunter
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 10
02.10.2016, 18:40     Реализовать класс "Очередь" #1
Помогите разобраться

при создании очереди чисел все просто и понятно, к примеру есть поле value туда я помещаю числа и оттуда могу их
их взять:
C++
1
2
3
4
5
6
   
head = new element ;
tail = head;
head->value = x;
head->adr=0;
size = 1;
но вопрос собственно в чем: у меня задание:

Реализуйте класс очереди из предыдущей работы с одним отличием –
элементом очереди теперь будет не int, а указатель на объект типа figure.

Как создать поле в структуре в котором будут размещаться элементы, что бы можно было сделать что то типа head->value = x;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2016, 18:40     Реализовать класс "Очередь"
Посмотрите здесь:

C++ Класс "Студент", реализовать динамический список "Группа студентов"
класс Lqueue, структура типа "очередь" C++
C++ Реализовать класс "Квадрат" с данными-членами "центр квадрата" и "сторона квадрата"
C++ Реализовать связь классов "телефонная книга" и родительский класс "телефонный номер"
C++ Реализовать родительский класс "Геометрическая фигура" и потомок "Конус"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gru74ik
Модератор
 Аватар для gru74ik
3068 / 1313 / 164
Регистрация: 20.02.2013
Сообщений: 3,742
Записей в блоге: 15
02.10.2016, 18:46     Реализовать класс "Очередь" #2
Цитата Сообщение от Jim_Hunter Посмотреть сообщение
из предыдущей работы
Jim_Hunter, какой "предыдущей работы"?
Jim_Hunter
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 10
02.10.2016, 18:51  [ТС]     Реализовать класс "Очередь" #3
это не особо важно, там очередь на основе двусвязного списка
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,223
02.10.2016, 18:53     Реализовать класс "Очередь" #4
Jim_Hunter, вставьте сюда ваш код, где работает с int и описание структуры figure - и пометьте строчку где у вас что-то не получается.
Jim_Hunter
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 10
02.10.2016, 18:57  [ТС]     Реализовать класс "Очередь" #5
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
#include "que.h"
#include "element.h"
#include <iostream>
using namespace std;
 
 
que::que(int x)
{
 
    head = new element ;
    tail = head;
    head->value = x;
    head->adr=0;
    size = 1;
 
 
}
 
 
que::~que(void)
{
}
 
void que ::push (int value)
{
    size++;
    element *temp = new (element);
    temp->adr=0;
    temp->value = value;
    tail->adr=temp;
 
    tail=temp;
 
 
}
 
void que::pop (int *res)
{
    if (size ==0)
    {
        cout<<"Очередь пуста - удалять нечего!"<<endl;
        return;
    }
 
    element *temp = head;
    *res = head->value;
    head = head->adr;
    delete temp;
    size --;
 
 
}
 
void que::Print()
{
if(size==0)
{
cout << "Queue is empty"<< endl;
return;
}
 
element* e;
e = head;
while(e != 0)
{
    cout << e->value << ", ";
    e = e->adr;
}
cout << endl;
}

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
#include <conio.h>
#include <iostream>
using namespace std;
 
#include <stdlib.h>
#include <crtdbg.h>
 
#include "figure.h"
#include "queue.h"
#include "Rectangles.h"
 
 
void main()
{
    figure *f[3];
    figure * f1,*f2,*f3;
 
    Rectangles * r1,*r2,*r3;
 
    r1 = new Rectangles ();
    r2 = new Rectangles ();
    r3 = new Rectangles ();
 
    r1->a = 1; r1->b = 2;
    r2->a = 5; r2->b = 7;
    r3->a = 15; r3->b = 3;
 
    f1= (figure*)r1; f2= (figure*)r2; f3= (figure*)r3;
 
    f[0] = f1;
    f[1]= f2;
    f[2]= f3;
 
 
 
 
 
    /*queue q;
    q.Put(f1); q.Put(f3);q.Put(f2);
    q.ShowSquares();*/
    
 
    f1->PrintName();
    f2->PrintName();
 
    f1->GetSquare();
    f2->GetSquare();
 
    
    delete f1;
    delete f2;
    delete f3;
 
    _CrtDumpMemoryLeaks();
    _getch();
 
 
}
А не получается реализовать Put (он же Push)
Yandex
Объявления
02.10.2016, 18:57     Реализовать класс "Очередь"
Ответ Создать тему
Опции темы

Текущее время: 15:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru