请你用c语言写一段基于链式存储结构的图书信息表的创建和输出的代码并给与注释
时间: 2024-06-03 21:06:59 浏览: 75
#include <stdio.h>
#include <stdlib.h>
// 定义一个图书信息结构体
typedef struct book {
int id; // 书籍编号
char name[50]; // 书籍名称
char author[30]; // 书籍作者
float price; // 书籍价格
struct book *next; // 指向下一个节点的指针
} Book;
// 创建新的图书节点
Book *newBook(int id, char name[], char author[], float price) {
Book *node = (Book*)malloc(sizeof(Book)); // 分配内存空间
node->id = id;
strcpy(node->name, name);
strcpy(node->author, author);
node->price = price;
node->next = NULL; // 初始化节点指针为NULL
return node;
}
// 输出图书信息表
void printBooks(Book *head) {
Book *p = head;
while (p != NULL) {
printf("id: %d, name: %s, author: %s, price: %.2f\n", p->id, p->name, p->author, p->price);
p = p->next; // 指向下一个节点
}
}
int main() {
// 创建三本书的链表
Book *book1 = newBook(1001, "C语言程序设计", "谭浩强", 29.8);
Book *book2 = newBook(1002, "数据结构与算法分析", "Mark Allen Weiss", 59.9);
Book *book3 = newBook(1003, "计算机组成原理", "唐朔飞", 49.5);
// 将三本书链接起来
book1->next = book2;
book2->next = book3;
// 输出图书信息表
printBooks(book1);
return 0;
}
阅读全文