用链表编写一个通讯录管理系统
时间: 2024-10-21 08:01:59 浏览: 27
链表可以用于创建一个简单的通讯录管理系统,因为链表数据结构支持动态添加、删除和查找联系人。以下是使用链表实现的一个基础框架:
1. **定义节点**(ContactNode):每个节点代表一个联系人,包含姓名(Name)、电话号码(PhoneNumber)和指向下一个联系人的指针(next)。
```python
class ContactNode:
def __init__(self, name, phone_number):
self.name = name
self.phone_number = phone_number
self.next = None
```
2. **链表类**(ContactList):包含链表头节点(head),以及增加联系人、查找和删除联系人等方法。
```python
class ContactList:
def __init__(self):
self.head = None
# 添加联系人到链表末尾
def add_contact(self, name, phone_number):
new_node = ContactNode(name, phone_number)
if not self.head:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
# 查找特定名称的联系人
def find_contact(self, name):
current = self.head
while current and current.name != name:
current = current.next
return current
# 删除指定名称的联系人
def delete_contact(self, name):
if not self.head:
return
if self.head.name == name:
self.head = self.head.next
return
prev = self.head
current = self.head.next
while current and current.name != name:
prev = current
current = current.next
if current:
prev.next = current.next
```
3. **使用示例**:
```python
# 初始化通讯录
contact_list = ContactList()
# 添加联系人
contact_list.add_contact('Alice', '1234567890')
contact_list.add_contact('Bob', '0987654321')
# 查找联系人
alice_node = contact_list.find_contact('Alice')
if alice_node:
print(f"找到了Alice,电话号码:{alice_node.phone_number}")
# 删除联系人
contact_list.delete_contact('Bob')
```
阅读全文