Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
MastAKK
145 / 136 / 18
Регистрация: 13.10.2012
Сообщений: 592
#1

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

04.04.2013, 16:46. Просмотров 269. Ответов 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); //вызываем ввод
}

http://www.cyberforum.ru/cpp-beginners/thread376641.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2013, 16:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проблемы со списком, в чем ошибка? (C++):

Проблемы со списком
Никак не получается разобраться со списками. В программе вроде создаю...

Проблемы с динамическим списком
Почему-то выводит ошибку во время выполнения программы &quot;Необработанное...

Ошибка со списком с кастомным классом
Есть один список с кастомным классом gameObject. Прототип в game.h: extern...

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

Ошибка при инициализации вектора списком
В книге Страуструпа элементы вектора объявляются так vector&lt;int&gt; v = { 5 , 7 ,...

3
lemegeton
2933 / 1362 / 467
Регистрация: 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 / 18
Регистрация: 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
2933 / 1362 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
04.04.2013, 18:44 #4
Цитата Сообщение от MastAKK Посмотреть сообщение
в чем у меня в коде проблема?
Он не составляет связный список. Вынесите составление связного списка в отдельную функцию и все поймете.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2013, 18:44
Привет! Вот еще темы с решениями:

Ошибка со списком, возможно студия тупит
Нужен список, начал вспоминать с банального, но не даёт... Выводит ошибку:...

Ошибка при работе со списком: необъявленный идентификатор
не могу исправить ошибки((( #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

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

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


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

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

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