阅读以下说明和C代码,填补C代码中的空缺,将解答写在答题纸的对应栏内。
【说明】
设有头指针为 head 且不含有头结点的单链表,用来存储一个非递减有序的元素序列,如图4-1所示。
函数insertList(LinkList head, ElemType x)的功能是为元素x创建结点并将其插入到头指针为 head且不含头结点的单链表中,并保持表中元素非递减有序排列的特点,最后返回头指针。
【C代码】
typedef struct LNode * PtrToNode;
typedef int ElemType;
struct LNode {
ElemType elem; /*结点数据*/
PtrToNode next; / *指向后继结点的指针*/
};
typedef PtrToNode LinkList;
LinkList insertList (LinkList head,ElemType x) {
PtrToNode s;
s =(PtrToNode ) malloc ((1));
if( ! s) return head;//结点创建失败
s->elem = x;
s->next = NULL;
if ( ! head){ //插入x之前单链表为空
(2)
return head ;
}
if(x< head->elem) //x小于单链表中的最小元素
(3);
head = s;
return head;
}
PtrToNode pre, p;
pre = head; p = head->next;while (p && x>p->elem) {
(4);
(5);
}
s->next = p; //将新结点插入单链表中
pre->next =(6);
return head;
}