Читайте также:
|
|
#include <conio. h>
#include <iostream. h>
struct ochd
{ int inf; ochd *a; } *sp;
void addochd(ochd **, ochd **, int);
void delochd(ochd **, ochd **);
void delotr(ochd **, ochd **);
int main(int argc, char* argv[])
{ int i, inf; ochd *spk; sp=spk=NULL;
for (i=0; i<5; i++)
{ cout << "Vvedite element " << i+1 << ": ";
cin >> inf; addochd(&sp, &spk, inf); }
delotr(&sp, &spk); delochd(&sp, &spk);
getch(); return 0; }
void addochd(ochd **sp, ochd **spk, int inf)
{ ochd *spt=new ochd; spt-> inf = inf;
spt->a=NULL;
if (*spk==NULL) *sp=*spk=spt;
else { (*spk)->a=spt; *spk=spt; } }
void delochd(ochd **sp, ochd **spk)
{ int inf; ochd *spt;
while (*sp!=NULL)
{ inf =(*sp)-> inf; cout << inf << " ";
spt=*sp; *sp=(*sp)->a; delete spt; }
cout << endl; }
void delotr(ochd **sp, ochd **spk)
{ ochd *spt, *st;
while ((*sp)!=NULL&&(*sp)-> inf <0)
{ st=*sp; *sp=(*sp)->a; delete st; }
spt=*sp;
while (spt->a!=*spk)
{ if (spt->a-> inf <0)
{ st=spt->a; spt->a=spt->a->a; delete st; }
else spt=spt->a; }
if (spt->a-> inf <0) { *spk=spt;
(*spk)->a=NULL; } }
Написать программу формирующую однонаправленую очередь из 5 чисел. Удалить все положительные элементы из очереди.
Предусмотреть вывод результата и очистку очереди в конце работы.
#include <conio. h>
#include <iostream. h>
struct ochd
{ иint inf; ochd *a; } *sp;
void addochd(ochd **, ochd **, int);
void delochd(ochd **, ochd **);
void delpol(ochd **, ochd **);
int main(int argc, char* argv[])
{ int i, inf; ochd *spk; sp=spk=NULL;
for (i=0; i<5; i++)
{ь cout << "Vvedite element " << i+1 << ": ";
cin >> inf; addochd(&sp, &spk, inf); }
delpol(&sp, &spk); delochd(&sp, &spk);
getch(); return 0; }
void addochd(ochd **sp, ochd **spk, int inf)
{ ochd *spt=new ochd; spt-> inf = inf;
spt->a=NULL; if (*spk==NULL)
*sp=*spk=spt; else
{ (*spk)->a=spt; *spk=spt; } }
void delochd(ochd **sp, ochd **spk)
{ int inf; ochd *spt;
while (*sp!=NULL)
{ inf =(*sp)-> inf; cout << inf << " ";
spt=*sp; *sp=(*sp)->a; delete spt; }
cout << endl; }
void delpol(ochd **sp, ochd **spk)
{ ochd *spt, *st;
while ((*sp)!=NULL&&(*sp)-> inf >0)
{ st=*sp; *sp=(*sp)->a; delete st; }
spt=*sp;
while (spt->a!=*spk)
{ if (spt->a-> inf >0)
{ st=spt->a; spt->a=spt->a->a; delete st; }
else spt=spt->a; }
if (spt->a-> inf >0)
{ *spk=spt; (*spk)->a=NULL; } }
Написать программу формирующую однонаправленую очередь из 5 чисел. Удалить максимальный элемент очереди.
Предусмотреть вывод результата и очистку очереди в конце работы.
#include <conio. h>
#include <iostream. h>
struct ochd
{ int inf; ochd *a; } *sp;
void addochd(ochd **, ochd **, int);
void delochd(ochd **, ochd **);
void delmax(ochd **, ochd **, ochd**);
int main(int argc, char* argv[])
{ int i, n, inf; ochd *spk, *spt, *st;
sp=spk=NULL;
for (i=0; i<5; i++)
{ cout << "Vvedite element " << i+1 << ": ";
cin >> inf; addochd(&sp, &spk, inf); }
spt=st=sp; n=st-> inf;
while (st->a!=NULL)
{ if (st->a-> inf >n)
{spt=st; n=st->a-> inf; }
st=st->a; }
if (sp-> inf ==n)
{ spt=sp; sp=sp->a; delete spt; }
else delmax(&sp, &spk, &spt);
delochd(&sp, &spk); getch();
return 0; }
void addochd(ochd **sp, ochd **spk, int inf)
{ ochd *spt=new ochd; spt-> inf = inf;
spt->a=NULL; if (*spk==NULL)
*sp=*spk=spt; else
{ (*spk)->a=spt; *spk=spt; } }
void delochd(ochd **sp, ochd **spk)
{ int inf; ochd *spt;
while (*sp!=NULL)
{ inf =(*sp)-> inf; cout << inf << " ";
spt=*sp; *sp=(*sp)->a; delete spt; }
cout << endl; }
void delmax(ochd **sp, ochd **spk, ochd **spt)
{ ochd *st;
if ((*spt)->a->a==NULL)
{ st=(*spt)->a; (*spt)->a=NULL; delete st; }
else { st=(*spt)->a; (*spt)->a=(*spt)->a->a;
delete st; }}
Написать прогу формирующую однонаправленую очередь из 5 чисел. Добавить элемент после MIN элемента очереди.
Дата добавления: 2015-12-08; просмотров: 45 | Нарушение авторских прав