嘿 Stackoverflow 我正在做我的作业,我正在尝试反转一个没有哨兵的循环链接双端队列。这是我的数据结构:
struct DLink {
TYPE value;
struct DLink * next;
struct DLink * prev;
};
struct cirListDeque {
int size;
struct DLink *back;
};
这是我扭转双端队列的方法:
void reverseCirListDeque(struct cirListDeque* q) {
struct DLink* current;
struct DLink* temp;
temp = q->back->next;
q->back->next = q->back->prev;
q->back->prev = temp;
current = q->back->next;
while(current != q->back) {
temp = current->next;
current->next = current->prev;
current->prev = temp;
current = current->next;
}
}
但是,当我运行它并在其上放置值 1、2 和 3(在这种情况下,TYPE 只是 int 的别名)并反转它时,我得到 2、1、3。有没有人对我可能在做什么有任何想法错误的?
提前致谢。