【发布时间】:2014-11-15 20:53:17
【问题描述】:
我正在尝试在链表上实现冒泡排序。但是,我得到了访问错误:
Unhandled exception at 0x001A8C7B in program.exe: 0xC0000005: Access violation reading location 0xCCCCCCCC.
这个错误发生在我的冒泡排序方法中:
if (current->data > nextElement->data)
调用main
list1.SortList();
结构
struct IntNode
{
int data;
IntNode * next;
};
冒泡排序
void NodeSLList::SortList()
{
if (head == NULL || head->next == NULL)
return;
IntNode * current = head;
IntNode * nextElement = current->next;
IntNode * temp = NULL;
int changed = 1;
while (changed)
{
changed = 0;
for (current; current != NULL; current = current->next)
{
if (current->data > nextElement->data) //ACCESS ERROR
{
temp = current;
current = nextElement;
nextElement = temp;
changed = 1;
}
nextElement = nextElement->next;
}
}
}
我将循环内部改为:
for (current; (current != NULL) && (nextElement = NULL); )
{
if (current->data > nextElement->data)
{
temp = current->next;
current->next = nextElement->next;
nextElement->next = temp;
changed = 1;
}
current = current->next;
nextElement = nextElement->next;
}
但是,我的列表继续输出相同的列表。
【问题讨论】:
标签: c++ pointers linked-list logic bubble-sort