新建一个链表,将输入的数据采用前插法或后插法存入链表中,并将输入的元素输出,并完成以下基本操作: (1).删除指定位置的元素; (2).向指定位置插入元素 (3).查找某元素在链表中的位置。
时间: 2024-10-01 12:04:55 浏览: 4
创建链表并支持前插法(insert at front)、后插法(insert at end)、删除指定位置元素以及查找元素位置的基本操作可以通过以下几个步骤实现:
首先,我们需要定义链表节点的结构:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
```
然后,我们可以创建链表类,包含上述操作的方法:
```python
class LinkedList:
def __init__(self):
self.head = None
# 前插法添加元素
def insert_at_front(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
# 后插法添加元素
def insert_at_end(self, data):
if not self.head:
self.head = Node(data)
return
current = self.head
while current.next:
current = current.next
current.next = Node(data)
# 删除指定位置元素
def delete_by_index(self, index):
if not self.head or index < 0 or index >= self.size():
return
if index == 0:
self.head = self.head.next
else:
current = self.head
for _ in range(index - 1):
current = current.next
current.next = current.next.next
# 查找元素位置
def find_index(self, target):
current = self.head
index = 0
while current:
if current.data == target:
return index
current = current.next
index += 1
return -1 # 如果找不到目标元素,则返回 -1
# 返回链表长度
def size(self):
count = 0
current = self.head
while current:
count += 1
current = current.next
return count
```
使用这个`LinkedList`类,你可以很容易地实现所需的链表操作。例如:
```python
# 创建一个链表实例
my_list = LinkedList()
# 插入元素
my_list.insert_at_front(1) # 前插 1
my_list.insert_at_end(2) # 后插 2
# 输出链表
while my_list.head:
print(my_list.head.data, end=" -> ")
my_list.head = my_list.head.next
# 删除指定位置元素
my_list.delete_by_index(0) # 删除第一个元素
# 查找元素位置
print("Element 2 is at position:", my_list.find_index(2))
```