Я пытаюсь отсортировать его каждый раз, когда добавляю вершину, поэтому я хочу сравнить добавленную вершину с предыдущей, помещая более высокую влево, пока не получу указатель на головную вершину.
Проблема, которая у меня есть, заключается в том, что функция, которая мне нужна для сортировки графа по какой-то вершине, немного работает и после нее останавливается в какой-то момент, но я не могу понять, где проблема, и компилятор не возвращает любая ошибка.
Это моя функция для сортировки каждый раз, когда я добавляю новую вершину.
void Graph::sortGraph(Vertex *pVertex){
/*
* Sort a vertex when it is insert into the graph
* Sorts it from highest to lowest
*/
while(pVertex->previous != NULL){ //Stops when the Vertex is sorted
if(pVertex->power > pVertex->previous->power){ // To order the graph from highest to lowest
if(pVertex->previous->previous == NULL){//If it is in position 1 and to
graphHead = pVertex;
pVertex->previous->next = pVertex->next;
pVertex->next->previous = pVertex->previous;
pVertex->next = pVertex->previous;
pVertex->previous->previous = pVertex;
pVertex->previous = pVertex->previous->previous;
}
else{ //in any other positions
pVertex->previous->previous->next == pVertex;
pVertex->next = pVertex->previous;
pVertex->previous->previous = pVertex;
pVertex->previous->next = pVertex->next;
pVertex->previous = pVertex->previous->previous;
}
}
pVertex = pVertex->previous; //go backwards because it have to compare the added vertex and the last one
}
}