写一串客户信息管理系统中通过客户姓名删除信息的代码c++线性表
时间: 2024-09-28 17:14:06 浏览: 33
C++课程设计学生成绩管理系统源代码,C++程序设计期末大作业
5星 · 资源好评率100%
在C++中,如果你正在使用简单的线性表(例如数组或者链表)来存储客户信息,并且需要按姓名查找并删除特定客户的信息,这里是一个基于链表的简单示例。假设我们有一个`Customer`结构体,包含`name`和`info`字段:
```cpp
// 客户结构体
struct Customer {
string name;
// 其他客户信息
};
// 链表节点
class Node {
public:
Customer customer;
Node* next;
};
// 链表头指针
Node* head = nullptr;
// 删除函数 (按名字)
void deleteCustomerByName(string targetName) {
if (head == nullptr || head->customer.name != targetName) {
cout << "客户 " << targetName << " 未找到.\n";
return;
}
// 如果要删除的是头节点
if (head == head->next) {
Node* temp = head; // 创建临时指针
head = head->next;
delete temp; // 释放内存
} else {
Node* current = head;
while (current->next && current->next->customer.name != targetName) {
current = current->next;
}
if (current->next) {
current->next = current->next->next; // 跳过目标节点
delete current->next; // 释放内存
}
}
}
// 添加新客户的简略示例
void addCustomer(Node** head, Customer c) {
Node* newNode = new Node();
newNode->customer = c;
newNode->next = *head;
*head = newNode;
}
// 示例用法
void main() {
// 初始化链表...
addCustomer(&head, { "张三", "详细信息..." });
addCustomer(&head, { "李四", "更多信息..." });
// 删除某个客户
deleteCustomerByName("张三");
// ...其他操作
}
```
这个例子只展示了基本的删除操作,实际应用中你可能还需要处理链表为空、错误情况等。记住,每次删除元素后,一定要记得释放之前节点的内存。
阅读全文