如何使用单链表实现一个基础的通讯录管理系统,包括插入联系人、删除联系人和查找联系人等操作?
时间: 2024-10-11 13:15:17 浏览: 43
使用单链表实现基础的通讯录管理系统可以分为以下几个步骤:
1. **数据结构设计**:
- 创建一个Node类,包含属性如`name`(姓名)、`phone_number`(电话号码)以及指向下一个节点的指针`next`。
- 创建一个`ContactList`类,包含一个头节点`head`。
2. **插入联系人**:
- 定义一个`addContact`方法,接受新联系人的信息作为参数。
- 如果列表为空,则创建一个新的头节点并将联系人设为其下一个节点。
- 否则,在当前最后一个节点的`next`指向新创建的节点,并更新最后一个节点。
```python
def addContact(self, name, phone_number):
new_node = Node(name, phone_number)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next is not None:
current = current.next
current.next = new_node
```
3. **删除联系人**:
- 定义一个`deleteContact`方法,接收要删除的联系人名。
- 遍历链表,找到目标节点并调整前一个节点的`next`指针使其跳过目标。
```python
def deleteContact(self, name):
if self.head is None:
return
if self.head.name == name:
self.head = self.head.next
return
current = self.head
prev = None
while current is not None and current.name != name:
prev = current
current = current.next
if current is not None:
prev.next = current.next
```
4. **查找联系人**:
- 定义一个`findContact`方法,遍历链表,直到找到匹配的联系人或遍历完整个列表返回None。
```python
def findContact(self, name):
current = self.head
while current is not None:
if current.name == name:
return current
current = current.next
return None
```
阅读全文