Сортировка связанного списка в C ++ не выполняется во время выполнения - PullRequest
0 голосов
/ 03 ноября 2019
    void head_insert(DomesticPtr& head, string firstNameD, string lastNameD, string province, float cgpaD, int researchScoreD, int idD)
{
  DomesticPtr temp_ptr;
  DomesticPtr temp2;
  temp_ptr= new DomesticStudent(head, firstNameD, lastNameD, province,cgpaD,researchScoreD,idD);
  temp2 = head->getLink();
      temp2==temp_ptr;
      head=temp_ptr;
      if (head->getLink() == NULL)
          return;
      else
      {
          bubblesort(head);
      }


}

void bubblesort(DomesticStudent* head)
{
 int  rsd;
 int cgpad;
 int p;
 DomesticPtr tempc, tempd, tempe;
 tempd=head;
 tempe= head->getLink();
    {
 while(tempd != NULL)
   {                                                   
      rsd=compareResearchScore(tempd, tempe);

                if (rsd==1)
                  {
                    tempc=head;
                    head->next=head;
                    head=tempc;
                  }// if
                else if (rsd==0)
                  {
                    cgpad= compareCGPA(tempe,tempd);
                    if (cgpad==1)
                      {
                    tempc=head;
                    head->next=head;
                    head=tempc;
                      }// if (cgpad[k]>cgpad[k+1])
                    else if(cgpad==0)
                      {

                        p=compareProvince(tempd,tempe);
                        if(p==1)
                          {
                        tempc=head;
                        head->next=head;
                        head=tempc;
                          }// if (p[k]>p[k+1])
                      }//
                      }// else if cgpad[k]
                      }// else if rsd[k]
                //  }
// }
                tempd = tempe;

}






  int compareResearchScore(DomesticPtr RSA, DomesticPtr RSB)
{
    if (RSB == NULL || RSA==NULL )
    {
        return 0;
    }
  if (RSA->researchScoreD==RSB->researchScoreD) //compares if is the same for domesetic students returns value for bubble sort
{
  return 0;
}
  if (RSA->researchScoreD > RSB->researchScoreD)
         {

           return 1;
}
  if (RSA->researchScoreD< RSB->researchScoreD)
         {
           return -1;
}
}

Я пытаюсь отсортировать связанный список каждый раз, когда вставляется новый узел. Он компилируется, но каждый раз, когда я пытаюсь запустить программу, он застревает в точке, в которой я пытаюсь напечатать свой список. У меня есть деструктор, но нет конструктора копирования или оператора присваивания. Head_insert вызывает функцию сортировки, а функция сортировки вызывает функцию сравнения, чтобы получить целочисленный вывод, чтобы она могла произвести обмен. Я хочу сравнить исследования, CGPA, а затем провинцию. Любой вклад будет высоко ценится, это для проекта, поэтому я не хотел бы никаких блоков кода, но если бы вы могли указать мне правильное направление или несколько направлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...