数据结构c++菜鸟级超简单增资(教师工资大于两千工资上涨10%)算法代码(一个顺序表,一个单链表),超级超级超级简单那种
时间: 2024-09-21 18:13:03 浏览: 38
在C++中,我们可以使用简单的遍历数据结构的方式来实现这个算法。这里我会分别展示如何处理顺序表(数组)和单链表。
**对于顺序表(数组):**
```cpp
#include <iostream>
using namespace std;
// 假设Teacher是一个包含工资字段的结构体
struct Teacher {
int salary;
};
// 增资函数
void increaseSalary(Teacher* teachers, int size, double rate) {
for (int i = 0; i < size; ++i) {
if (teachers[i].salary > 2000) { // 判断工资是否大于2000
teachers[i].salary += teachers[i].salary * rate; // 上涨10%
}
}
}
// 示例使用
int main() {
Teacher teacherArray[5] = {{3000,}, {2500,}, {1800,}, {2200,}, {4000,}}; // 初始化数组
increaseSalary(teacherArray, sizeof(teacherArray) / sizeof(teacherArray[0]), 0.1); // 增资操作
for (const auto& t : teacherArray) {
cout << "Teacher Salary: " << t.salary << endl;
}
return 0;
}
```
**对于单链表:**
```cpp
#include <iostream>
using namespace std;
// 定义链表节点
struct Node {
int salary;
Node* next;
};
class LinkedList {
private:
Node* head;
public:
void insert(int salary) {
Node* newNode = new Node{salary, nullptr};
if (!head) {
head = newNode;
} else {
Node* current = head;
while (current->next) {
current = current->next;
}
current->next = newNode;
}
}
void increaseSalary(double rate) {
Node* current = head;
while (current) {
if (current->salary > 2000) {
current->salary += current->salary * rate;
}
current = current->next;
}
}
// 添加显示链表元素的辅助函数(略)
};
int main() {
LinkedList list;
list.insert(3000);
list.insert(2500);
// ... 其他插入操作
list.increaseSalary(0.1);
displayLinkedList(list); // 自定义的显示链表函数
return 0;
}
```
阅读全文