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

Списк: однонаправленный список - C++

Восстановить пароль Регистрация
 
kirya
-9 / 2 / 0
Регистрация: 01.06.2012
Сообщений: 87
23.06.2012, 04:54     Списк: однонаправленный список #1
Друзья, кто может, помогите программку написать, надо чтоб состояло из нескольких файлов (.h, .cpp), вот задание, кто сделает буду очень благодарен:

Комменты к написанию проги: Необходимо организовать список, при этом необходимо написать программу таким образом, чтобы из функции main доступ к списку был возможен только с помощью функций добавления элемента в список, удаления элемента из списка и просмотра содержимого списка. Таким образом, необходимо все функции работы со списком вынести в отдельный файл, и для всех переменных и функции использовать необходимые модификаторы классов памяти.

Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка. Элементы списка – вещественные числа.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2012, 04:54     Списк: однонаправленный список
Посмотрите здесь:

однонаправленный список C++
C++ однонаправленный список
C++ однонаправленный список
Однонаправленный Список C++
C++ Однонаправленный список
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
23.06.2012, 22:21     Списк: однонаправленный список #2
Можно сделать так
один файл

C++
1
2
3
4
5
6
7
8
9
10
#include "NNNN.h"
 
int main() 
{  
    add(12); // добавляем элементы
    add(13); 
    add(14); 
    add(15); 
     show(); // выводи на экран
}
Второй файл NNNN.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
#include <iostream> 
using namespace std;
 
struct node // узел
{ 
    float data; // вещественное число
    node* next; // указатель на следующий
}; 
 
node* first = NULL; // указатель на начало
 
void add(int d)   // добавляем эдемент
{ 
    node* newnode = new node; 
    newnode->data = d; 
    newnode->next = first; 
    first = newnode; 
}  
 
void del()  // удаляем элементы
{ 
  node* current = first; 
  while(current) 
  { 
      node* temp = current; 
      current = current->next; 
      delete temp; 
  } 
}
 
void show()  // выводм на экран
{ 
    node* current = first; 
    while(current) 
    { 
        cout << current->data << endl; 
        current = current->next; 
    }
}
kirya
-9 / 2 / 0
Регистрация: 01.06.2012
Сообщений: 87
24.06.2012, 06:41  [ТС]     Списк: однонаправленный список #3
Слушай, а почему два файла с расширением .h?????

Добавлено через 1 час 26 минут
Ой, прости, не так понял) все норм)
nexus777
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 19
24.06.2012, 07:04     Списк: однонаправленный список #4
void del() // удаляем элементы
{
if( node == NULL ) printf("список пуст")//если нечего удалять
else
{
node* current = first;
while(current)
{
node* temp = current;
current = current->next;
delete temp;
}
}
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
24.06.2012, 07:08     Списк: однонаправленный список #5
nexus777, если список пуст, то и так ничего не удалится. А вы вообще структуру с null сравниваете.
nexus777
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 19
24.06.2012, 07:12     Списк: однонаправленный список #6
извеняюсь за безобразие...но проверка списка на пустоту - это необходимый пункт
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
24.06.2012, 07:14     Списк: однонаправленный список #7
nexus777, Зачем?
nexus777
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 19
24.06.2012, 07:15     Списк: однонаправленный список #8
если у нас уже нет элементов в списке - очень интересно, каким образом мы об этом узнаем)?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
24.06.2012, 07:20     Списк: однонаправленный список #9
nexus777, Если у нас уже нет элементов в списке, [irony]как ни странно[/irony] ничего не произойдет. Зачем нам об этом узнавать? Для этого должен быть метод empty, или, на крайняк, size. Но выводить в общий поток информацию о пустом списке при вызове функции del, после которой в любом случае список будет пустой(чего мы, собственно, и добивались) - бред.
nexus777
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 19
24.06.2012, 07:26     Списк: однонаправленный список #10
на самом деле - это просто способ реализации))) Можно метод empty вшить в метод del. А метод del уже сообщает - удалось ли удалить или нет.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
24.06.2012, 07:31     Списк: однонаправленный список #11
на самом деле - это просто способ реализации))
Это просто бред. Позволю себе напомнить вам, что я так и не увидел внятного ответа, почему проверка необходима. Если такового нет, не трудитесь отвечать, мы и так порядком наоффтопили.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2012, 07:33     Списк: однонаправленный список
Еще ссылки по теме:

однонаправленный список C++
C++ однонаправленный список
Организовать список объектов и сортировку списк C++

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

Или воспользуйтесь поиском по форуму:
nexus777
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 19
24.06.2012, 07:33     Списк: однонаправленный список #12
Предотвращение возможной ошибки при программировании.
Yandex
Объявления
24.06.2012, 07:33     Списк: однонаправленный список
Ответ Создать тему
Опции темы

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