问答题 对单链表中元素按插入方法排序的C语言描述算法如下,其中L为链表头结点指针。请填充算法中标出的空白处,完成其功能。 typedef struct node {int data; struct node*next; }linknode,*link; voidInsertsort(1ink L) {link P,q,r,u; p=L一>next;(1); while((2) ) {r=L; q=n->next; while((3) &&q一>data<=p一>data){r=q; q=q一>next;} u=p一>nextj (4);(5);p=u; } }【北京科技大学2001二(10分)】
【正确答案】正确答案:(1)L一>next=null //置空链表,然后将原链表结点逐个插入有序表中 (2)p!--null //或p,当链表尚未到尾 (3)q!=p //查p结点在链表中的插入位置,这时q是工作指针 (4)p->next=r->next //或p一>next=q 苷p结点链入链表中 (5)r->next=p //r是q的前驱,u是下个待插入结点的指针
【答案解析】