单链表的建立插入删除的实验分析
时间: 2024-05-13 16:16:35 浏览: 80
单链表的插入和删除实验报告.doc
单链表是一种常见的数据结构,其基本操作包括建立、插入和删除等。下面简要介绍单链表建立、插入和删除的实验分析。
1. 单链表的建立
单链表的建立可以采用头插法或尾插法,具体实现可以参考以下伪代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def create_linked_list_head(nums):
dummy = ListNode(0)
for num in nums:
node = ListNode(num)
node.next = dummy.next
dummy.next = node
return dummy.next
def create_linked_list_tail(nums):
dummy = ListNode(0)
tail = dummy
for num in nums:
node = ListNode(num)
tail.next = node
tail = tail.next
return dummy.next
```
其中,`create_linked_list_head`使用头插法建立单链表,`create_linked_list_tail`使用尾插法建立单链表。
2. 单链表的插入
单链表的插入操作主要包括在指定位置插入节点和在头部插入节点。具体实现可以参考以下伪代码:
```python
def insert_node_at_position(head, val, position):
if not head or position < 1:
return head
dummy = ListNode(0)
dummy.next = head
node = dummy
for i in range(position - 1):
node = node.next
new_node = ListNode(val)
new_node.next = node.next
node.next = new_node
return dummy.next
def insert_node_at_head(head, val):
new_node = ListNode(val)
new_node.next = head
return new_node
```
其中,`insert_node_at_position`在指定位置插入节点,`insert_node_at_head`在头部插入节点。
3. 单链表的删除
单链表的删除操作主要包括删除指定位置的节点和删除指定值的节点。具体实现可以参考以下伪代码:
```python
def delete_node_at_position(head, position):
if not head or position < 1:
return head
dummy = ListNode(0)
dummy.next = head
node = dummy
for i in range(position - 1):
node = node.next
node.next = node.next.next
return dummy.next
def delete_node_by_value(head, val):
if not head:
return None
dummy = ListNode(0)
dummy.next = head
node = dummy
while node.next:
if node.next.val == val:
node.next = node.next.next
else:
node = node.next
return dummy.next
```
其中,`delete_node_at_position`删除指定位置的节点,`delete_node_by_value`删除指定值的节点。
以上就是单链表的建立、插入和删除的实验分析。
阅读全文