一步一步写算法(之双向链表)
发布时间:2021-06-07
发布时间:2021-06-07
软件英才网 软件行业驰名招聘网站
一步一步写算法(之双向链表)
前面的博客我们介绍了单向链表。那么我们今天介绍的双向链表,顾名思义,就是数据本身具备了左边和右边的双向指针。双向链表相比较单向链表,主要有下面几个特点:
(1)在数据结构中具有双向指针
(2)插入数据的时候需要考虑前后的方向的操作
(3)同样,删除数据的是有也需要考虑前后方向的操作
那么,一个非循环的双向链表操作应该是怎么样的呢?我们可以自己尝试一下:
(1)定义双向链表的基本结构
typedef struct _DOUBLE_LINK_NODE { int data; struct _DOUBLE_LINK_NODE* prev; struct _DOUBLE_LINK_NODE* next; }DOUBLE_LINK_NODE;
(2)创建双向链表节点
DOUBLE_LINK_NODE* create_double_link_node(int value) { DOUBLE_LINK_NODE* pDLinkNode = NULL;
pDLinkNode = (DOUBLE_LINK_NODE*)malloc(sizeof(DOUBLE_LINK_NODE)); assert(NULL != pDLinkNode);
memset(pDLinkNode, 0, sizeof(DOUBLE_LINK_NODE));
pDLinkNode->data = value;
return pDLinkNode;
}
(3)删除双向链表
void delete_all_double_link_node(DOUBLE_LINK_NODE** pDLinkNode)
{
DOUBLE_LINK_NODE* pNode;
if(NULL == *pDLinkNode)
return ;
pNode = *pDLinkNode;
下一篇:中国民间工艺——扎染