Сортировка списка(классовый) C++
я не могу написать сортировку списка только парных рядов,помогите пожалуйста. Заранее спасибо.
#include <iostream>
using namespace std;
class List {
public:
List();
void push_back(int number, int i, int j);
int GetSize() {
return Size;
}
void print(int n);
void print_task(int n);
void printwithnulls(int n);
private:
class Node {
public:
Node* pNext;
int number;
int i;
int j;
int actualI;
int actualJ;
Node(int number, int i, int j, Node* pNext = nullptr) {
this->number = number;
this->i = i;
this->j = j;
this->pNext = pNext;
}
};
int Size;
Node* head;
};
List::List() {
Size = 0;
head = nullptr;
}
void List::push_back(int number, int i, int j) {
if (head == nullptr) {
head = new Node(number, i, j);
}
else {
Node* current = this->head;
while (current->pNext != nullptr) {
current = current->pNext;
}
Node* newNode = new Node(number, i, j);
current->pNext = newNode;
}
Size++;
}
void List::print(int n) {
if (Size != 0) {
int searchI = 0;
int searchJ = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
Node* current = this->head;
while (current != nullptr)
{
if (current->i == i && current->j == j) {
current->actualI = searchI;
current->actualJ = searchJ;
searchJ++;
cout << current->number<< " ";
}
current = current->pNext;
}
}
searchI++;
searchJ = 0;
cout << endl;
}
}
else {
cout << endl << "Size of list == 0";
}
}
void List::printwithnulls(int n) {
if (Size != 0) {
bool checked = false;
int searchI = 0;
int searchJ = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
checked = false;
Node* current = this->head;
while (current != nullptr)
{
if (current->i == i && current->j == j) {
checked = true;
current->actualI = searchI;
current->actualJ = searchJ;
searchJ++;
cout << current->number
<< " ";
}
current = current->pNext;
}
if (!checked) {
cout << "0 ";
}
}
searchI++;
searchJ = 0;
cout << endl;
}
}
else {
cout << endl << "Size of list == 0";
}
}
void List::print_task(int n) {
if (Size != 0) {
for (int i = 0; i < n; i++) {
int temp;
Node* current = this->head;
while (current != nullptr)
{
//сортировка
current = current->pNext;
}
cout << endl;
}
}
else {
cout << endl << "Size of list == 0";
}
}
int main()
{
List lst;
int n;
cout << "Enter n of matrix: ";
cin >> n;
int** matrix = new int* [n];
for (int i = 0; i < n; i++) {
matrix[i] = new int[n];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j]=0;
}
}
int d = ((n*n) / 2) - 1;
for (int i = 0; i < d; i++) {
matrix[rand()%n][rand() % n] = rand() % 8+1;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (matrix[i][j] != 0) {
lst.push_back(matrix[i][j], i, j);
}
}
}
cout << "matrix:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
cout << "First matrix : " << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i < n / 2 && j > n / 2) {
cout << matrix[n / 2 + i + 1][j - n / 2 - 1] << " ";
}
else if (i > n / 2 && j < n / 2) {
cout << matrix[i - n / 2 - 1][j + n / 2 + 1] << " ";
}
else {
cout << matrix[i][j] << " ";
}
}
cout << endl;
}
cout << "Szhataya matrix: " << endl;
lst.print(n);
cout << endl;
cout << "Szhataya matrix po zadaniyu: " << endl;
lst.print_task(n);
cout << "Rozkritaya matrica: " << endl;
lst.printwithnulls(n);
}