1、设有图书馆中每个图书的信息包括编号(num)、书名(name)、作者(author)和馆存量(stock)四项信息。假定所有图书信息已经按编号升序采用顺序存储方式存储在一个一维数组中下标从0开始的各个数组元素中。要求:
(1)写出用于存储图书信息所需的结构体类型定义;
(2)编写两个函数,分别完成以下功能:
① 实现按图书编号进行查找的功能:即给定一个编号,查找编号等于指定编号的图书。若查找成功则返回该图书所在数组元素的下标,若查找不成功则返回-1;(函数名为search)
②实现显示库存图书的功能:即将所有图书的4项信息显示在屏幕上。(函数名为output)
2、设有一个非空整型线性表采用带头结点的单链表进行存储,单链表的头指针为head,结点的数据域名为data,指针域名为next,结点类型如下:
typedef struct nodetype
{int data;
struct nodetype *next;
}NODE ;
现在要求编写函数实现:删除单链表中的最后一个结点,并将删除结点的数据值返回给主调函数。删除函数的原型为int delete(NODE *head)。
3、有一个房产信息管理系统,实现如下部分功能(要求用顺序表存储):
(1)房产信息包含:门牌号、户主、电话号码、面积。定义房产信息的结构体数据结构,名称为house,并将该类型定义为elemtype类型。
(2) 编写一个初始化函数(函数名为input):从键盘读入房产基本信息。
(3)编写一个可以查询出任何一个住户应缴纳取暖费用的函数float cost(int a[],int n,int k)。其中n是住户数量,数组a中存放房产基本信息,k是要查询的门牌号(当有对应的门牌号,返后应缴纳取暖费,否则返后0,并且给出提示信息)计算公式为:每户应缴纳费用=面积*x元/m2。。
(4)编写主函数,通过菜单循环调用以上两个函数。
4,假设有两个递减有序带头结点的单链表A和B,其结点类型为
typedef struct node
{ int data;
struct node *next;
}LNode;
试编写一算法利用原结点空间将它们合并为一个递增有序的链表C。
第1题和第3题任选一题,第2题和第四题任选一题。