设指针变量p指向单链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X需要执行的
设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为()。
A.q=p->next;p->data=q->data;p->next=q->next;free(q);
B.q=p->next;q->data=p->data;p->next=q->next;free(q);
C.q=p->next;p->next=q->next;free(q);
D.q=p->next;p->data=q->data;free(q);
设线性表为(1,13,16,18) ,以下程序用说明结构变量的方法建立头指针为head,尾结,点为18的单向循环链表,并输出链表中各结点中的数据。
#define NULL 0
Void main()
{
NODE a,b,c,d,*head,*p;
a.data=1;
b.data=13;
c.data=16;
d.data=18; /* d是尾结点*/
head=();
a.next=&b;
d.data=18; /* d是尾结点*/
head=();
a.next=&b;
b.next=&c;
c.next=&d;
()=head; /*以上结束建立循环链表的过程*/
p=head; /* p为工作指针,准备输出链表*/
do
{
printf("%d/n",());
();
}while();
}
设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()。
A.head==0
B.head->next==0
C.head->next==head
D.head!=0
设单向链表中,指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为()。
A.p一>next=p→next一>next;
B. p=p一>next;
c. p=p一>next->next;
D.p一>next=p;
struc node {int data; struct node*next; }*P,*q,*r; 现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是()。
A.r一>next=q;q一>next=r->next;p一>next=r;
B.q->next=r->next;p->next=r;r->next=q;
C.p->next=r;q->next=r->next;r->next=P;
D.q->next=r->next;r->next=q;p->next=r;