用链表写出航班信息查询
时间: 2023-04-02 16:01:21 浏览: 76
好的,以下是用链表写出航班信息查询的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct flight {
char flight_no[10]; // 航班号
char departure[20]; // 出发地
char destination[20]; // 目的地
char departure_time[20]; // 出发时间
char arrival_time[20]; // 到达时间
struct flight *next; // 下一个航班
} Flight;
// 创建一个新的航班节点
Flight *new_flight(char *flight_no, char *departure, char *destination, char *departure_time, char *arrival_time) {
Flight *f = (Flight *)malloc(sizeof(Flight));
strcpy(f->flight_no, flight_no);
strcpy(f->departure, departure);
strcpy(f->destination, destination);
strcpy(f->departure_time, departure_time);
strcpy(f->arrival_time, arrival_time);
f->next = NULL;
return f;
}
// 插入一个航班节点到链表中
void insert_flight(Flight **head, Flight *f) {
if (*head == NULL) {
*head = f;
} else {
Flight *p = *head;
while (p->next != NULL) {
p = p->next;
}
p->next = f;
}
}
// 根据航班号查询航班信息
void search_flight(Flight *head, char *flight_no) {
Flight *p = head;
while (p != NULL) {
if (strcmp(p->flight_no, flight_no) == ) {
printf("航班号:%s\n", p->flight_no);
printf("出发地:%s\n", p->departure);
printf("目的地:%s\n", p->destination);
printf("出发时间:%s\n", p->departure_time);
printf("到达时间:%s\n", p->arrival_time);
return;
}
p = p->next;
}
printf("没有找到航班号为%s的航班\n", flight_no);
}
int main() {
Flight *head = NULL;
insert_flight(&head, new_flight("MU1234", "上海", "北京", "2022-01-01 08:00", "2022-01-01 10:00"));
insert_flight(&head, new_flight("CA5678", "北京", "上海", "2022-01-01 09:00", "2022-01-01 11:00"));
insert_flight(&head, new_flight("CZ9012", "广州", "深圳", "2022-01-01 10:00", "2022-01-01 11:00"));
search_flight(head, "MU1234");
search_flight(head, "CA5678");
search_flight(head, "CZ9012");
search_flight(head, "MU5678");
return ;
}