1
名前と評価の両方によってソートされたリンクリストを作成しようとしています。レーティング・ソート・パートは、すべてを正しい順序で配置しますが、何らかの理由でアルファベット・ソートでは、正しい順序(または逆の順序)で何も配置されません。場合によっては、List :: Insertのアルファベットソート部分でprintByRating()関数が中断されることがあります。誰かが助けてくれますか?アルファベット順のリンクされたリストが順序通りでない
void List::insert(const Winery& winery)
{
Node * prev = NULL;
Node * curr = NULL;
Node * newNode = new Node(winery);
newNode->nextByName = NULL;
newNode->nextByRating = NULL;
//sort by name
curr = headByName;
while (curr!=NULL && curr->item.getName() < newNode->item.getName())
{
prev = curr;
curr = curr->nextByName;
}
newNode->nextByName = curr;
if(prev == NULL)
headByName = newNode;
else
prev->nextByName = newNode;
//sort by rating
curr = headByRating;
while (curr!=NULL && curr->item.getRating() > newNode->item.getRating())
{
prev = curr;
curr = curr->nextByRating;
}
newNode->nextByRating = curr;
if(prev == NULL)
headByRating = newNode;
else
prev->nextByRating = newNode;
}
Here'reワイナリークラスで私に利用可能な機能::ここで
は私の挿入機能である
const char * const getName() const { return name; }
const char * const getLocation() const { return location; }
const int getAcres() const { return acres; }
const int getRating() const { return rating; }