请编程实现图书信息管理系统,采用如下的结构体类型定义创建单向链表保存图书的编号和书名等信息:
- struct book
- {
- char ID[10]; //图书编号
- char name[20]; //书名
- struct book *next;
- };
然后,采用单向链表编程完成以下功能:
(1)创建单向链表并存储图书信息,以空格为分隔符输入ID和 name,当 ID 为 0 时表示链表创建结束,并输出创建后的链表信息。
(2)删除某一编号的图书,并输出删除节点后的链表信息。
(3)释放链表所占的内存。
01 c
02 c++
03 java
0 0
01
创建的链表:
01,c
02,c++
03,java
删除后的链表:
02,c++
03,java
为了完成本关任务,你需要掌握:
线性结构的链式存储也称为链表,相比于顺序表,链表能够解决顺序表中空间资源浪费问题以及空间不足的问题。链表的每一个结点包含数据域和指针域,而每一个结点在内存中的地址是不连续的,且能适应动态变化。在数据插入和数据删除操作效率比顺序表高,但在数据查找和修改效率较低,需要遍历链表。
链表又分为:
有头链表,头节点不存数据,所以数据操作都从头节点所指的下一节点开始,就不会误操作到头节点。故更加常用。
无头链表,第一个节点就存数据,但数据操作就要判断是否是头节点,不能对头节点操作,特别像删除操作就不能对头节点进行。
创建单向链表存储信息,编写删除节点后的链表代码,最后释放链表所占的内存。