数据结构——链表(双向循环链表)
2018-04-09
1 0 0
暂无评分
其他
如何获取积分?
双向循环链表
节点:数据域+指针域
指针域:一个指针指向前一个同类型节点,另一个指针指向后一个同类型节点
(1)设计节点
struct db_node
{
int data;
struct db_node * prev;
struct db_node * next;
};
(2)创建空链表
//创建了一个只有头节点的双向循环链表,返回头节点的地址
struct db_node * create_db_list(void)
{
struct db_node * phead = (struct db_node *)malloc(sizeof(struct db_node));
if(phead == NULL)
exit(-1);
else
{
phead->next = phead;
phead->prev = phead;
}
return phead;
}
(3)制造新节点
//制造新节点,返回新节点的地址
struct db_node * make_db_node(int value)
{
struct db_node * pnew = (struct db_node *)malloc(sizeof(struct db_node));
if(pnew == NULL)
printf("malloc failed!\n");
else
{
pnew->data = value;
pnew->next = NULL;
pnew->prev = NULL;
}
return pnew;
}
(4)插入节点
//把pnew指向的节点插入到头节点的前面,也就是整个链表的末尾
bo
节点:数据域+指针域
指针域:一个指针指向前一个同类型节点,另一个指针指向后一个同类型节点
(1)设计节点
struct db_node
{
int data;
struct db_node * prev;
struct db_node * next;
};
(2)创建空链表
//创建了一个只有头节点的双向循环链表,返回头节点的地址
struct db_node * create_db_list(void)
{
struct db_node * phead = (struct db_node *)malloc(sizeof(struct db_node));
if(phead == NULL)
exit(-1);
else
{
phead->next = phead;
phead->prev = phead;
}
return phead;
}
(3)制造新节点
//制造新节点,返回新节点的地址
struct db_node * make_db_node(int value)
{
struct db_node * pnew = (struct db_node *)malloc(sizeof(struct db_node));
if(pnew == NULL)
printf("malloc failed!\n");
else
{
pnew->data = value;
pnew->next = NULL;
pnew->prev = NULL;
}
return pnew;
}
(4)插入节点
//把pnew指向的节点插入到头节点的前面,也就是整个链表的末尾
bo
相关源码推荐
使用Java开发Android AOA Android开放式附件
0
0
暂无评分
Golang AOA Android开放式附件HID控制
0
0
暂无评分
pclite
0
0
暂无评分
GMSK线性接收机
0
0
暂无评分
传世AFT中变打金版版本--以前很火爆的,收藏很久
0
0
暂无评分
暂无评论