【发布时间】:2016-06-17 02:49:34
【问题描述】:
我对编程很陌生,我有这个任务,目标是使用这些函数打印出 0123456789 然后 9876543210
bool List::SortSwap()
{
bool doswap = true;
ListElement *i =this-> head;
ListElement *prev =this-> head;
ListElement *b = i->next;
while (doswap= true) {
for (i; i != NULL; i = i->next) {
if (i != this-> head) {
prev->next = i;
}
if (i->value < b->value) {
swap(prev, i, b);
doswap = true;
}
}
doswap= false;
}
return doswap;
}
void List::swap(ListElement * prev, ListElement * a, ListElement * b)
{
prev->next = b;
b->next = a;
}
所以如果 doswap 为真,它应该通过我的链表并交换元素,如果它的值小于后面的值,当我运行程序时没有任何反应,我的列表不会打印到屏幕上
【问题讨论】:
-
听起来您可能需要学习如何使用调试器来单步调试您的代码。使用好的调试器,您可以逐行执行您的程序,并查看它与您期望的偏差在哪里。如果您要进行任何编程,这是必不可少的工具。进一步阅读:How to debug small programs
-
绘制相关节点及其当前连接。一个接一个地将连接移动到它们的新状态。编写代码来执行您必须进行的连接移动。
标签: c++ list object linked-list