当前位置:   article > 正文

数据结构算法思想:使用线性表实现一个通讯录_用线性表实现个简单的地址簿程序,可以添加、删除联系人,并按照姓名首字母进行排序

用线性表实现个简单的地址簿程序,可以添加、删除联系人,并按照姓名首字母进行排序

使用线性表实现一个通讯录,通讯录内容有:学号、姓名、电话号码。使其完成以下功能。
(1) 建立一个通讯录
(2) 插入一个数据元素
(3) 删除一个元素,返回其值
(4) 结束程序
请写出基本的算法思想。

一,定义一个通讯录的数据结构

  1. struct Contact {
  2. int id; // 学号
  3. std::string name; // 姓名
  4. std::string phone; // 电话号码
  5. };

二,定义一个通讯录(使用数组)

  1. class AddressBook {
  2. private:
  3. Contact contacts[MAX_SIZE]; // 假设通讯录的最大容量为 MAX_SIZE
  4. int size; // 当前通讯录中的联系人数量
  5. public:
  6. AddressBook() : size(0) {}
  7. // 其他功能方法...
  8. };

三,实现功能方法

  1. 建立一个通讯录:初始化;
  2. 插入一个数据元素,需要检查通讯录是否已满(即size是否等于MAX_SIZE);
  3. 删除一个元素,返回其值,找到要删的元素,将所有元素前移一位以覆盖要删除的元素。
  4. 结束程序。
  1. bool AddressBook::insert(const Contact& contact) {
  2. if (size >= MAX_SIZE) {
  3. return false; // 通讯录已满,插入失败
  4. }
  5. contacts[size] = contact;
  6. size++;
  7. return true; // 插入成功
  8. }
  9. bool AddressBook::remove(int id, Contact& removedContact) {
  10. for (int i = 0; i < size; i++) {
  11. if (contacts[i].id == id) {
  12. removedContact = contacts[i]; // 保存被删除的元素
  13. for (int j = i; j < size - 1; j++) {
  14. contacts[j] = contacts[j + 1]; // 将后面的元素向前移动
  15. }
  16. size--; // 减少通讯录中的联系人数量
  17. return true; // 删除成功
  18. }
  19. }
  20. return false; // 未找到要删除的元素,删除失败
  21. }

 四,主函数

在主函数中创建对象,使用上述功能。

  1. int main() {
  2. AddressBook addressBook;
  3. // 插入一些联系人信息...
  4. Contact contact1 = {1, "张三", "123456789"};
  5. addressBook.insert(contact1);
  6. // 插入其他联系人信息...
  7. // 删除一个联系人并获取其信息...
  8. Contact removedContact;
  9. if (addressBook.remove(1, removedContact)) {
  10. std::cout << "已删除联系人: " << removedContact.name << std::endl;
  11. } else {
  12. std::cout << "未找到要删除的联系人" << std::endl;
  13. }
  14. // ...其他操作...
  15. return 0; // 程序结束
  16. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/559420
推荐阅读
相关标签
  

闽ICP备14008679号