数据结构
线性表--双向循环链表操作
**注意!!!**怎么说,今天(2024.4.24)找一个小小的运行bug(没有报错)找了非常之久,明天继续把这些代码补齐,啊啊啊,但是感谢还是把这个bug找出来(这段话我不会删的)~~
·插入
1)头插
/****************************************************************************
*
* function name : DoubleCirLList_HeadInsert
* function : 创建新的结点,并进行头插法
* parameter : None
*
* Return results : 返回成功或者失败。
* note : None
* author : tongyaqi1110@.com
* date : 2024-04-24
* version : V1.0
* revision history : None
* Copyright (c) 2023-2024 cececlmx@126.com All right Reserved
****************************************************************************/
bool DoubleCirLList_HeadInsert(DoubleCirLList_t *Head, DataType_t data)
{
// 1.创建新的结点,并对新结点进行初始化
DoubleCirLList_t *New = DoubleCirLList_NewNode(data);
if (NULL == New)
{
printf("can not insert new node\n");
return false;
}
// 2.判断链表是否为空,如果为空,则直接插入即可
if (Head == Head->next)
{
Head->next = New;
return true;
}
// 3.如果链表为非空,则把新结点插入到链表的头部
Head->next->prev->next = New;
New->prev = Head->next->prev;
New->next = Head->next;
Head->next->prev = New;
Head->next = New;
return true;
}
2)尾插
3)中间插
·删除
1)头删
2)尾删
文章来源:https://www.toymoban.com/news/detail-857084.html
3)中间删
文章来源地址https://www.toymoban.com/news/detail-857084.html
到了这里,关于双向循环链表的插入和删除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!