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

Линейный однонаправленный список - C++

Восстановить пароль Регистрация
 
_Vertigo_
13 / 13 / 2
Регистрация: 07.09.2013
Сообщений: 158
Завершенные тесты: 1
04.04.2014, 20:16     Линейный однонаправленный список #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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <vector>
#include <sstream>
template <class T> class list{
private:
    list *next;
    T value;
public:
    list () {
        next = NULL;
    }
    list* getNext (){
        return next;
    }
    void setValue(T val){ this->value = val;}
    T getValue(){
        return value;
    } 
    void addNewElement(T ob){
        this->next = new list();
        this->value = ob;
    }
    void showValue (){
        std::cout << value << " ";
    }
    int setSize(){
    }
    void show(){
        list *p = this;
        if ( p == NULL)
            std::cout << "Список пуст!" << std::endl;
        while (p != NULL){
            p -> showValue();
         p = p -> getNext();
        }
    }
};
int main(){
    list <int> list1;
    list <int> *p1;
    list <char> list2;
    list <char> *p2;
    list <float> list3;
    list <float> *p3;
    list <double> list4;
    list <double> *p4;
    list <std::string> list5;
    list <std::string> *p5;
    setlocale(LC_ALL, "Russian");
        list1.setValue(3);
        list1.addNewElement(2);
        p1 = list1.getNext();
        p1 -> addNewElement(4);
        p1 = p1 -> getNext();
        // -------
        list2.setValue('a');
        list2.addNewElement('d');
        p2 = list2.getNext();
        p2 -> addNewElement('v');
        p2 = p2 -> getNext();
        // -------
        list3.setValue(-3.1);
        list3.addNewElement(2.4);
        p3 = list3.getNext();
        p3 -> addNewElement(4.2);
        p3 = p3 -> getNext();
        // --------
        list4.setValue(3.4141241);
        list4.addNewElement(2.231241);
        p4 = list4.getNext();
        p4 -> addNewElement(4.3333);
        p4 = p4 -> getNext();
        // --------
        list5.setValue("проблема");
        list5.addNewElement("нет");
        p5 = list5.getNext();
        p5 -> addNewElement("проблемы");
        p5 = p5 -> getNext();
    std::cout << "Список элементов типа int:" << std::endl;
    list1.show();
    std::cout << std::endl;
    std::cout << "Список элементов типа char:" << std::endl;
    list2.show();
    std::cout << std::endl;
    std::cout << "Список элементов типа float:" << std::endl;
    list3.show();
    std::cout << std::endl;
    std::cout << "Список элементов типа double:" << std::endl;
    list4.show();
    std::cout << std::endl;
    std::cout << "Список элементов типа string:" << std::endl;
    list5.show();
    std::cout << std::endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2014, 20:16     Линейный однонаправленный список
Посмотрите здесь:

C++ линейный однонаправленный список (вопрос по сути)
C++ Линейный однонаправленный список; ошибка сегментации
C++ Считать числа из файла в линейный однонаправленный список
C++ Однонаправленный линейный список
C++ Линейный однонаправленный список
Линейный однонаправленный список C++
C++ Линейный циклический однонаправленный список
Линейный однонаправленный список C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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