Работа вам нужна срочно. Не волнуйтесь, уложимся!
Заполните, пожалуйста, данные для автора:
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Построить класс для работы с односвязным списком. Элементы списка - целые числа. Создать список List1. Построить список List2, содержащий 4 порядковые номера максимальных элементов списка List1.
#include
#include
#include
#include
class list{ //коробочка
public:
int inf;
list*next;
};
class List1{ //организуем класс для работы с односвязным списком
int a; //а-кол-во элементов в последовательности
public:
list*top; //создается объект типа list
List1(){ //конструктор
top=NULL;
a=0;
}
List1 (const List1 &ob); //конструктор копирования.
// stack(double inf);
~List1(){ //дестрyктор
if(top!=NULL){
list *Current=top;
while(Current){
top=top->next;
delete Current;
Current=top;
}
}
}
void CreateList(); //создание списка
void PrintList(); //вывод списка
void List2(); //созд второго списка
};
void List1::CreateList(){
ifstream F1("List1.txt"); //открываем файл
list *Current=NULL,*Last=top; //ставим на 0 текущий указатель
if(!F1){
cout<<"File is not open"<
return;
}
int i;
while(!F1.eof()){
Current=new list; //создаем динамическую структуру
F1>>i; //считываем информацию в переменную
a++; //счетчик кол-ва эл-тов
if(F1.eof())
return;
Current->inf=i; //заполняем текущую коробочку
Current->next=NULL;
if(Last==NULL)
top=Last=Current; //если список пуст
else{
Last->next=Current;
Last=Current;
}
}
}
void List1::PrintList(){
if(top==NULL){
cout<<"List is empty";
getch();
}
else{
cout<<"My list"<
while(Current){
cout<
Current=Current->next;
}
}
cout<<'\n';
}
void List1::List2(){
a=a-1;
int *mas1=new int[a];
ifstream F1("List1.txt");
if(!F1){
cout<<"File is not open"<
return;
}
for(int i=0;!F1.eof();i++){
F1>>mas1[i];
} } } int main(){
for(int i=0;icout<
cout<<'\n';
list *Current=NULL,*Last=NULL;
for(int i=0;iCurrent=new list; //создаем динамическую структуру
int max=0;
for(int j=0;jif(mas1[j]>mas1[max])
max=i;
}
Current->inf=max; //заполняем текущую коробочку
Current->next=NULL;
if(Last==NULL)
top=Last=Current; //если список пуст
else{
Last->next=Current;
Last=Current;
}
for
}
List1 ob1;
ob1.CreateList();
ob1.PrintList();
ob1.List2();
getch();
return 1;
}