1.创造一个节点,函数实现
DListNode* BuyListNode(Datetype x)
{
DListNode*node = (DListNode*)malloc(sizeof(DListNode));
node->date = x;
node->next = NULL;
node->prev = NULL;
return node;
}
2. 初始化
DListNode* DListInit()
{
DListNode*plist = BuyListNode(0);
plist->date = 0;
plist->next = plist;
plist->prev = plist;
return plist;
}
//既然是双向循环链表,初始化的时候,prev与next需要指向自己。
既然是双向循环链表,初始化的时候,prev与next需要指向自己。
3.判空
int DListIsEmpty(DListNode*plist)
{
return plist->next == plist ? 1 : 0;
}
只有一个头节点的时候,链表为空。
4.头插
void DListPushFront(DListNode*plist,Datetype x)
{
DListNode*first = plist->next;
DListNode*newnode = BuyListNode(x);
newnode->prev = plist;
plist->next = new