cout << " STREET: ";
in >> str;
ed-> education -> street=strdup(str);
cout << " HOUSE: ";
in >> ed->education->house;
cout << " SPECIALNOST: ";
in >> str;
ed-> proffs -> name =strdup(str);
cout << " FORMA OBUCHENIYA: ";
in >> str;
ed-> proffs -> from=strdup(str);
cout << " KONKURS: ";
in>> ed-> proffs -> competition;
cout << " OPLATA: ";
in >> ed-> proffs ->size_pay;
delete []str; //osvobojdenie pamyati
return in; //vernyt' potok
}
//добавление нового элемента в список
educational* input_new (educational* &ed)
{
educational *work=ed; //sohranenie elementa
ed=new educational; //sozdanie novogo elementa
if (ed==NULL) //esli pamyat' ne vudelilas'
{
ed=work; //vozvrat v ishodnui spisok
return NULL;
}
cin >> ed; //vvedem element
if (work==NULL) //esli pervui element v spiske
ed->previous=NULL;
else//esli ne pervui element
{
ed->previous=work; //vstavlyaem novui element
work->next=ed; //v konec spiska
}
ed->next=NULL;
return ed; //vernyt' novui element
}
//удаление элемента из списка
educational* delete_element (educational* &ed, educational* &begin)
{
educational *work;
if ((ed->previous==NULL)&&(ed->next==NULL)) //esli odin element v spiske
begin=NULL; //to delaem spisok pystum
if ((ed->previous==NULL)&&(begin!=NULL)) //esli pervui element v spiske
{
begin=ed->next; //nachinaem spisok so vtorogo elementa
ed->next->previous=NULL;
}
if ((ed->next==NULL)&&(begin!=NULL)) //esli poslednii element v spiske
ed->previous->next=NULL; //to ydalyaem ssulky na nego
if ((ed->next!=NULL)&&(ed->previous!=NULL)) //esli element v seredine spiska
{
ed->previous->next=ed->next; //to peredeluvaem ssulki
ed->next->previous=ed->previous;}
work=ed->previous;
delete []ed-> education -> city;
delete []ed-> education -> street;
delete []ed-> proffs -> name;
delete []ed-> proffs -> from;
delete ed; //ydalyaem ob'ekt
ed=work; //vernyt' predudyshii element
return work;
}
//poisk poslednego elementa v spiske
educational* find_to_end (educational* begin)
{
educational* work=begin;
if(work!=NULL) //esli ne pustoi to iskat'
while((work->next!=NULL)) //esli tekyshii element ne poslednii
work=work->next; //to perehodim k sled. elementy
return work; //vernyt' poslednii element
}
//podshet kol-va elementov v spiske
int count_to_list (educational* begin)
{
int count=1;
educational* work=begin; //nachinaem s pervogo elementa
if (work==NULL) //esli spisok pystoi
count=0; //to kol-vo = 0
else
while(work=work->next) //dvigaemsya poka ne poslednii
count++;
return count; //vernyt' kol-vo elementov v spiske
}
//ydalit' ves' spisok
educational* delete_all (educational* &end, educational* &begin)
{
while(begin!=NULL) //poka spisok ne stanet pystum
if(end==NULL) //esli end-element ydalen
end=find_to_end(begin); //to ish'em konec spiska
else
delete_element (end, begin); //inache ydalyaem element
return end;
}
//jdem najatiya klavishi
int wait_key(void)
{
return getch(); //vernyt' vvedennui simvol
}
//sozdanie novogo spiska
educational* new_list (educational* &end, educational* &begin)
{
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.