Hey Stackoverflow 私は宿題に取り組んでおり、センチネルなしで循環リンクされた deque を元に戻そうとしています。ここに私のデータ構造があります:
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になります。違う?
前もって感謝します。