Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 592
#1

Проблемы со списком, в чем ошибка? - C++

04.04.2013, 16:46. Просмотров 250. Ответов 3
Метки нет (Все метки)

Итак, изучал я, значит, C style lists (не знаю, как будет по-русски) и столкнулся с такой проблемой: надо его заполнить. Вроде все просто, написал следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef ST_H
#define ST_H
 
//st.h
 
template <typename T>
class st{
public:
    st(T n);
    T a;
    st<T>* next;
};
 
template <typename T>
st<T>::st(T n){//конструктор
    a = n;
}
 
#endif // ST_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
//main.cpp
#include <iostream>
 
#include "include\st.h"
 
using namespace std;
 
void enter(st<int>* h){ //ввод
    int i;
    cin >> i;
    h = new st<int>(i); //указываем голове значение i
    st<int>* c = h; //создаем собственно сам "бегающий" указатель на элемент списка, с которым работаем
    cin >> i;
    while(i != 0){ //0 - конец ввода
        c = new st<int>(i); //добавляем в список новое значение
        c = c->next; //перескакиваем на следующий элемент
        cin >> i; //ещё раз вводим i
    }
    cout << h->next->a;//дебаговый вывод, тут-то он и выводит непонятные числа
}
 
int main(){
    st<int>* h; //указатель на голову
    enter(h); //вызываем ввод
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2013, 16:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы со списком, в чем ошибка? (C++):

В чем разница между простым линейным списком, и динамическим линейным списком? - C++
вопрос в теме

Проблемы со списком - C++
Никак не получается разобраться со списками. В программе вроде создаю простейший список из 2х элементов. Далее в цикле вывожу это все....

Проблемы с динамическим списком - C++
Почему-то выводит ошибку во время выполнения программы &quot;Необработанное исключение в &quot;0x501ed442 (msvcr100d.dll)&quot; в &quot;Динамично.exe&quot;:...

Ошибка со списком с кастомным классом - C++
Есть один список с кастомным классом gameObject. Прототип в game.h: extern std::list&lt;gameObject&gt; gameObjectList; Объявление в...

Ошибка в указателе при работе со списком - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstdio&gt; #include &lt;cstring&gt; #include&quot;string.h&quot; using...

Ошибка при инициализации вектора списком - C++
В книге Страуструпа элементы вектора объявляются так vector&lt;int&gt; v = { 5 , 7 , 9 , 4 , 6 , 8 } ;В netbeans (linux ubuntu) ide выдаёт...

3
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
04.04.2013, 17:39 #2
Цитата Сообщение от MastAKK Посмотреть сообщение
template <typename T>
class st{
public:
* * st(T n);
* * T a;
* * st<T>* next;
};
template <typename T>
st<T>::st(T n){//конструктор
* * a = n;
}
Это ни разу не С-style lists.

C-Style list односвязный это как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
struct Node {
    void *data;
    Node *next;
};
 
void insertAfter(
    struct Node *node,
    struct Node *newNode ) {
    newNode->next = node->next;
    node->next = newNode;
}
0
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 592
04.04.2013, 17:45  [ТС] #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Это ни разу не С-style lists.

C-Style list односвязный это как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
struct Node {
    void *data;
    Node *next;
};
 
void insertAfter(
    struct Node *node,
    struct Node *newNode ) {
    newNode->next = node->next;
    node->next = newNode;
}
ладно, не в этом дело, не подскажете, в чем у меня в коде проблема?
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
04.04.2013, 18:44 #4
Цитата Сообщение от MastAKK Посмотреть сообщение
в чем у меня в коде проблема?
Он не составляет связный список. Вынесите составление связного списка в отдельную функцию и все поймете.
0
04.04.2013, 18:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2013, 18:44
Привет! Вот еще темы с ответами:

Ошибка со списком, возможно студия тупит - C++
Нужен список, начал вспоминать с банального, но не даёт... Выводит ошибку: Необработанное исключение по адресу 0x00E560B9 в Struct.exe:...

Ошибка 0xC0000005 при работе с двухсвязным списком - C++
В общем и целом, пытаюсь реализовать дерево как двунаправленный список для сортировки заданного массива симметричным обходом. Получается,...

Ошибка при работе со списком: необъявленный идентификатор - C++
не могу исправить ошибки((( #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;ctime&gt; using namespace std; template&lt;class T&gt;...

Как реализовать работу со списком строк и списком цифр в классе List? - C++
Добрый день! Проблема такая Есть класс-список: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; using namespace...


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

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

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