请描述在一个单链表中插入一个数据q的插入过程。
已知一个有序单链表(从小到大排列),表头指针为head,编写一个函数向该单链表中插入一个元素为x的节点,使插入后该单链表仍有序。
算法实现的思路为:在有序单链表中插入一个数据元素x,首先要找到该元素应该插入到什么位置,才能保证插入后的单链表仍为有序表。因此,算法的第一步是寻找x的位置:设置指针p、q,最初p指向头结点,q指向头结点的下一个结点,比较q所指数据域的值与x的大小,如果小于x,则p、q分别向后移动一个位置,使p始终作为q的前驱结点,然后重复上面的比较过程;如果比较结果大于x或是比较到最后单链表结束了,则找到了插入位置,在p与q之间插入结点x即可。算法的具体实现如下:
在一个长度为n的带头结点的单链表h上,设有尾指针r,则执行()操作与链表的表长有关。
A.删除单链表中的第一个元素
B.删除单链表中最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
在一个单链表中,已知q所指结点是P所指结点的前驱结点,若在q和P之间插入结点S,则执行()。
A.s->next=p->next;p->next=s;
B.P->next=s->next;s->next=p;
C.q->next=s;s->next==D;
D.P->next=s;s->next=q;
在一个单链表中,若q节点是p节点的前驱节点,若在q与p之间插入节点s,则执行()。
A.s→qink=p→link; p→link=s
B.p→link=s; s→qink=q
C.p→link=s→link; s→link=p
D.q→link=s; s→link=p
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!