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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Skaffi
1 / 1 / 0
Регистрация: 13.10.2008
Сообщений: 10
#1

Вложенные структуры, стек - C++

20.10.2008, 19:43. Просмотров 1965. Ответов 0
Метки нет (Все метки)

помогите, пожалуйста.

Есть стек.

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
//Stack.h
//вложенная структура в связанном списке;
 
#ifndef STACK_H
#define STACK_H
 
struct Stack
{
    struct Link
    {
        void* data; //указатель на данные, хранящиеся в Link;
        Link* next; //указатель на следующую структуру Link;
        //если указатель next =0, то это значит конец списка;
        void initialize(void* dat, Link* nxt);
    }* head;
    void initialize();
    void push(void* dat);
    void* peek();//возвращает указатель на верхний блок данных, но осталяет верхний элемент без изменений;
    void* pop();//возвращает указатель на верхний блок данных и удаляет верхний элемент из стека;
    void cleanup();
};
 
 
#endif // STACK_H

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
//Stack.cpp
//связанный список с вложением
#include "stdafx.h"
#include "Stack.h"
#include "require.h"
#include <iostream>
using namespace std;
 
void 
Stack::Link::initialize(void* dat, Link* nxt) {
  data = dat;
  next = nxt;
}
 
void Stack::initialize() { head = 0; }
 
void Stack::push(void* dat) 
{
  Link* newLink = new Link;
  newLink->initialize(dat, head);
  head = newLink;
}
 
void* Stack::peek() { 
  require(head != 0, "Stack empty");
  return head->data; 
}
 
void* Stack::pop() {
  if(head == 0) return 0;
  void* result = head->data;
  Link* oldHead = head;
  head = head->next;
  delete oldHead;
  return result;
}
 
void Stack::cleanup() {
  require(head == 0, "Stack not empty");
} ///:~

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
// StackTest.cpp
// тестирование связанного списка с вложенной структурой
 
#include "stdafx.h"
#include "require.h"
#include "Stack.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
void main() 
{
 
  Stack massiv;
  massiv.initialize();
 int chislo;
  // Чтение файла и сохранение строк в стеке:
  for (int i=0; i<5; i++)
  {
      cout << "enter chislo " << endl;
      cin >> chislo;
      massiv.push(new int(chislo));
  }
    
  // Извлечение строк из стека и вывод:
  int* s;
  while((s = (int*)massiv.pop()) != 0) {
    cout << *s << endl;
    delete s; 
  }
  massiv.cleanup();
} ///:~


он работает. как его реализовать, чтобы можно было вкладывать в стек структуру?... например:
C++
1
2
3
4
5
struct Video
{
  int number; 
  int year;
};
помогите, пожалуйста. Или как хотя бы примерно делать.....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2008, 19:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вложенные структуры, стек (C++):

Вложенные структуры - C++
Разбираюсь с вложенными структурами. Вопрос: как вывести строковый элемент вложенной структуры? #include &lt;iostream&gt; using namespace...

Вложенные структуры - C++
Не пойму, почему при инициализации результаты получаются некорректными (закомментил инициализацию), а при указании переменных...

Вложенные структуры - C++
Здравствуйте! Туплю... Как мне инициализировать структуру ААА и N вложенных в нее структур BBB. struct BBB { quint8 c; ...

массивы и вложенные структуры - C++
есть такой код: struct part1 { int arr; }; struct part2 { part1 dim; };

Ссылки, вложенные структуры - C++
Напишите пожалуйста определения с примерами..вообщем как ответить по теории.. 1. Типы определяемые пользователем: вложенные структуры...

Getline, strin и вложенные структуры - C++
Добрый день! Есть вложенные структуры: struct Employee { std::string FIO; int Age; int Exp; float SlryPerHr; int...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2008, 19:43
Привет! Вот еще темы с ответами:

Что такое вложенные структуры? - C++
Помогите пожалуйста, что такое структура знаю, а вот какие вложенные структуры не знаю.

Для чего нужны вложенные структуры? - C++
Скажите пожалуйста для чего нужны вложенные структуры и где их используют?

Вложенные структуры. Доступ к элементам структур - C++
Как через структуру реализовать что-то вроде этого. Есть структура с городами, каждый город имеет одинаковый набор свойств, но у каждого...

ООП. Вложенные структуры. Двунаправленные списки - C++
Доброго времени суток, помогите мне пожалуйста: Структура (header) #include &lt;stdio.h&gt; class CGraph { private: struct...


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

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

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