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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Кротяка
5 / 5 / 0
Регистрация: 20.12.2010
Сообщений: 378
#1

Стек и очередь для хранения объектов типа Coord - C++

27.05.2012, 23:09. Просмотров 1413. Ответов 3
Метки нет (Все метки)

Ниже представлен пример класса Coord. Напишите программу для хранения объектов типа Coord, используя последовательные контейнеры стека и очереди.

C++
1
2
3
4
5
6
class Coord{
public:
int x,y;
Coord(){x=y=0};
Coord(int a, int b) {x=a;y=b;}
};
Добавлено через 9 часов 31 минуту
ребят, срочно надо, помогите кто шарит...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2012, 23:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Стек и очередь для хранения объектов типа Coord (C++):

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

Стек объектов произвольного типа (ООП) - C++
Здравствуйте, мне дали задание реализовать стек объектов произвольного типа с помощью ООП, и к тому же реализовать все эти сущности в виде...

Как создать стек объектов произвольного типа? - C++
Предметная область: «Стек объектов произвольного типа». Данные класса: динамический список элементов стека. Функции класса: считывание...

Программа с использованием объектов типа стека или очередь на C. - C++
Помогите пожалуйста с написанием. Программа с использованием объектов типа стека или очередь. На стандартный ввод программы поступают...

Изменения значения переменной типа COORD - C++
Всем доброго времени суток! Недавно я, найдя хороший способ перемещения курсора в консоли, столкнулся с проблемой. Сам код выглядит...

Стек для хранения данных - C++
вот условия: (Динамические структуры данных) Реализовать стек для хранения данных вида: ФИО, группа, средний балл. Обеспечить...

3
Martovskij
99 / 39 / 7
Регистрация: 30.01.2011
Сообщений: 129
Завершенные тесты: 4
28.05.2012, 00:31 #2
щас. напишу. с циклической очередью.

Добавлено через 12 минут
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
// сс.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include <math.h>
#include <iostream>
 
 
#define COORD_STACK_SIZE 10
#define COORD_QUEUE_SIZE 10
 
using namespace std;
 
class Coord{
public:
int x,y;
Coord();
Coord(int , int );
~Coord(){};
};
 
Coord::Coord(int a, int b)
{
  x=a;
  y=b;
}
 
Coord::Coord() 
{
  x=y=0;
}
 
/*---Глобальные пременные ---*/
 
Coord coord_stack[COORD_STACK_SIZE]; // Массив для хранения объектов типа Coord по принципу стека
Coord coord_queue[COORD_QUEUE_SIZE]; // Массив для хранения объектов типа Coord по принципу циклической очереди
int head = 0;                        // Указатель головы
int end_b = 0;                         // Указатель хвоста
int count_obj = 0;                   // Счетчик занятых ячеек
/*--------------------------*/
 
/*-----Прототипы обработчиков-------*/
void  put_coord_to_stack(Coord);     // Функция для складывания объекта в стек
Coord pop_coord_from_stack(void);    // Функция для извлечения объекта из стека
int stack_counter = 0;               // Указатель стека
 
void  write_coord_to_queue(Coord);   // Запись в очередь
Coord read_coord_from_queue(void);   // Чтение из очереди
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{  
   
    
    // Положите сюда ваш код
    
    return 0;
}
 
 
 
void  put_coord_to_stack(Coord obj)
{
   if (stack_counter == 10) return; // Если стек полон - выходим
   coord_stack[stack_counter] = obj;
   stack_counter++;
   cout << "pushing object to stack" << endl;
}
 
Coord pop_coord_from_stack(void)
{
   cout << "poping object from stack" << endl;
   return coord_stack[stack_counter--];
}
 
void  write_coord_to_queue(Coord obj)
{
    if (count_obj == COORD_QUEUE_SIZE ) return; // Если буфер полон - выходим
    if (head == COORD_QUEUE_SIZE) head = 0; // Если достигли конца буфера - переходим вначало
      coord_queue[head++] = obj;
}
 
Coord read_coord_from_queue(void)
{
   if (count_obj == 0 ) return coord_queue[end_b];  // Если буфер пуст - выходим
   if (end_b == COORD_QUEUE_SIZE) end_b = 0; // Если достигли конца буфера - переходим вначало
     return coord_queue[end_b++];
}
1
MrGluck
Модератор
Эксперт CЭксперт С++
7497 / 4613 / 694
Регистрация: 29.11.2010
Сообщений: 12,631
28.05.2012, 01:13 #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
41
42
#include <iostream>
#include <queue>
#include <stack>
 
class Coord
{
    friend std::ostream& operator<< (std::ostream &out, const Coord &c)
    {
        out << c.x<< " "<< c.y<< std::endl; 
        return out;    
    }
  public:
    Coord(){x = y = 0;}
    Coord(int a, int b):x(a), y(b) {}
  private:
    int x,y;
};
 
int main()
{
    std::queue <Coord> q;    
    q.push( Coord(1, 2) ); // äîáГ*âëÿåì ýëåìåГ*ГІГ» Гў î÷åðåäü
    q.push( Coord(2, 3) );
    q.push( Coord(3, 4) );
    std::cout<< "FIFO:\n";
    while (!q.empty()) // ïîêГ* î÷åðåäü Г*ГҐ ГЇГіГ±ГІГ*
    {
         std::cout<< q.front(); // âûâîäèì Г*Г* ГЅГЄГ°Г*Г* ïåðâûé ýëåìåГ*ГІ Гў î÷åðåäè
         q.pop(); // âûòГ*ëêèâГ*ГҐГ¬ ГҐГЈГ®
    }
    std::stack <Coord> st;
    st.push( Coord(1, 2) ); // äîáГ*âëÿåì ýëåìåГ*ГІГ» Гў Г±ГІГҐГЄ
    st.push( Coord(2, 3) );
    st.push( Coord(3, 4) );
    std::cout<< "LIFO:\n";
    while (!st.empty()) // ïîêГ* Г±ГІГҐГЄ Г*ГҐ ГЇГіГ±ГІ
    {
         std::cout<< st.top(); // âûâîäèì Г*Г* ГЅГЄГ°Г*Г* âåðõóøêó Г±ГІГҐГЄГ*
         st.pop(); // âûòГ*ëêèâГ*ГҐГ¬ ГҐВё ГЁГ§ Г±ГІГҐГЄГ*
    }
    return 0;
}
1
Кротяка
5 / 5 / 0
Регистрация: 20.12.2010
Сообщений: 378
28.05.2012, 09:52  [ТС] #4
Большое спасибо всем!!!
0
28.05.2012, 09:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2012, 09:52
Привет! Вот еще темы с ответами:

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

Организуйте циклическую очередь для хранения строк - C++
Организуйте циклическую очередь для хранения строк. Для очереди используйте массив указателей на строки. Продемонстрируйте...

Реализовать стек для хранения и операций с данными - C++
Ребята, помогите, пожалуйста. Заранее огромное спасибо! Реализовать стек для хранения и операций с данными вида: Имя процедуры...

Стек для хранения целых чисел (int) - C++
Стек для хранения целых чисел (int). В классе должны быть функции добавления элемента на вершину стека (push), чтение верхнего элемента...


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

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

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