用c语言实现:建立单链表,输入姓名、电话、快递单号、地址信息,存储在该单链表中,并输出该单链表
时间: 2024-02-03 07:04:17 浏览: 129
好的,以下是用C语言实现建立单链表、输入信息、输出信息的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义链表节点结构体
typedef struct node {
char name[20]; // 姓名
char phone[20]; // 电话号码
char expressNum[20]; // 快递单号
char address[50]; // 地址信息
struct node *next; // 指向下一个节点的指针
} Node;
// 创建链表节点
Node* createNode(char name[], char phone[], char expressNum[], char address[]) {
Node *p = (Node*)malloc(sizeof(Node));
strcpy(p->name, name);
strcpy(p->phone, phone);
strcpy(p->expressNum, expressNum);
strcpy(p->address, address);
p->next = NULL;
return p;
}
// 插入节点到链表尾部
void insertNode(Node *head, Node *p) {
while (head->next != NULL) {
head = head->next;
}
head->next = p;
}
// 输出链表信息
void printList(Node *head) {
printf("姓名\t电话\t快递单号\t地址\n");
while (head->next != NULL) {
head = head->next;
printf("%s\t%s\t%s\t%s\n", head->name, head->phone, head->expressNum, head->address);
}
}
int main() {
Node *head = createNode("", "", "", ""); // 创建头节点
int flag = 1;
while (flag) {
char name[20], phone[20], expressNum[20], address[50];
printf("请输入姓名(输入0结束):");
scanf("%s", name);
if (strcmp(name, "0") == 0) {
flag = 0;
break;
}
printf("请输入电话号码:");
scanf("%s", phone);
printf("请输入快递单号:");
scanf("%s", expressNum);
printf("请输入地址信息:");
scanf("%s", address);
Node *p = createNode(name, phone, expressNum, address);
insertNode(head, p);
}
printList(head);
return 0;
}
```
运行结果示例:
```
请输入姓名(输入0结束):张三
请输入电话号码:123456789
请输入快递单号:0001
请输入地址信息:上海市浦东新区
请输入姓名(输入0结束):李四
请输入电话号码:987654321
请输入快递单号:0002
请输入地址信息:上海市闵行区
请输入姓名(输入0结束):0
姓名 电话 快递单号 地址
张三 123456789 0001 上海市浦东新区
李四 987654321 0002 上海市闵行区
```
阅读全文