Читайте также:
|
|
1. Робота зі списками.
Тип даних, що зберігаються в списку double. Реалізувати наступні дії:
а) Заповнення списку та вивід списку на екран;
б) пошук найбільшого елементу списку;
в) перевірка, чи є в списку введений елемент, якщо є їх кількість;
г) заміна заданого елементу на інший.
#include "stdafx.h"
#include "iostream.h"
#include <windows.h>
#include <string.h>
#include <stdio.h>
typedef double TE;
struct spisok
{
TE E;
spisok* next;
};
TE d,s,k,max,el1,el2,m;
spisok*vvod();
void print(spisok*);
void del(spisok*);
void found(spisok*,TE);
void kolfound(spisok*,TE);
void maximus(spisok*,TE);
void zamena(spisok*,TE,TE);
main()
{
SetConsoleCP(1251); //инициализация русского шрифта
SetConsoleOutputCP(1251); //инициализация русского шрифта
s=0;max=-1000;
cout<<"введите список элементов"<<endl;
spisok*head=vvod();
cout<< "введите элемент наличие которого хотите узнать"<<endl;
cin>>d;
found(head,d);
cout<<"//////////////////////////"<<endl;
cout<< "введите элемент количество которых в списке хотите узнать"<<endl;
cin>>k;
kolfound(head,k);
cout<<"количество элементов=" <<s<<endl;
cout<<"//////////////////////////"<<endl;
maximus(head,max);
cout<<"максимальный элемент "<<m<<endl;
cout<<"//////////////////////////"<<endl;
cout<<"введите элемент который хотите заменить ";
cin>>el1;
cout<<"введите элемент на который хотите заменить ";
cin>>el2;
zamena(head,el1,el2);
print(head);
cout<<"//////////////////////////"<<endl;
del(head);
}
spisok*vvod() //заповнення списку
{
TE el;
spisok*head=new spisok,*tek,*tm;
cin>>el;
tek=head;
tek->E=el;
while(el!=0)
{
tm= new spisok;
cin >> el;
tm->E=el;
tek->next=tm;
tek=tm;
}
tek->next=NULL;
return head;
}
void print(spisok*head) //вивід на екран
{
spisok*tek;
tek=head;
while(tek)
{
cout<<tek->E<<endl;
tek=tek->next;
}
}
void del(spisok*head) //видалення списку
{
spisok*tm,*tek;
tek=head;
while(tek!=NULL)
{
tm=tek->next;
delete tek;
tek=tm;
}
}
void found(spisok*tek,TE d) //пошук елементу
{
if(tek->E==d) cout<<"этот элемент есть"<<endl;
else
if(tek->next!=NULL) found(tek->next,d);
else cout<<"этого элемента нет"<<endl;
}
void kolfound(spisok*tek,TE k) //підрахунок кількості заданого елементу
{
if(tek->E==k) s++;
if(tek->next!=NULL) kolfound(tek->next,k);
}
void maximus(spisok*tek,TE max) //пошук максімального елементу
{
if(tek->E>max) max=tek->E;
if(tek->next!=NULL) maximus(tek->next,max);
else m=max;
}
void zamena (spisok*tek, TE el1, TE el2) // заміна елементів
{
if(tek->E==el1) tek->E=el2;
if(tek->next!=NULL) zamena(tek->next,el1,el2);
}
Дата добавления: 2015-09-01; просмотров: 30 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Варіанти завдання | | | Програма на розрахунок відпускних. |