链表之人事系统的代码实现c++
时间: 2024-10-08 09:26:53 浏览: 10
链表在人事系统中的应用通常用于存储员工信息,比如姓名、职位、入职日期等。这里是一个简单的单向链表结构和部分操作的C++实现示例:
```cpp
// 定义节点结构体
struct Employee {
std::string name;
std::string position;
int hire_date; // 假设入职日期用整数表示
// 指针成员用于链接下一个节点
Employee* next = nullptr;
};
// 创建链表类
class HRSystem {
private:
Employee* head;
public:
// 构造函数,初始化链表为空
HRSystem() : head(nullptr) {}
// 添加新员工到链表尾部
void addEmployee(const std::string& name, const std::string& position, int hire_date) {
Employee* newNode = new Employee();
newNode->name = name;
newNode->position = position;
newNode->hire_date = hire_date;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
} else {
Employee* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 打印链表中的所有员工信息
void printEmployeeList() {
Employee* temp = head;
while (temp != nullptr) {
std::cout << "Name: " << temp->name << ", Position: " << temp->position << ", Hire Date: " << temp->hire_date << std::endl;
temp = temp->next;
}
}
// 删除指定员工,如果找到则删除,否则不做任何操作
bool deleteEmployeeByName(const std::string& name) {
if (head == nullptr) return false;
Employee* current = head;
Employee* previous = nullptr;
while (current != nullptr && current->name != name) {
previous = current;
current = current->next;
}
if (current != nullptr) {
if (previous == nullptr) {
head = current->next;
} else {
previous->next = current->next;
}
delete current;
return true;
}
return false;
}
};
```
这个例子展示了如何创建一个简单的链表结构,包括添加员工、打印列表和删除员工的操作。你可以根据实际需求扩展这个基础框架。