我试图破坏我的双端队列,但不知何故我失败了。我编写了以下代码(deque 是一个指向指针的指针,它指向 deque 的第一个元素)。DequeItem 是具有字段 next(指向下一个元素)和数据(void *)的结构。
void deque_destroy(DequeItem **deque) {
DequeItem *temp;
DequeItem *item;
for (item = *deque; item != NULL; item = temp) {
printf("%d", *((int*)((item)->data)));
temp = item->next;
free(item);
}
}
结构声明是:
struct DequeItem {
void *data; // Data stored in the deque item
struct DequeItem *previous; // Pointer to the previous DequeItem in the ring
struct DequeItem *next; // Pointer to the next DequeItem in the ring
};
typedef struct DequeItem DequeItem;