写一个顺序表实现一个电话号码本的功能,至少要包括,录入,删除,按使用频率排序,列出(显示全部),根据姓名查找号码,根据号码查找姓名等功能。
时间: 2024-11-27 13:11:17 浏览: 25
实现一个简单的电话号码本功能,可以使用Python中的列表(List)作为基础数据结构。这里是一个简化的顺序表(线性存储)的实现:
```python
class PhoneNumberBook:
def __init__(self):
self.entries = []
# 录入新联系人
def add_entry(self, name, phone_number):
self.entries.append({'name': name, 'phone_number': phone_number})
# 删除联系人
def delete_entry(self, name):
for entry in self.entries:
if entry['name'] == name:
self.entries.remove(entry)
break
# 按使用频率排序(这里是基于名字,实际需求可根据情况调整)
def sort_by_frequency(self):
self.entries.sort(key=lambda x: x['name'])
# 列出所有联系人
def list_all(self):
return self.entries
# 根据姓名查找号码
def find_phone_by_name(self, name):
for entry in self.entries:
if entry['name'] == name:
return entry['phone_number']
return None
# 根据号码查找姓名
def find_name_by_phone(self, phone_number):
for entry in self.entries:
if entry['phone_number'] == phone_number:
return entry['name']
return None
# 示例用法
book = PhoneNumberBook()
book.add_entry('Alice', '12345678')
book.add_entry('Bob', '98765432')
book.sort_by_frequency()
print(book.list_all())
print(book.find_phone_by_name('Alice'))
print(book.find_name_by_phone('12345678'))
```
阅读全文
相关推荐


















