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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
kirya
-9 / 2 / 0
Регистрация: 01.06.2012
Сообщений: 87
#1

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

24.06.2012, 06:40. Просмотров 1432. Ответов 6
Метки нет (Все метки)

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

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

Главный.срр
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++
Ввод и вывод списка. Ввод вроде работает, а вывод списка не работает, выводится ошибка в этой строке: cout &lt;&lt; pv-&gt; data &lt;&lt; &quot; &quot;; ...

Не удаляются одинаковые элементы списка - C++
Добрый вечер. Моя задача основана на связных списках. Не работает только функция удаления одинаковых элементов списка (void...

Линейно-однонаправленный список (удалить элемент списка по ключу) - C++
Нужна помощь с методом удаление,должен удалить элемент списка по ключу,поиск приведён. #include &lt;iostream.h&gt; #include &lt;conio.h&gt; ...

Однонаправленный список из квадратов отрицательных элементов первого списка - C++
Создать однонаправленный список действительных чисел, который может содержать как положительные так и отрицательные числа. Создать...

Однонаправленный список элементов (удвоить каждый элемент списка) - C++
Сформировать однонаправленный список элементов типа char и написать программу следующих операций над ним: а) удвоить каждый элемент списка.

Однонаправленный связный список с полями данных в самом узле списка - C++
Добрый день! Правильно я поняла, что однонаправленный связный список с полями данных в самом узле списка выглядит так: struct robot //...

Организовать ввод в однонаправленный список; подсчитать сумму чисел списка - 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
2540 / 1305 / 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     однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка
Еще ссылки по теме:

Однонаправленный список: как ввести значение в head и последующие узлы списка? - C++
В head не хранится значение, не могу добавить информацию в первый элемент, из за чего список является пустым. Как ввести значение в head...

Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2 - C++
Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2. Список L отсортировать в порядке...

Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2 - C++
Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2. Список L отсортировать в порядке...

Организовать ввод в однонаправленный список, узел списка состоит из двух полей: целое число и указатель - C++
Здравствуйте, нужна ваша помощь!!! Нужно написать программу Организовать ввод в однонаправленный список. Узел списка состоит из двух...

Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и указатель. Не - C++
Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и указатель. Необходимо добавить узел после...


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

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

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

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