0

リンクリストのバブルソートアルゴリズムに取り組んでいます。データを移動していますが、データを適切にソートしていません。今のところ、int のリンクされたリストだけが心配です。問題はどこにありますか?どうもありがとう。

void List::linkedListBubbleSort()
{
    bool swap = true;
    Node * temp = firstNode;
    Node * current;

     if(firstNode == 0)
     {
          cout << "List is empty." << endl;
          return;
     }

     else
     {
         while(swap == true)
         {
             for(current = firstNode; current != NULL && current->next != NULL; current = current->next)
             {
                 if(current->data > current->next->data)
                 {
                     swap = true;
                     temp->data = current->data;
                     current->data = current->next->data;
                     current->next->data = temp->data;
                 }
             else
             swap = false;
             }

         }
4

2 に答える 2

0

while(swap==true) を使用する必要はありません。 if(current->data>current->next->data) が false を返すある時点で、上のループ while (swap==true) では反復できないためです。これより先。

    else
    {
         for(current = firstNode; current != NULL && current->next != NULL; current = current->next)
         {
             if(current->data > current->next->data)
             {
                 temp->data = current->data;
                 current->data = current->next->data;
                 current->next->data = temp->data;
             }

         }

     }
于 2013-05-05T07:38:32.677 に答える