单链表的基本操作实验
时间: 2023-07-20 22:05:04 浏览: 135
单链表是一种常见的数据结构,它由多个节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。单链表的基本操作包括创建、插入、删除、查找和遍历等。下面我们来实现这些操作。
首先,我们需要定义一个单链表的节点类:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
```
接下来,我们定义一个单链表类,其中包含了创建、插入、删除、查找和遍历等操作:
```python
class LinkedList:
def __init__(self):
self.head = None
def create(self, lst):
if not lst:
return None
self.head = ListNode(lst[0])
cur = self.head
for i in range(1, len(lst)):
cur.next = ListNode(lst[i])
cur = cur.next
def insert(self, val):
if not self.head:
self.head = ListNode(val)
else:
cur = self.head
while cur.next:
cur = cur.next
cur.next = ListNode(val)
def delete(self, val):
if not self.head:
return
if self.head.val == val:
self.head = self.head.next
return
cur = self.head
while cur.next:
if cur.next.val == val:
cur.next = cur.next.next
return
cur = cur.next
def search(self, val):
cur = self.head
while cur:
if cur.val == val:
return True
cur = cur.next
return False
def traverse(self):
cur = self.head
while cur:
print(cur.val, end=' ')
cur = cur.next
```
其中,`create`操作用于创建单链表,`insert`操作用于在单链表的末尾插入一个节点,`delete`操作用于删除指定值的节点,`search`操作用于查找单链表中是否存在指定值的节点,`traverse`操作用于遍历单链表并输出所有节点的值。
下面是一个示例程序,演示了如何使用上述单链表类实现基本操作:
```python
lst = [1, 2, 3, 4, 5]
llist = LinkedList()
llist.create(lst)
llist.traverse() # 输出:1 2 3 4 5
llist.insert(6)
llist.traverse() # 输出:1 2 3 4 5 6
llist.delete(3)
llist.traverse() # 输出:1 2 4 5 6
print(llist.search(4)) # 输出:True
print(llist.search(3)) # 输出:False
```
以上就是单链表的基本操作实验的全部内容。
阅读全文