已知f为单链表的表头指针,链表中存储的都是整型数据,试写出实现下列运算的递归算法:(1)求链表中的最大整数。(2)求链表的结点个数。(3)求所有整数的平均值。
第2题
(1)编写一个算法,从任一给定的位置(pr,p)开始,将指针p右移k个结点。如果p移出链表,则将p为0,并让pr停留在链表最右边的结点上。
(2)编写一个算法,从任一给定的位置(pr,p)开始,将指针p左移k个结点。如果p移出链表,则将p置为0,并让pr停留在链表最左边的结点上。
第3题
建立一个链表,链表节点用于存储如下结构体: struct Student { long num; //学号 char name[20]; //姓名 char sex; //性别 float score; //成绩 }; 要求:使用函数和指针进行合理的编程, 1、建立链表 struct SLink { struct Student s; struct SLink *next; } *np; ,并设计如下函数: 1)createLink()生成一个空链表; 2)insertData(struct Student s)按学生学号由小到大的顺序,将s插入到链表合适的位置; 提示:使用np=(struct SLink *) malloc(sizeof(struct SLink)开辟内存以建立新节点。 3)deleteData(long num)删除学号为num的节点。 提示:使用free(np)释放被删除节点的内存; 4)printLink()顺序打印输出链表各节点的内容。 2、上传调试成功的源代码及说明,供评阅者进行运行测试,并评价得分。
第6题
A.单链表的插入操作中,需要建立一个新数据结点
B.单链表的访问方式是顺序访问方式,即要从第一个结点开始依次访问其他结点
C.建立单链表时,有正向生成构造和反向生成构造两种方法
D.单链表删除操作中,仅需要将被删结点从链表上取下来既可