Witam.
Mam pewien problem z zadaniem odnośnie implementacji listy.
Zadanie brzmi
Przedstaw implementację listy jednokierunkowej w jęz. C/C++ . Zaimplementuj funkcje wyświetlania elementów listy, dodawania do listy oraz usuwania elementów z listy. Lista ma przechowywać elementy typu Integer z przedziału <1,50>. Lista musi przechowywać elementy w porządku od najmniejszego do największego elementu, czyli w momencie dodawania elementu należy go wstawić w odpowiednie miejsce.
Ja zrobiłem owe zadanie, natomiast problem gdzieś tkwi w rzekomej funkcji push_front().
Poniżej wstawiam kod źródłowym mojego zadania.
#include <iostream>
#include <list>
#include <windows.h>
using namespace std;
list <int> lista;
int wybor;
void wyswietl()
{
system("CLS");
cout<<" Lista: \n "<<endl;
for(list<int>::iterator i=lista.begin(); i!= lista.end(); ++i)
cout<<*i<<" ";
cout<<endl;
cout<<" \n"<<endl<<endl;
}
void push_front()
{
int liczba;
cout<<"Jaka liczbe wstawic na poczatek listy: ";
cin>>liczba;
if(liczba>50)
{
cout<<"Liczba jest za duza";
Sleep(1000);
}
else;
lista.push_front(liczba);
if(liczba>50)
{
lista.pop_front();
}
else;
lista.sort();
}
void size()
{
cout<<"Cyfr na liscie: "<<lista.size();
Sleep(2000);
}
void max_size()
{
cout<<"Max liczb na liscie: "<<lista.max_size();
Sleep(5000);
}
void empty()
{
cout<<"Czy lista jest pusta? -> ";
if (lista.empty()==1) cout<<"TRUE"; else cout<<"FALSE";
Sleep(2000);
}
void remove()
{
int liczba;
cout<<"Usun z listy wszystkie liczby rowne: ";
cin>>liczba;
lista.remove(liczba);
}
void reverse()
{
cout<<"Odwrocenie kolejnosci liczb";
lista.reverse();
Sleep(2000);
}
void exit()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),12);
cout<<"Koniec programu!";
Sleep(2000);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0);
}
int main()
{
do
{
wyswietl();
cout << " MENU:"<<endl;
cout << "1 -> Dodanie elementu"<<endl;
cout << "2 -> Liczba elementow na liscie"<<endl;
cout << "3 -> Max liczba elementow na liscie"<<endl;
cout << "4 -> Sprawdza czy lista jest pusta"<<endl;
cout << "5 -> Usuwa z listy wszystkie elementy"<<endl;
cout << "6 -> Odwracanie elementow na liscie"<<endl;
cout << "Podaj skrot akcji: ";
cin >> wybor;
switch (wybor)
{
case 1: push_front(); break;
case 2: size(); break;
case 3: max_size(); break;
case 4: empty(); break;
case 5: remove(); break;
case 6: reverse(); break;
case 7: exit(); break;
default:
cout<<"blad";
Sleep(2000);
break;
}
}
while(wybor!=7);
return 0;
}
Proszę o pomoc w tym zadaniu.
Pozdrawiam.