1) to powinno być proste: w funkcji robimy listę stydentów i wskaźnik na tą klasę, jako argument bierzemy listę, ale koniecznie przez kopiowanie, dalej while(!argument.empty()) i w środku ustawiamy wskaźnik na argument.begin() robimy for z iteratorem, który cały argument "przeleci" jakkolwiek to brzmi i w razie znalezienia mniejszego indexu niż we wskaźniku ustawi go na wartość iteratora, potem (poza for) wsadzamy do zrobionej listy zawartość wskaźnika, a w argumencie ją usuwamy, po while zawracamy listę. Tekstowo, żeby nie ułatwiać za bardzo ;)
2)również for, taki sam jak poprzednio, sprawdzamy, kiedy index będzie mniejszy/większy, zależy, czy na początku dasz .end(), czy .begin() i jeśli tak wstawiamy element, kończymy returnem, tutaj lepiej wziąść listę przez referencję. polecam poczytać list reference jeśli nie znasz jakiejś metody.