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
本文介绍了双向链表的基础操作,包括创建节点、初始化、判空、头插、尾插、头删、尾删、查找数据、插入数据、删除数据、计算链表长度、打印链表以及销毁链表等。所有操作均使用C语言实现,详细阐述了每个步骤的逻辑,并提供了测试用例。最后提到,接下来将分享有关字符串函数的内容。
最低0.47元/天 解锁文章
1359

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



