问题 问答题

试题三(15 分,每空3 分)阅读下列函数说明和C 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。[函数说明]函数movetoend(LinkedList La,int i)的功能是:将线性表A 的第i 个元素移到表尾。若移动成功,则返回0,否则返回-1。线性表A 采用带头结点的单链表表示,La 为表A 的头指针,如下图所示。

链表结点的类型定义为:typedef struct node {int key;struct node *next;}*LinkedList;[函数]int movetoend(LinkedList La,int i){LinkedList p,q,prep;int k=1;p = La->next; prep = La;while ( (1) ) { /*查找第i 个元素并使指针p 指向该结点*/prep = p; p = p->next; k++;}if (!p || k>i) return -1;if ( (2) ) /*第i 个元素结点已经是表尾结点,则无需移动*/return 0;q=p;while ( (3) ) q = q->next; /*查找表尾并使q 指向表尾结点*/(4) =p->next;p->next = NULL;(5) ;return 0;}

答案

参考答案:(1)p&&knext,及其等价形式(3)q->next(4)prep->next(5)q->next=p

单项选择题
判断题