如何用C语言实现带头双向循环链表来存储长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1789个文字,预计阅读时间需要8分钟。
链表,种类多样,有带哨兵位的,有循环的,还有双向的。排列组合后,你会发现八种不同的链表。其中,结构最简单的就是单链表了,而结构最复杂的是带头双向循环链表。
链表,种类众多,有带哨兵位的,有循环的,还有双向的,排列组合后,你会发现有8种不同的链表。其中,结构最简单的就是单链表了,结构最复杂的则是带头双向循环链表。
但是,别看他结构最复杂,其实他的实现反而是最简单的。
数据结构的操作,就是操作内存中的数据,也就是增删查改这些操作;那么,就让我们来看看带头双向循环链表的增删查改吧。
1.首先是结构的定义:
很明显,和单链表相比,我们多了一个prev指针。
typedef int SLDataType;
typedef struct ListNode
{
struct ListNode* next;
struct ListNode* prev;
SLDataType data;
}LTNode;
2.接着就是链表的初始化:
Buy函数就是创建并初始化一个节点,写成函数复用更方便。
本文共计1789个文字,预计阅读时间需要8分钟。
链表,种类多样,有带哨兵位的,有循环的,还有双向的。排列组合后,你会发现八种不同的链表。其中,结构最简单的就是单链表了,而结构最复杂的是带头双向循环链表。
链表,种类众多,有带哨兵位的,有循环的,还有双向的,排列组合后,你会发现有8种不同的链表。其中,结构最简单的就是单链表了,结构最复杂的则是带头双向循环链表。
但是,别看他结构最复杂,其实他的实现反而是最简单的。
数据结构的操作,就是操作内存中的数据,也就是增删查改这些操作;那么,就让我们来看看带头双向循环链表的增删查改吧。
1.首先是结构的定义:
很明显,和单链表相比,我们多了一个prev指针。
typedef int SLDataType;
typedef struct ListNode
{
struct ListNode* next;
struct ListNode* prev;
SLDataType data;
}LTNode;
2.接着就是链表的初始化:
Buy函数就是创建并初始化一个节点,写成函数复用更方便。

