单链表:从原理到实战应用
单链表的基本概念
单链表是一种线性数据结构,由一系列节点组成,每个节点包含数据域和指针域。数据域存储元素值,指针域存储下一个节点的地址。单链表的最后一个节点指向空(NULL),表示链表结束。
单链表的优势在于动态内存分配,插入和删除操作的时间复杂度为 $O(1)$(已知位置时),但随机访问需要 $O(n)$ 时间。
单链表的节点结构
单链表的节点通常用结构体或类实现。以下是C语言和Python的实现示例:
C语言实现
struct Node {
int data;
struct Node* next;
};
Python实现
class Node:
def __init__(self, data):
self.data = data
self.next = None
单链表的基本操作
插入操作
头部插入
新建节点并使其指向原头节点,更新头指针指向新节点。
void insertAtHead(struct Node** head, int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = *head;
*head = newNode;
}
尾部插入
遍历链表至最后一个节点,将新节点链接到末尾。
def insert_at_tail(head, data):
new_node = Node(data)
if not head:
head = new_node
return
current = head
while current.next:
current = current.next
current.next = new_node
删除操作
删除指定值节点
找到目标节点的前驱节点,修改其指针以跳过目标节点。
void deleteNode(struct Node** head, int key) {
struct Node* temp = *head, *prev = NULL;
if (temp != NULL && temp->data == key) {
*head = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->data != key) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return;
prev->next = temp->next;
free(temp);
}
遍历操作
从头节点开始,依次访问每个节点直至末尾。
def traverse(head):
current = head
while current:
print(current.data, end=" -> ")
current = current.next
print("NULL")
单链表的应用场景
- 动态内存管理:适合频繁插入和删除的场景,如内存池管理。
- 实现其他数据结构:栈、队列和图的邻接表均可基于单链表实现。
- 多项式运算:用链表存储多项式系数和指数,便于加减乘操作。
单链表的变体
- 带头节点的单链表:头节点不存储数据,简化插入/删除逻辑。
- 循环单链表:尾节点指向头节点,适合环形缓冲区等场景。
通过理解单链表的核心操作和实现,可以更好地掌握动态数据结构的灵活性与效率。
BbS.okacop092.info/PoSt/1120_928038.HtM
BbS.okacop093.info/PoSt/1120_866432.HtM
BbS.okacop094.info/PoSt/1120_921502.HtM
BbS.okacop095.info/PoSt/1120_157729.HtM
BbS.okacop096.info/PoSt/1120_817282.HtM
BbS.okacop097.info/PoSt/1120_153547.HtM
BbS.okacop098.info/PoSt/1120_866826.HtM
BbS.okacop099.info/PoSt/1120_868545.HtM
BbS.okacop114.info/PoSt/1120_311290.HtM
BbS.okacop829.info/PoSt/1120_126296.HtM
BbS.okacop000.info/PoSt/1120_570959.HtM
BbS.okacop001.info/PoSt/1120_336626.HtM
BbS.okacop002.info/PoSt/1120_993790.HtM
BbS.okacop003.info/PoSt/1120_021542.HtM
BbS.okacop004.info/PoSt/1120_728448.HtM
BbS.okacop005.info/PoSt/1120_042399.HtM
BbS.okacop006.info/PoSt/1120_194693.HtM
BbS.okacop007.info/PoSt/1120_175371.HtM
BbS.okacop008.info/PoSt/1120_264279.HtM
BbS.okacop009.info/PoSt/1120_436285.HtM
BbS.okacop000.info/PoSt/1120_465459.HtM
BbS.okacop001.info/PoSt/1120_274721.HtM
BbS.okacop002.info/PoSt/1120_703067.HtM
BbS.okacop003.info/PoSt/1120_995135.HtM
BbS.okacop004.info/PoSt/1120_368948.HtM
BbS.okacop005.info/PoSt/1120_174498.HtM
BbS.okacop006.info/PoSt/1120_024182.HtM
BbS.okacop007.info/PoSt/1120_134484.HtM
BbS.okacop008.info/PoSt/1120_604572.HtM
BbS.okacop009.info/PoSt/1120_111891.HtM
BbS.okacop000.info/PoSt/1120_330015.HtM
BbS.okacop001.info/PoSt/1120_700226.HtM
BbS.okacop002.info/PoSt/1120_424868.HtM
BbS.okacop003.info/PoSt/1120_965507.HtM
BbS.okacop004.info/PoSt/1120_385689.HtM
BbS.okacop005.info/PoSt/1120_334716.HtM
BbS.okacop006.info/PoSt/1120_912422.HtM
BbS.okacop007.info/PoSt/1120_292063.HtM
BbS.okacop008.info/PoSt/1120_215681.HtM
BbS.okacop009.info/PoSt/1120_519088.HtM
BbS.okacop000.info/PoSt/1120_463505.HtM
BbS.okacop001.info/PoSt/1120_182588.HtM
BbS.okacop002.info/PoSt/1120_063440.HtM
BbS.okacop003.info/PoSt/1120_705553.HtM
BbS.okacop004.info/PoSt/1120_614097.HtM
BbS.okacop005.info/PoSt/1120_215017.HtM
BbS.okacop006.info/PoSt/1120_361065.HtM
BbS.okacop007.info/PoSt/1120_992240.HtM
BbS.okacop008.info/PoSt/1120_541571.HtM
BbS.okacop009.info/PoSt/1120_731104.HtM
BbS.okacop000.info/PoSt/1120_376683.HtM
BbS.okacop001.info/PoSt/1120_459949.HtM
BbS.okacop002.info/PoSt/1120_648559.HtM
BbS.okacop003.info/PoSt/1120_791096.HtM
BbS.okacop004.info/PoSt/1120_482572.HtM
BbS.okacop005.info/PoSt/1120_322185.HtM
BbS.okacop006.info/PoSt/1120_489733.HtM
BbS.okacop007.info/PoSt/1120_867767.HtM
BbS.okacop008.info/PoSt/1120_348999.HtM
BbS.okacop009.info/PoSt/1120_413557.HtM
BbS.okacop000.info/PoSt/1120_882501.HtM
BbS.okacop001.info/PoSt/1120_167407.HtM
BbS.okacop002.info/PoSt/1120_781572.HtM
BbS.okacop003.info/PoSt/1120_526304.HtM
BbS.okacop004.info/PoSt/1120_515167.HtM
BbS.okacop005.info/PoSt/1120_685043.HtM
BbS.okacop006.info/PoSt/1120_778318.HtM
BbS.okacop007.info/PoSt/1120_057754.HtM
BbS.okacop008.info/PoSt/1120_288890.HtM
BbS.okacop009.info/PoSt/1120_823320.HtM
BbS.okacop000.info/PoSt/1120_719478.HtM
BbS.okacop001.info/PoSt/1120_386010.HtM
BbS.okacop002.info/PoSt/1120_257958.HtM
BbS.okacop003.info/PoSt/1120_678907.HtM
BbS.okacop004.info/PoSt/1120_223524.HtM
BbS.okacop005.info/PoSt/1120_577416.HtM
BbS.okacop006.info/PoSt/1120_310407.HtM
BbS.okacop007.info/PoSt/1120_722726.HtM
BbS.okacop008.info/PoSt/1120_652806.HtM
BbS.okacop009.info/PoSt/1120_912989.HtM


