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

однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
kirya
-9 / 2 / 0
Регистрация: 01.06.2012
Сообщений: 87
24.06.2012, 06:40     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка #1
Вот друзья задание: Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка. Элементы списка – вещественные числа.

Вот я сделал два файла:

Главный.срр
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include "conio.h"
#include "I:\Z.h"
 
int main() 
{  
    add(12); // добавляем элементы
    add(13); 
    add(14); 
    add(15); 
    show(); // выводи на экран
    del(); //удаляем
    getch();
}
Заголовочный файл Z.c
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; 
    }
}

Осуществляется реализация в Visual Studio 2008 в консольном приложении. Программа вроде бы верно добавляется элементы сначала (add(12), add(13)...add(15) ) и просматривает с конца (когда выводит на консоль 15...13,12), а вот как показать удаление элементов сначала списка функцией Del?????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2012, 06:40     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка
Посмотрите здесь:

C++ Линейно-однонаправленный список (удалить элемент списка по ключу)
C++ однонаправленный список элементов (удвоить каждый элемент списка)
C++ Однонаправленный список типа "Очередь". Поменять элементы местами
Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2 C++
Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexus777
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 19
24.06.2012, 07:09     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка #2
удалил-показал список полностью. опять удалил - снова показал...
kirya
-9 / 2 / 0
Регистрация: 01.06.2012
Сообщений: 87
24.06.2012, 07:39  [ТС]     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка #3
Вот ты сам попробуй сделать так, как ты сказал, у меня сразу визуал ругается на все
nexus777
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 19
24.06.2012, 07:44     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка #4
я понимаю задание так. Надо организовать список. Функция, которая удаляет один элемент из списка, функция которая добавляет один элемент к списку, функция которая показывает весь список. Я правильно понял? Просто на сколько я помню свои лабы, я делал именно так. А если хотите показать именно порядок удаления - то
void del() // удаляем элементы
{
node* current = first;
while(current)
{
node* temp = current;
cout << current -> data << endl;
current = current->next;
delete temp;
}
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
24.06.2012, 07:53     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка #5
kirya, отвечу сюда: nexus777 говорит все верно. В стеке должны быть две основные функции: push и pop. В зависимости от реализации pop возможна реализация top. Опционально - show. Таких реализаций - полно.

Цитата Сообщение от kirya Посмотреть сообщение
элементы добавляются и удаляются с начала, просматриваются с конца списка
А вообще, имхо, задание составлено довольно коряво. Где у списка начало, а где конец? Если это стек, то все операции производятся с одной стороны. Если очередь, то только добавление с другой стороны.
nexus777
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 19
24.06.2012, 07:55     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка #6
согласен
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2012, 07:56     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка
Еще ссылки по теме:

C++ Кольцевой однонаправленный список, вывод списка на экран
C++ Однонаправленный список из квадратов отрицательных элементов первого списка
Однонаправленный связный список с полями данных в самом узле списка C++

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

Или воспользуйтесь поиском по форуму:
kirya
-9 / 2 / 0
Регистрация: 01.06.2012
Сообщений: 87
24.06.2012, 07:56  [ТС]     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка #7
Ну вот такое тупое задание у меня:
Необходимо организовать список, при этом необходимо написать программу таким образом, чтобы из функции main доступ к списку был возможен только с помощью функций добавления элемента в список, удаления элемента из списка и просмотра содержимого списка. Таким образом, необходимо все функции работы со списком вынести в отдельный файл, и для всех переменных и функции использовать необходимые модификаторы классов памяти.

Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка. Элементы списка – вещественные числа.
Yandex
Объявления
24.06.2012, 07:56     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка
Ответ Создать тему
Опции темы

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