Эй, 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. Есть ли у кого-нибудь какие-либо идеи относительно того, что я может делаешь не так?
Заранее спасибо.