45 / 14 / 4
Регистрация: 13.03.2013
Сообщений: 302
1

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

25.05.2013, 17:28. Показов 27633. Ответов 4
Метки нет (Все метки)

Добрый вечер!

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

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

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();
}

И ещё, подскажите, как вывести данный список?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2013, 17:28
Ответы с готовыми решениями:

Реализация стека через односвязный список
вот что я накалякал... должно по идее выводить первый элемент стека (ну лн в принципе пока тут и...

Односвязный список (реализация без классов)
Задача проста: создать список из слов, вводимых с клавиатуры, и вывести его на консоль. Всё вводит...

Сформировать список из 10 книг, используя динамическую структуру данных односвязный список
друзья спасайте Сформировать список из 10 книг, используя динамическую структуру данных...

Создать класс «Квартира», в котором список комнат реализовать как односвязный список
Добрый день,написал фот такой клас по заданию:Создать класс «Квартира», в котором список комнат...

4
Просто Лис
Эксперт Python
4407 / 2804 / 929
Регистрация: 17.05.2012
Сообщений: 8,190
Записей в блоге: 9
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;
}
1
45 / 14 / 4
Регистрация: 13.03.2013
Сообщений: 302
26.05.2013, 10:21  [ТС] 3
Рыжий Лис, огромное вам спасибо! Буду разбираться с данным кодом!!
0
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 36
04.12.2016, 20:16 4
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Lll_add(a,head);
можно узнать, что обозначает эта строчка?
0
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
04.12.2016, 20:25 5
Moonlit, это вызов функции для добавления элемента a в список head.
Только должно быть add(a,head);, т.к. в переделанном варианте рыжего лиса нет функции Lll_add.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2016, 20:25

Заменить массив структур на односвязный список, и на двусвязный список
Взять текст задания и заменить массив структур на односвязный список, и на двусвязный список ...

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов
Задание: создайте двусвязный список групп факультета. Каждая группа представляет собой односвязный...

Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке
Задали односвязный линейный список с целыми числами. Создать новый список, который содержит...

Преобразовать односвязный список в двусвязный список
Доброго времени суток! Помогите, пожалуйста, преобразовать программу из односвязного списка в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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