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

Односвязный список, реализация - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Nullik
 Аватар для Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 297
Завершенные тесты: 1
25.05.2013, 17:28     Односвязный список, реализация #1
Добрый вечер!

Пытаюсь разобраться как работают списки. Делаю последовательный односвязный список, в который можно добавить элемент, хотя бы первый (один).

Подскажите, пожалуйста, правильно ли я делаю?

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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
 
struct Lll
{
  Lll *next; //Указатель на след.элемент
  int ch; //Данные списка
};
 
void Lll_add(int a, Lll *end)
{
  Lll *Addelem = new Lll; //выделить память
  Addelem->ch = a; //внести данные
  Addelem->next = end; //пришить к списку
  end = Addelem;
}
 
void main()
{
    setlocale(0,"");
    int a;
    Lll St; //создаём список
    Lll *head=NULL; //указатель на голову списка
    Lll *end=NULL;  //указатель на конец списка
    cin >> a;
    Lll_add(a,end);
    
    
 
    cin.get();
    cin.get();
}

И ещё, подскажите, как вывести данный список?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2013, 17:28     Односвязный список, реализация
Посмотрите здесь:

реализация стека через односвязный список C++
Односвязный список C++
C++ Односвязный список.
Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке C++
Односвязный список C++
C++ Односвязный список
C++ Односвязный список (реализация без классов)
C++ Сформировать список из 10 книг, используя динамическую структуру данных односвязный список

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Рыжий Лис
Просто Лис
 Аватар для Рыжий Лис
209 / 164 / 44
Регистрация: 17.05.2012
Сообщений: 611
Записей в блоге: 4
25.05.2013, 19:25     Односвязный список, реализация #2
нет, не правильно.
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
struct Lll
{
  Lll *next; //Указатель на след.элемент
  int ch; //Данные списка
};
 
Lll* Lll_add1(int a)
{
  Lll *Addelem = new Lll; //выделить память
  Addelem->ch = a; //внести данные
  Addelem->next = NULL;
  return Addelem;
}
// Добавление в список
void add(int a, Lll *beg)
{ Lll  *ne = new Lll ;  //новый элемент списка
  ne->ch = a; //внести данные
  ne->next = NULL;
  Lll *temp = beg;
  while (temp->next != NULL)
    temp = temp->next; // Поиск конца списка
  temp->next = ne;  // Привязывание нового элемента
}
void main()
{
    setlocale(0,"");
    int a;
    Lll *head=NULL; //указатель на голову списка
    cin >> a;
    head = Lll_add1(a);//первый элемент
 
    while(1){
    cin >> a;
    Lll_add(a,head);
    }
 
}
Добавлено через 5 минут
вывод можно сделать в цикле
C++
1
2
3
4
Lll *temp = beg;
  while (temp->next != NULL){
      out << temp->ch << endl;
}
Nullik
 Аватар для Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 297
Завершенные тесты: 1
26.05.2013, 10:21  [ТС]     Односвязный список, реализация #3
Рыжий Лис, огромное вам спасибо! Буду разбираться с данным кодом!!
Moonlit
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
04.12.2016, 20:16     Односвязный список, реализация #4
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Lll_add(a,head);
можно узнать, что обозначает эта строчка?
Mathist
30 / 30 / 18
Регистрация: 18.04.2014
Сообщений: 76
Завершенные тесты: 1
04.12.2016, 20:25     Односвязный список, реализация #5
Moonlit, это вызов функции для добавления элемента a в список head.
Только должно быть add(a,head);, т.к. в переделанном варианте рыжего лиса нет функции Lll_add.
Yandex
Объявления
04.12.2016, 20:25     Односвязный список, реализация
Ответ Создать тему
Опции темы

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