用c语言单链表实现输入名字删除电话号码
时间: 2024-10-20 14:14:02 浏览: 25
链表-使用C语言单链表实现的贪吃蛇小游戏.zip
在C语言中,我们可以使用单链表来存储名字和电话号码的数据结构。首先,我们需要创建一个节点结构体,包含名字和电话号码两个成员。然后,可以设计一个单链表的头指针,并实现插入、删除操作。以下是简单的步骤:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
char name[50];
char phone[15]; // 或者使用更合适的数据类型如电话号码的整数形式
struct Node* next;
} Person;
// 初始化链表为空
Person* createList() {
return NULL;
}
// 插入新的元素到链表尾部
void insert(Person** head, const char* name, const char* phone) {
Person* newNode = (Person*)malloc(sizeof(Person));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return;
}
strcpy(newNode->name, name);
strcpy(newNode->phone, phone);
newNode->next = *head;
*head = newNode;
}
// 删除特定名字的节点(假设我们有名字的唯一标识)
void deleteByName(Person** head, const char* targetName) {
if (*head == NULL || strcmp(targetName, (*head)->name) != 0) {
return; // 没找到目标节点
}
Person* temp = *head;
*head = (*head)->next;
free(temp); // 释放已删除节点的内存
}
// 打印链表内容
void printList(Person* head) {
while (head != NULL) {
printf("Name: %s, Phone: %s\n", head->name, head->phone);
head = head->next;
}
}
int main() {
Person* list = createList();
// 添加一些数据
insert(&list, "Alice", "1234567890");
insert(&list, "Bob", "9876543210");
insert(&list, "Charlie", "4567890123");
// 打印初始列表
printList(list);
// 删除某个名字(这里仅示例,实际应用需要提供实际的名字作为参数)
deleteByName(&list, "Alice");
// 再次打印更新后的列表
printList(list);
return 0;
}
```
阅读全文