typedef int DItemType;
typedef struct SDoubleList
{
DItemType iValue;
SDoubleList *prev;
SDoubleList *next;
} DLinkedList,*pDLinkedList;
/* 创建双链表 */
DLinkedList *InitDoubleList()
{
DLinkedList *doublelist = (DLinkedList*)malloc(sizeof(DLinkedList));
if (NULL == doublelist)
exit(1);
doublelist->prev = NULL;
doublelist->next = NULL;
return doublelist;
}
/* 双链表实现队列入队 */
bool DLinkedList_Push(DLinkedList* DL, DItemType value)
{
if (NULL==DL)
{
puts("队列不存在,无法插入!\n");
return false;
}
DLinkedList *temp = (DLinkedList *)malloc(sizeof(DLinkedList));
if (NULL == temp) {
puts("插入失败!");
return false;
}
temp->iValue = value;
temp->next = NULL;
temp->prev = NULL;
DLinkedList *ttemp = DL;
while (NULL != ttemp->next)
{
ttemp = ttemp->next;
}
ttemp->next = temp;
temp->prev = ttemp;
return true;
}
/* 双链表实现队列出队 */
bool DLinkedList_Pop(DLinkedList *DL)
{
if (NULL==DL || NULL

本文详细介绍了如何使用双向链表来实现队列的基本操作,包括入队、出队以及查找元素的过程。通过实例解析,帮助理解链表结构在队列应用中的优势和具体实现步骤。
最低0.47元/天 解锁文章
5140

被折叠的 条评论
为什么被折叠?



