С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Связный список, потеря данных - 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)Первая функция должна...
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
Сообщений: 123

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

18.07.2014, 02:45. Просмотров 278. Ответов 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;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.