C语言创建一个图书表线性表全部代码
时间: 2024-09-27 07:14:31 浏览: 43
在C语言中,我们可以使用结构体(struct)来表示图书,并通过数组或链表的方式来创建一个图书表的线性表。这里我们假设每个图书有书名、作者和ID三个属性。下面是创建图书表的基本步骤:
首先,定义一个图书结构体(book struct):
```c
#include <stdio.h>
#include <string.h>
// 定义图书结构体
typedef struct {
char book_name[50];
char author[50];
int id;
} Book;
```
接着,你可以选择数组作为线性表的实现:
```c
// 创建图书表,使用数组
#define MAX_BOOKS 10
Book books[MAX_BOOKS];
void add_book(Book* books, int index, const char* name, const char* author, int id) {
if (index >= MAX_BOOKS) {
printf("图书表已满,无法添加新书。\n");
return;
}
strcpy(books[index].book_name, name);
strcpy(books[index].author, author);
books[index].id = id;
}
// 示例函数,展示如何添加和访问书籍
int main() {
// 添加书籍示例
add_book(books, 0, "红楼梦", "曹雪芹", 1);
add_book(books, 1, "西游记", "吴承恩", 2);
// 访问书籍
for (int i = 0; i < MAX_BOOKS; i++) {
printf("第%d本书: %s, 作者: %s, ID: %d\n", i+1, books[i].book_name, books[i].author, books[i].id);
}
return 0;
}
```
如果你更喜欢动态内存管理,可以考虑使用链表:
```c
typedef struct Node {
Book book;
struct Node* next;
} Node;
Node* create_book_list() {
Node* head = NULL;
return head;
}
void append_book(Node** head, const char* name, const char* author, int id) {
// ... 实现链表插入逻辑
}
// 主函数同上,只需将数组操作替换为链表操作
```
阅读全文