数据结构的学生通讯管理系统的代码
时间: 2024-02-05 12:13:38 浏览: 42
下面是一个简单的通讯录管理系统的示例代码,使用了链表数据结构:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_PHONE_LEN 15
typedef struct node {
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
struct node *next;
} Node;
Node *create_node(char *name, char *phone) {
Node *node = (Node*)malloc(sizeof(Node));
strcpy(node->name, name);
strcpy(node->phone, phone);
node->next = NULL;
return node;
}
void add_node(Node **head, char *name, char *phone) {
Node *node = create_node(name, phone);
node->next = *head;
*head = node;
}
void delete_node(Node **head, char *name) {
if (*head == NULL) {
return;
}
Node *prev = NULL;
Node *curr = *head;
while (curr != NULL) {
if (strcmp(curr->name, name) == 0) {
if (prev == NULL) {
*head = curr->next;
} else {
prev->next = curr->next;
}
free(curr);
return;
}
prev = curr;
curr = curr->next;
}
}
void print_list(Node *head) {
Node *curr = head;
while (curr != NULL) {
printf("%s: %s\n", curr->name, curr->phone);
curr = curr->next;
}
}
int main() {
Node *head = NULL;
add_node(&head, "Alice", "123456");
add_node(&head, "Bob", "234567");
add_node(&head, "Charlie", "345678");
print_list(head);
delete_node(&head, "Bob");
print_list(head);
return 0;
}
```
这个通讯录管理系统包括了添加节点、删除节点和打印节点的功能。你可以根据自己的需要进行修改,比如添加更多的字段、增加查找节点的功能等等。