双向链表(Doubly Linked List)

双向链表(Doubly Linked List)

双向链表介绍

双向链表的结构如下:

1
2
3
4
5
struct Node{
int data;
struct Node* prev;
struct Node* next;
};

可以看到双向链表的节点是由两个结构体指针及相关数据构成的,因此可以更方便地对链表中的节点进行访问和数据的修改。

阅读更多
反转链表(迭代及递归实现)

反转链表(迭代及递归实现)

从上图中可以看出,反转一个链表只需要改变Node.link。

I. 迭代实现

思路

设置三个结构体指针Prev、current、next,分别保存之前的节点的地址、目前的节点地址、之后的节点地址。

阅读更多

任意位置删除一个节点

设计一个Delete(position)函数,删除第position位的节点。

思路

1)重新连接删除后的链表

将第n-1位节点的next存第n+1位节点的地址,即第n位节点的next。

阅读更多

Linked list - Implementation in C

链表是一种常见的数据结构,它的基本单位是node,由data和link两部分组成。

创建一个链表需要以下几个步骤:

1.创建节点的结构体

一个简单的结构体,由数据和结构体指针构成,代码如下:

阅读更多