Построить класс для работы с односвязным списком. Элементы списка - целые числа..

Пример 1:

Построить класс для работы с односвязным списком. Элементы списка - целые числа. Создать список 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"<getch();
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"<list*Current=top;
while(Current){
cout<inf<<' ';
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"<getch();
return;
}

for(int i=0;!F1.eof();i++){
F1>>mas1[i];

}
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
}

}

int main(){
List1 ob1;
ob1.CreateList();
ob1.PrintList();
ob1.List2();
getch();
return 1;
}

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!

Заполните, пожалуйста, данные для автора:

  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн