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

Подскажите, как правильно описать структуру и методы - C++

Восстановить пароль Регистрация
 
kondusov
2 / 2 / 0
Регистрация: 01.06.2013
Сообщений: 152
28.11.2013, 18:36     Подскажите, как правильно описать структуру и методы #1
Мне нужно описать структуру ОЧЕРЕДИ, в инфополе которой будет строка максимум 20 символов, и методы к ней. Проверьте, что не так ?:

Добавлено через 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
91
92
93
94
95
96
97
#include <iostream>
#include <cstdlib>
using namespace std;
//СТРУКТУРА БУДЕТ ЭЛЕМЕНТОМ СПИСКА
#define MAX_LEN 20
  struct Node //или просто Звено списка
    {
       char str[MAX_LEN];//инфо данные структуры
       Node *Next; //Указатель не следующее звено
    };
 
//КЛАСС СПИСОК
 
class List
{
    Node *Head,*Tail; //Указатели на начало списка и на конец
public:
     List():Head(NULL),Tail(NULL){}; //Инициализация указателей как пустых
     ~List(); //Деструктор для освобождения памяти от всего что будет
     void Add(char str[MAX_LEN]); //Функция заполнения структуры Node и добавления её в список как элемента
     void Show(); //Функция отображения списка List 
     void del(); //Функция изъятия элемента
 
 };
 
void List::Show()
{
    Node *temp=Head; //Временный указатель на начало списка
     while (temp!=NULL) //Пока в списке что-то встречается
     {
         cout<<temp->str[MAX_LEN]<<" "; //Выводим значения из списка на экран
         temp=temp->Next; //Сдвигаем указатель на начало на адрес следующего элемента
     }
    cout<<endl;
} 
 
List::~List() //ДЕСТРУКТОР ДЛЯ ОЧИСТКИ ПАМЯТИ
{
 Node *temp=Head; //Временный указатель на начало списка
 while (temp!=NULL) //Пока в списке что-то есть
 
   {
     temp=Head->Next; //Резерв адреса на следующий элемент списка
 
     delete Head;  //Освобождение памяти от первой структуры как элемента списка
 
     Head=temp;  //Сдвиг начала на следующий адрес, который берем из резерва
 
   } 
}
 
 
//ФУНКЦИЯ ЗАПОЛНЕНИЯ ИНФОРМАЦИОННЫХ ПОЛЕЙ СТРУКТУРЫ NODE И ДОБАВЛЕНИЯ ЭТОЙ СТРУКТУРЫ В СПИСОК
 
void List::Add(char str[MAX_LEN])
{
    Node *temp=new Node; //Выделение памяти для нового звена списка
    temp->str[MAX_LEN]=str[MAX_LEN]; //Временное запоминание принятого параметра x
    temp->Next=NULL; //Указание, что следующее звено новосозданной структуры пока пустое
 
    if (Head!=NULL) //Если список не пуст 
    {
        Tail->Next=temp; //Указание, что следующее звено списка это новосозданная структура
        Tail=temp;      
    }     else Head=Tail=temp; //Если список не пуст, добавление первого элемента
}
 
//ФУНКЦИЯ ОТОБРАЖЕНИЯ СПИСКА НА ЭКРАНЕ 
 
 
 
 
//ФУНКЦИЯ ИЗЪЯТИЯ ЭЛЕМЕНТА ИЗ ОЧЕРЕДИ 
void List::del()
{
    if (Head!=NULL)  //Если список не пустой
    {
        Node *temp=Head; //Обращаемся к началу списка с помощью вспомогательного указателя
        cout<<"ЭЛЕМЕНТ "<<Head->str[MAX_LEN]<<" ВЫШЕЛ"<<endl;
        Head=Head->Next; //Сдвиг начала списка
        delete temp; //Освобождение памяти от предыдущего звена списка
    }
}
 
 
 
void main(){
    char stroka[MAX_LEN], stroka2[MAX_LEN];
   List lst;
  cin>>stroka;
  cin>>stroka2;
lst.Add(stroka);
lst.Add(stroka2);
lst.Show();
 
   system("PAUSE");
}
Добавлено через 18 минут
как сделать это без использования классов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 18:36     Подскажите, как правильно описать структуру и методы
Посмотрите здесь:

C++ как правильно считать (записать) структуру из файла
C++ Как правильно выделить память под структуру?
Консольное приложение.Описать как структуру переменную время C++
C++ Классы С++ (как описать методы и свойства к массиву)
Как правильно написать функцию, которая редактирует структуру по полю Name и возвращает новую, исправленную структуру?.. C++
C++ Как правильно объявить структуру
Как правильно обнулить структуру хранящию класс C++
C++ Подскажите Описать структуру с именем STUDENT, содержащую следующие поля:

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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