【发布时间】:2019-11-12 06:04:13
【问题描述】:
我正在尝试创建一个插入排序功能,以便它会自行排序,然后它可以从上到下以升序显示,也可以从下到上降序显示。它可以显示从上到下升序排序,但不能从下到上降序显示。有什么帮助吗?
void DoublyLinkedList::insert(int v){
Node* p = new Node;
p->data = v;
p->next = nullptr;
p->prev = nullptr;
if(top == nullptr || top->data > p->data){
p->next = top;
top = p;
}
else{
bottom = top;
while(bottom->next != nullptr && bottom->next->data < p->data){
bottom = bottom->next;
}
bottom->next->prev = p;
p->next = bottom->next;
bottom->next = p;
p->prev = bottom->prev;
bottom->prev = p;
}
size++
}
【问题讨论】:
-
你不会错过
top->prev = p吗? -
如果新的节点值大于当前的最后一个节点会发生什么?您的循环无法处理这种情况。