用C语言创建三个员工信息,用静态链表保存,包括编号,姓名,部门,并输出
时间: 2024-09-26 21:14:42 浏览: 52
在C语言中,我们可以使用结构体(struct)来表示员工信息,然后通过静态链表(也称为无头结点链表)来存储这些数据。首先,我们定义一个包含员工信息的结构体,然后创建一个节点结构,用于链接列表。以下是简单的步骤:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义员工信息结构体
typedef struct {
int id;
char name[50];
char department[50];
} Employee;
// 链表节点结构
typedef struct Node {
Employee info;
struct Node* next;
} Node;
// 动态分配内存并初始化员工信息
Node* create_employee(int id, char* name, char* department) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode != NULL) {
newNode->info.id = id;
strcpy(newNode->info.name, name);
strcpy(newNode->info.department, department);
newNode->next = NULL; // 初始化下一个指针为空
}
return newNode;
}
// 打印链表中的所有员工信息
void print_list(Node* head) {
while (head != NULL) {
printf("编号:%d, 姓名:%s, 部门:%s\n", head->info.id, head->info.name, head->info.department);
head = head->next;
}
}
int main() {
// 创建三个员工并添加到链表中
Node* listHead = NULL;
listHead = create_employee(1, "张三", "销售部");
if (listHead) {
Node* secondNode = create_employee(2, "李四", "技术部");
if (secondNode) {
Node* thirdNode = create_employee(3, "王五", "人力资源");
if (thirdNode) {
// 连接节点
secondNode->next = thirdNode;
// 输出所有员工信息
print_list(listHead);
} else {
free(secondNode); // 如果第三个节点失败,释放第二个节点
}
} else {
free(listHead); // 如果第二个节点失败,直接释放第一个节点
}
}
return 0;
}
```
在这个示例中,`main()` 函数首先创建了三个员工的信息,并将它们依次加入链表。最后通过 `print_list()` 函数打印出所有的员工信息。
阅读全文