字母链表顺序不对
Alphabetic Linked List Not in Order
我正在尝试创建一个由名称和评级排序的链表。排序部分将所有内容按正确顺序排列,但由于某种原因,字母排序不能按正确顺序排列任何内容(甚至颠倒顺序)。有时,List::Insert的字母排序部分会破坏printByRating()函数。有人来帮忙吗?
下面是我的insert函数: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;
}
下面是我在Winery类中可用的函数:
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; }
似乎你正在比较const char*
指针,而不是比较它们的内容。使用strcmp
或std::string
按字典顺序比较字符串
相关文章:
- 反向给定链表中的K节点
- 如何按数字顺序插入链表节点?
- 无法弄清楚如何使用 c++ 中的链表按从 a 到 z 的顺序显示字母
- C++ 双向链表 - 插入同时保持递增顺序
- 链表缺少节点并在打印时颠倒顺序
- 双链表中按字母顺序排序的链接
- 在 C++ 中使用链表按字母顺序对字符串进行排序
- 以相反的顺序打印链表的后半部分
- 按排序顺序将节点插入链表
- 将节点按顺序放入链表中
- 在c++中按字母顺序将节点添加到链表中
- C++链表-按排序顺序打印
- 我如何使用C ++以相反的顺序打印此单个链表中的元素
- 在链表中按顺序插入节点
- 按顺序遍历单个链表
- 按字母顺序对链表进行排序
- 在链表中,析构函数删除节点的顺序
- 字母链表顺序不对
- 使用无重复键的链表进行顺序搜索
- 比较链表,C++,相同的顺序却可以不同的抓取