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

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

Войти
Регистрация
Восстановить пароль
 
Jim_Hunter
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 18
#1

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

02.10.2016, 18:40. Просмотров 178. Ответов 4
Метки нет (Все метки)

Помогите разобраться

при создании очереди чисел все просто и понятно, к примеру есть поле 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;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2016, 18:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать класс "Очередь" (C++):

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число" - C++
Ткма работы создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар (a,b)+(c,d) =(a+b,c+d)...

Иерархия классов "список"-"очередь", вызов метода через класс интерфейс - C++
Есть небольшая иерархия классов, контейнер (список) для хранения объектов каждого класса, контейнер (очередь) с указателями на объект...

Реализовать связь классов "телефонная книга" и родительский класс "телефонный номер" - C++
Суть проблемы:есть дочерний класс "телефонная книга" и родительский класс "телефонный номер". В классе "телефонная книга" к заданной...

Реализовать класс "Квадрат" с данными-членами "центр квадрата" и "сторона квадрата" - C++
Объявить класс по приведенному ниже заданию в соответствии с номером варианта и определить для него конструктор по умолчанию,...

Реализовать родительский класс "Геометрическая фигура" и потомок "Конус" - C++
Всем привет. Впервые сюда обращаюсь за помощью. На данный момент, закрываю сессию и сегодня сообщили, что завтра нужно сдать прогу, а я...

Класс "Студент", реализовать динамический список "Группа студентов" - C++
реализовать динамический список " группа студентов". Узел: -группа -фамилия Функции списка: -добавление по алфавиту ...

4
gru74ik
Модератор
Эксперт CЭксперт С++
4189 / 1837 / 198
Регистрация: 20.02.2013
Сообщений: 4,976
Записей в блоге: 21
02.10.2016, 18:46 #2
Цитата Сообщение от Jim_Hunter Посмотреть сообщение
из предыдущей работы
Jim_Hunter, какой "предыдущей работы"?
0
Jim_Hunter
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 18
02.10.2016, 18:51  [ТС] #3
это не особо важно, там очередь на основе двусвязного списка
0
rikimaru2013
C++ Game Dev
2438 / 1132 / 240
Регистрация: 30.11.2013
Сообщений: 3,688
02.10.2016, 18:53 #4
Jim_Hunter, вставьте сюда ваш код, где работает с int и описание структуры figure - и пометьте строчку где у вас что-то не получается.
0
Jim_Hunter
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 18
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)
0
02.10.2016, 18:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2016, 18:57
Привет! Вот еще темы с ответами:

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Реализовать класс "Круг" и класс "Точка" - C++
Составить программу вычисления параметров графического примитива. При написании программы использовать два класса «точка» и «примитив». ...

Реализовать класс "Ромб"; организовать интерактивную демонстрацию работы с массивом объектов типа "Ромб" - C++
Пользователь вводит массив Ромбов Свойства: сторона и диагональ (меньшая) Операции:  увеличение/уменьшение размера на определенный...

Реализовать пользовательский класс "Двунаправленный список"; реализовать добавление и удаление элементов - C++
Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать двунаправленный список. Удалить К элементов с...


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

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

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