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

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

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

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

04.04.2013, 16:46. Просмотров 235. Ответов 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); //вызываем ввод
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2013, 16:46     Проблемы со списком, в чем ошибка?
Посмотрите здесь:

C++ Как реализовать работу со списком строк и списком цифр в классе List?
В чем ошибка ? C++
В чем разница между простым линейным списком, и динамическим линейным списком? C++
Ошибка 0xC0000005 при работе с двухсвязным списком C++
C++ в чем ошибка?
C++ Проблемы с динамическим списком
C++ Ошибка со списком, возможно студия тупит
В чем ошибка ? ? C++
Ошибка при работе со списком: необъявленный идентификатор C++
Ошибка со списком с кастомным классом C++
Ошибка при инициализации вектора списком C++
C++ Нужны задачки для упражнения в работе со списком, стеком, очередью и двусвязным списком

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2914 / 1343 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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;
}
MastAKK
 Аватар для MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
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;
}
ладно, не в этом дело, не подскажете, в чем у меня в коде проблема?
lemegeton
 Аватар для lemegeton
2914 / 1343 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
04.04.2013, 18:44     Проблемы со списком, в чем ошибка? #4
Цитата Сообщение от MastAKK Посмотреть сообщение
в чем у меня в коде проблема?
Он не составляет связный список. Вынесите составление связного списка в отдельную функцию и все поймете.
Yandex
Объявления
04.04.2013, 18:44     Проблемы со списком, в чем ошибка?
Ответ Создать тему
Опции темы

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