Читайте также:
|
|
#include <conio. h>
#include <iostream. h>
struct stk
{ int inf;
stk *a; } st;
stk *adst(stk *, int);
stk *del(stk *);
void addell(stk *);
int main(int argc, char* argv[])
{ int i, inf, n=8;
stk *st=NULL;
for (i=0; i<n; i++)
{ cout << "Vvedite element " << i+1 << ": ";
cin >> inf; st=adst(st, inf);
}
addell(st); del(st); getch();
return 0; }
stk *adst(stk *st, int inf)
{ stk *spt=new stk;
spt-> inf = inf;
spt->a=st; return spt;
}
stk *del(stk *st)
{ int inf; stk *spt;
while (st!=NULL)
{ spt=st; st=st->a; inf =spt-> inf;
cout << inf << " "; delete spt;
} cout << endl; return NULL;
}
void addell(stk *st)
{ int inf; stk *spt;
while (st->a!=NULL)
{ st=st->a; }
cout << "Vvedite chislo: ";
cin >> inf; spt=new stk;
st->a=spt; spt-> inf = inf;
spt->a=NULL; }
Написать программу формирующую стек из 5 чисел. Добавить элемент в начало стека.
Предусмотреть вывод результата и очистку стека в конце работы.
#include <conio. h>
#include <iostream. h>
struct stk
{ int inf;
stk *a; } st;
stk *adst(stk *, int);
stk *del(stk *);
int main(int argc, char* argv[])
{ int i, inf, n=5; stk *st=NULL;
for (i=0; i<n; i++)
{ cout << "Vvedite element " << i+1 << ": ";
cin >> inf; st=adst(st, inf);
}
cout << "Vvedite shislo: ";
cin >> inf; st=adst(st, inf);
del(st); getch(); return 0;
}
stk *adst(stk *st, int inf)
{ stk *spt=new stk;
spt-> inf = inf; spt->a=st;
return spt;
}
stk *del(stk *st)
{ int inf; stk *spt;
while (st!=NULL)
{ spt=st; st=st->a; inf =spt-> inf;
cout << inf << " ";
delete spt; }
cout << endl; return NULL; }
Написать программу формирующую стек из 8 чисел. Удалить все отрицательные элементы стека. Предусмотреть вывод результата и очистку стека в конце работы.
#include <conio. h>
#include <iostream. h>
struct stk
{ int inf;
stk *a; } st;
stk *adst(stk *, int);
stk *delall(stk *);
stk *dell(stk *);
int main(int argc, char* argv[])
{ int i, inf, n=8; stk *st=NULL;
for (i=0; i<n; i++)
{ cout << "Vvedite element " << i+1 << ": ";
cin >> inf; st=adst(st, inf); }
st=dell(st); delall(st); getch();
return 0;
}
stk *adst(stk *st, int inf)
{ stk *spt=new stk;
spt-> inf = inf; spt->a=st;
return spt; }
stk *delall(stk *st)
{ int inf; stk *spt;
while (st!=NULL)
{ spt=st; st=st->a; inf =spt-> inf;
cout << inf << " ";
delete spt; }
cout << endl; return NULL; }
stk *dell(stk *st)
{ stk *spt;
while (st-> inf <0&&st->a!=NULL)
{ spt=st; st=st->a; delete spt;
}
if (st->a==NULL)
if (st-> inf <0)
return NULL;
else return st; spt=st;
while (spt!=NULL)
{ if (spt->a->a==NULL)
if (spt->a-> inf <0) spt->a=NULL;
return st; }
else return st;
if (spt->a-> inf <0) spt->a=spt->a->a;
else spt=spt->a;
} return st; }
Пять элементов стека. Удалить чётные из них.
#include <conio. h>
#include <iostream. h>
struct stk
{ int inf; stk *a; } st;
stk *adst(stk *, int);
stk *del all (stk *);
stk *dell(stk *);
int main(int argc, char* argv[])
{ int i, inf, n=5; stk *st=NULL;
for (i=0; i<n; i++)
{ cout << "Vvedite element " << i+1 << ": ";
cin >> inf; st=adst(st, inf); }
st=dell(st); delall(st); getch();
return 0; }
stk *adst(stk *st, int inf)
{ stk *spt=new stk;
spt-> inf = inf; spt->a=st;
return spt; }
stk *delall(stk *st)
{ int inf; stk *spt;
while (st!=NULL)
{ spt=st; s t=st->a; inf =spt-> inf;
cout << inf << " "; delete spt; }
cout << endl; return NULL; }
stk *dell(stk *st)
{ stk *spt;
while (st-> inf %2==0&&st->a!=NULL)
{ spt=st; st=st->a; delete spt; }
if (st->a==NULL)
if (st-> inf %2==0) return NULL;
else return st; spt=st;
while (spt!=NULL)
{ if (spt->a->a==NULL)
if (spt->a-> inf %2==0)
{ spt->a=NULL; eturn st; }
else return st;
if (spt->a-> inf %2==0)
spt->a=spt->a->a;
else spt=spt->a; }
return st; }
Дата добавления: 2015-12-08; просмотров: 46 | Нарушение авторских прав