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

Связный список, потеря данных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не работает библиотека, что делать? Или где ее скачать для Visual Studio C++ 2013? http://www.cyberforum.ru/cpp-beginners/thread1229190.html
У меня библиотека "keygen.h" не открывается:cry:почему:wall:как можно исправить или где скачать файлы? Вот ссылка на ошибку:help: Заранее спасибо!:thank_you:
C++ Хочу static "с домином и монашками" Здравствуйте. class My_class { Any_type x; }; Объект х будет одинаковым у объектов этого класса, поэтому я хотел бы сделать его static. С другой стороны, объекты My_class будут создаваться нечасто, и не хотелось бы, чтобы х висел в памяти в течение всего времени работы программы. Можно это как-нибудь разрулить? http://www.cyberforum.ru/cpp-beginners/thread1229110.html
Сумма фунтов шиллингов и пенсов C++
Задача: Программа должна получать от пользователя две денежные суммы в фунтах шиллингах и пенсах,складывать их и выводить на экран. Необходимо разработать три функции 1)Первая функция должна получать от пользователя число фунтов шиллингов и пенсов и возвращать соответствующее значение типа sterling как я понимаю, нужно воспользоваться чем то типо - int sterling(int, int); int main()...
C++ Кто нибудь, когда нибудь встречал Шрёдинбаг?
Шрёдинбаг (англ. Schroedinbug) — термин, используемый в программировании для описания программной ошибки, которая никак не проявляет себя, однако внезапно возникает, если кто-то наткнётся на неё в исходном коде или попытается использовать программу в необычных условиях и осозна́ет, что система вообще не могла работать при наличии такой ошибки. Так вот кто нибудь, когда нибудь встречал такую...
C++ Std::regex не работает http://www.cyberforum.ru/cpp-beginners/thread1229087.html
Здравствуйте, имеется регекс для следущего паттерна: "слово пробел слово newline . Что-то вроде этого: слово1 слово2 прочие слова регекс следующий:
C++ Полиморфизм классов ввода\вывода У меня есть функция, которая может выполнять некоторые действия и для класса ofstream, и для класса ifstream, и соответственно, должна принять один из объектов этих классов. Как можно это устроить? Можно ли тут воспользоваться базовым классом этих классов в форме полиморфизма? Подскажите пожалуйста. подробнее

Показать сообщение отдельно
FloraWinx
4 / 4 / 1
Регистрация: 05.10.2013
Сообщений: 122

Связный список, потеря данных - C++

18.07.2014, 02:45. Просмотров 255. Ответов 5
Метки (Все метки)

Есть один список нахожу по ключу значения удаляю его из списка (все работает) , потом пытаюсь то что удалил внести в новый список и получаю ошибку
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
152
153
154
155
156
157
158
159
160
161
162
163
#include <iostream>
#include <conio.h>
using namespace std;
 
 
struct BUS
{
    int bus_number;
    char driver_surname[10];
    char driver_name[10];
    int route_number;
};
 
 
   struct NODE {   // структура узел
    BUS  route;
    BUS bus; 
    NODE *next; 
    NODE *prev; 
 };
 
 
 
   NODE *first(BUS bus);
   NODE *find(NODE *const pbeg , int i);
   bool remove(NODE**pbeg , NODE **pend, int key);
 
 
   void get_info (BUS bus , NODE *pb){   
   cout<<"Bus nubmer:"<< pb->bus.bus_number<<"\n";
   cout<<"Driver name:"<<pb->bus.driver_name<<"\n";
   cout<<"Driver surname:"<<pb->bus.driver_surname<<"\n";
   cout<<"Bus route_number:"<<pb->bus.route_number<<"\n"; }
 
BUS **fill (BUS *bus){
cout<<"Bus number:";cin>>bus->bus_number;
cout<<"Driver name:"; cin>>bus->driver_name;
cout<<"Driver surname:";cin>>bus->driver_surname;
cout<<"Bus route number:";cin>>bus->route_number;
return &bus;
 }
 
 NODE * add_first (BUS bus){
 
     NODE *pv =  new NODE;
     pv->bus=bus;
     pv->next=0;
     pv->prev=0;
     return pv;
 }
 
 
 void add(NODE **pend , BUS bus){
     fill(&bus);
 
    NODE *pv = new NODE;
    pv->bus = bus;
    pv->next=0; 
    pv->prev=*pend;
    (*pend)->next=pv;
    *pend=pv;
 }
 
void add_route (NODE **pend , NODE *pv){
    
    //NODE *pv = new NODE;
    //pv->bus = *route;
    pv->next=0; 
    pv->prev=*pend;
    (*pend)->next=pv;
    *pend=pv;
 
}
 
 
 NODE *find (NODE * const pbeg , int key) {
        NODE *pv = pbeg;
        while(pv){
            if(pv->bus.bus_number == key ) break;
                  pv = pv->next;}
        return pv;
        }
 
 bool remove (NODE ** pbeg, NODE **pend , int key){
if(NODE *pkey = find(*pbeg, key)){
    if(pkey==*pbeg) {
        *pbeg=(*pbeg)->next;
        (*pbeg)->prev= 0;}
    else if(pkey==*pend){
        *pend = (*pend)->prev;
        (*pend)->next=0;}
    else {
        (pkey->prev)->next= pkey->next;
        (pkey->next)->prev = pkey->prev;}
    delete pkey;
    return true;
    }
return false;
}
 
 
 int main(){
 
int n ;
cout<<"How much buses you want to place in your park?:";
cin>>n;
 
   BUS bus;
   fill(&bus);
   NODE *pbeg = add_first(bus);
   NODE *pend = pbeg;
   
 
 for( int i=0;i<n-1;i++){
    add(&pend ,bus);
    cout<<endl;}
 
NODE *pb = pbeg;
 
 
    system("cls");
 int l=1;
 
    while(pb){
    cout<<l<<")";
    l++;
    get_info(bus , pb);
    cout<<endl;
    pb=pb->next; }
 
 int key;
cout<<"Enter which bus you want to delete ? enter bus number"<<endl;
cin>>key;
 
NODE *Route;
NODE *pv=find(pbeg,key);
add_route( &Route,pv);
remove(&pbeg, &pend , key);
 
 
 
//if(!remove(&pbeg, &pend , key)) cout<<"Not found";
 
 
NODE *pvv = pbeg;
pv = pbeg;
while (pvv)
{
get_info(bus,pv);
pvv=pvv->next;
cout<<"--------------------"<<endl;
}   
 
 
 
 
 cout<<"Now working with route";
 
 
 
 
 
     return 0;}

думаю дело в этом но как не переписывал не могу запустить без потери данных
C++
1
2
3
4
NODE *Route;
NODE *pv=find(pbeg,key);
add_route( &Route,pv);
remove(&pbeg, &pend , key);
Добавлено через 2 минуты
ругается на эту строчку
(*pend)->next=pv;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru