用c语言实现:输入快递单号,查询单链表内的信息,输出该快递的序号信息
时间: 2024-02-21 22:02:25 浏览: 20
好的,我可以为您提供一个简单的 C 语言代码示例,实现您的要求。以下是代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义单链表结构体
typedef struct Node {
char number[20]; // 快递单号
int index; // 序号
struct Node* next; // 指向下一个节点的指针
} Node;
// 初始化单链表
Node* initList() {
Node* head = (Node*)malloc(sizeof(Node));
head->next = NULL;
return head;
}
// 向单链表中添加节点
void addNode(Node* head, char number[], int index) {
Node* p = head;
while(p->next != NULL) {
p = p->next;
}
Node* newNode = (Node*)malloc(sizeof(Node));
strcpy(newNode->number, number);
newNode->index = index;
newNode->next = NULL;
p->next = newNode;
}
// 根据快递单号在单链表中查找节点
Node* findNode(Node* head, char number[]) {
Node* p = head->next;
while(p != NULL) {
if(strcmp(p->number, number) == 0) {
return p;
}
p = p->next;
}
return NULL;
}
int main() {
Node* head = initList();
// 向单链表中添加节点
addNode(head, "1234567890", 1);
addNode(head, "2345678901", 2);
addNode(head, "3456789012", 3);
// 根据快递单号查找节点
char number[20];
printf("请输入快递单号:");
scanf("%s", number);
Node* node = findNode(head, number);
if(node != NULL) {
printf("该快递的序号信息为:%d\n", node->index);
} else {
printf("没有找到该快递单号对应的信息。\n");
}
return 0;
}
```
在这个示例代码中,我们定义了一个 `Node` 结构体作为单链表中的节点,包含了快递单号和序号两个属性。我们通过 `initList` 函数初始化一个空的单链表,并通过 `addNode` 函数向单链表中添加节点,最后通过 `findNode` 函数根据快递单号在单链表中查找节点。在 `main` 函数中,我们先向单链表中添加了三个节点,然后通过 `scanf` 函数获取用户输入的快递单号,再通过 `findNode` 函数查找节点,最后输出该快递的序号信息。