头插法和尾插法单链表
时间: 2024-06-13 10:09:50 浏览: 118
单链表是一种常见的数据结构,它由一个个结点组成,每个结点包含两个部分:数据域和指针域。其中,数据域用于存储数据,指针域用于指向下一个结点。单链表有多种插入方式,其中比较常见的是头插法和尾插法。
1. 头插法:
头插法是指在链表的头部插入新的结点。具体步骤如下:
(1)创建一个新的结点,将要插入的数据存储在该结点的数据域中;
(2)将新结点的指针域指向原来的头结点;
(3)将头指针指向新结点。
下面是一个Python实现的头插法单链表的例子:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def insert_at_beginning(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
def print_list(self):
current_node = self.head
while current_node:
print(current_node.data)
current_node = current_node.next
```
2. 尾插法:
尾插法是指在链表的尾部插入新的结点。具体步骤如下:
(1)创建一个新的结点,将要插入的数据存储在该结点的数据域中;
(2)将原来的尾结点的指针域指向新结点;
(3)将新结点的指针域设置为NULL。
下面是一个Python实现的尾插法单链表的例子:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def insert_at_end(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node
def print_list(self):
current_node = self.head
while current_node:
print(current_node.data)
current_node = current_node.next
```
阅读全文