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

Ошибка в списке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализовать класс Vector (конструктор, интерфейс) http://www.cyberforum.ru/cpp-beginners/thread724997.html
Добрый день. Нужна небольшая помощь (проверка) в редактировании (исправлении) кода. Задание - В файле исходного кода реализовать класс Vector, обеспечить наличие конструкторов и надёжный интерфейс так, чтобы при работе с исходным кодом (при выполнении различных алгоритмов с вектором) не возникло ошибок. Хотел бы увидеть замечания или исправления по поводу работы. Так же был бы очень...
C++ Найти минимальный элемент среди лежащих выше главной диагонали В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти минимальный элемент среди лежащих выше главной диагонали. Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не... http://www.cyberforum.ru/cpp-beginners/thread724994.html
C++ Как из файла считать данный, и как эти n чисел запихнуть в массив
Дано n (n<=32000) натуральных чисел xi, (xi<m). Необходимо установить, можно ли разбить их на пары таким образом, чтобы сумма чисел в каждой паре не превышала m (m<=100). Файл input.txt организован следующим образом: в первой строке через пробел записаны число n, затем m, далее следуют n строк, по одному числу в каждой. В файл output.txt необходимо вывести «YES», если данный набор можно...
C++ DES. Мусор при расшифровке
При расшифровке появляются лишние символы. Знаю, с чем это связано. Не знаю, как избавиться.
C++ Ввести две строки текста, изъять из длинного строки все вхождения короткого строки. Вывести новую строку на экран. исправить код http://www.cyberforum.ru/cpp-beginners/thread724914.html
Ввести две строки текста, изъять из длинного строки все вхождения короткого строки. Вывести новую строку на экран. #include <string> #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; void main() {
C++ Найти наименьший положительный элемент массива Задав одномерный массив целочисленных данных А в одном из заданных форматов, реализовать обработку массива, как указано в варианте. Длина статического массива N<=20. Значение N ввести с клавиатуры с проверкой на допустимые значения. Предусмотреть возможность ввода значений элементов массива пользователем и с помощью датчика случайных чисел. В программе должны быть предусмотрены функции... подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.12.2012, 17:28     Ошибка в списке
компиляция пофикшена, рантайм ошибки - нет
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
template<typename T>
class IList {
public:
    virtual void push_back(T val) = 0;
    virtual void push_front(T val) = 0;
    virtual void find(T val) = 0;
    virtual void insert(T val) = 0;
    virtual void print() = 0;
 
    virtual ~IList() {}
};
 
template <typename T>
class LinkedList : public IList<T>
{
public:
        LinkedList()
        {
              head=NULL;
              tail=NULL;
        };        
        ~LinkedList()
        {
                while(head)
                {
                    tail=head->next;
                    delete head;
                    head=tail;
                }
        }
 
        void push_back(T val)
        {
                Node* Temp;
                Temp=new Node;
                Temp->elem=val;
                if(head==0)
                {
                        head=Temp;
                        tail=Temp;
                        return;
                }
                tail->next=Temp;
                tail=Temp;
        }
 
        void print()
        {
                if (head==0)
                {
                        cout << "List is empty!";
                }
                for(Node* ptr=head; ptr!=0; ptr=ptr->next)
                {
                        cout<<ptr->elem<<" ";
                }
                cout<<"\n";
        }
 
       
 void push_front(T val)
        {
                Node* Temp;
                Temp=new Node;
                Temp->elem=val;
                Temp->next=head;
                head=Temp;
        }
 
 
        void find(T val)
        {
                if(head==0)
                {
                        cout <<  "List is empty!\n";
                }
                for(Node* ptr=head; ptr!=0; ptr=ptr->next)
                {
                        if(ptr->elem=val)
                                cout<<"Element "<< val <<" is found\n";
                        return;
                }
                cout<<"Element "<< val <<" is not found\n";
        }
        
        void insert(T val)
        {
                if(head==0)
                {
                        push_front(val);
                        return;
                }
                Node* Temp=new Node;
                Temp->elem=val;
                Node* founded=head;
                for(founded; founded!=0; founded=founded->next)
                {
                        if(founded->elem<val)
                                break;
                }
                if(founded==0)
                {
                        push_front(val);
                        return;
                }
                Temp->next=founded->next;
                founded->next=Temp;
        }
private:
        struct Node
        {
                Node()
                {
                 next=0;
                 elem=0;
                }
                Node* next;
                T elem;
        };
 
        Node* head;
        Node* tail;
};
 
 
int main()
{
        LinkedList<int> Lst;
        //Lst.push_front(5); // не устанавливает tail. следующий вызов крашится.
        Lst.push_back(10);
        Lst.push_back(15);
        Lst.push_front(1);
        Lst.push_back(25);
        Lst.push_back(4);
        /*Lst.insert(5);
        Lst.insert(10);
        Lst.insert(15);
        Lst.insert(1);
        Lst.insert(25);
        Lst.insert(4);*/
        Lst.print();
        Lst.find(15);
        Lst.print();
        getch();
        return 0;
}
 
Текущее время: 06:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru