谭浩强的C语言题集
源代码在线查看: 单链表练习.txt
假设结点结构如下:
typedef struct linknode
{
ElemType data;
struct linknode *next;
}node;
一、单选
1、在一个单链表中,已知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=p;
(D) p->next=s; s->next=q;
2、在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行( )
(A) s->next=p; p->next=s;
(B) s->next=p->next; p->next=s;
(C) s->next=p->next; p=s;
(D) p->next=s; s->next=p;
3、在一个单链表中,若删除p所指结点的后继结点,则执行( )
(A) p->next=p->next->next;
(B) p=p->next; p->next=p->next->next;
(C) p->next=p->next;
(D) p=p->next->next;
二、填空
4、在一个单链表中的p所指结点之前插入一个s所指结点时,可执行如下操作:
s->next=________;
p->next=s;
t=p->data;
p->data=________;
s->data=________;
5、在一个单链表中删除p所指向的结点时,应执行下列操作:
q=p->next;
p->data=p->next->data;
p->next=________;
delete q;