2、在一个带头结点的单链表中,若 head 所指结点是头结点,若要删除第一个实际元素结点,则执行()。
A.p=head->next;head->next=p->next;free(p);
B.p=head;free(p);head=head->next;
C.head=head->next;p=head;free(p);
D.p=head;head=head->next;free(p);
时间:2023-10-11 11:59:33
相似题目
-
从单链表中删除指针s所指结点的下一个结点t,其关键运算步骤为()。
A . s↑眑ink:=t
B . t↑眑ink:=s
C . t↑眑ink:=s↑眑ink
D . s↑眑ink:=t↑眑ink
-
带头结点的单链表head为空的条件是()。
-
设某带头结头的单链表的结点结构说明如下:typedef struct nodel{int data struct nodel*next;}node;试设计一个算法:void copy(node*headl,node*head2),将以head1为头指针的单链表复制到一个不带有头结点且以head2为头指针的单链表中。
-
在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行()
A、p->next=q->next; q->next=p;
B、q->next=p->next; p=q;
C、p->next=q->next; p->next=q;
D、q->next=p->next; p->next=q;
-
已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。
A . q->next=s->next;s->next=p;
B . s->next=p;q->next=s->next;
C . p->next=s->next;s->next=q;
D . s->next=q;p->next=s->next;
-
设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表达式()的结果为真,则p所指结点为尾结点。
-
设有一个不带头结点的单向链表,头指针为head,结点类型为NODE,每个结点包含一个数据域data和一个指针域next,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句。已知p1指向另一个新结点,把它插入到p所指结点和尾结点之间。
-
带头结点的单链表head为空的判定条件是()。
A . head==NULL
B . head->next==NULL
C . head->next!=NULL
D . head!=NULL
-
带头结点head的单链表为空的判定条件是( )
-
在一个单链表中,若将p所指结点从链表中移除,q已指向其前驱结点,则执行( )。
-
7. 对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()。
-
不带头结点的单链表head为空的判定条件是____
-
●带头结点的单链表head为空的判断条件是 ()。()
A.head=NULL
B.head->next=NULL
C.head->next=head
D.head<>NULL
-
在一个单链表中,若要删除由指针q所指向结点(若q存在后继结点的话),则执行()操作。
A.p=q->next,p->next=q->next,交换p、q所指结点的数据域的值
B.p=q->next,q->next=p,交换p、q所指结点的数据域的值
C.p=q->next交换p、q所指结点的数据域的值q->next=p->next
D.q->next=q->next->next,q->next=q
-
在一个单链表中,若在指针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->next ;
-
在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行(43)。A.s->link=p->link
在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行(43)。
A.s->link=p->link; p->link=s;
B.p->link=s; s->link=q;
C.p->link=S->link;s->link=p;
D.q->link=s;s->link=p;
-
2、对于一个非空的循环单链表,若头指针为head,假设指针myrear指向表中的最后一个结点,如果要在非空的循环单链表的最前面插入一个新结点p,则执行()。
A.p->next=head;myrear->next=p;head=p;
B.head->next=p;myrear->next=p;head=p;
C.myrear->next=p;head=p;head->next=p;
D.myrear->next=p;head=p;p->next=head;
-
在一个单链表中,已知q所指结点是p所指结点的后继结点,若在p和q之间插入结点s,则执行()。
A.s->next=p->next;p->next=s;
B.p->next=s->next; s->next=q;
C.q->next=s;s->next=p;
D.p->next=s;s->next=q->next;
-
带头结点的单链表head为空的判定条件是()
A.head==NULL
B.head->next==NULL
C.head->next!=NULL
D.head!=NULL
-
12、不带头结点的单链表head为空的判定条件是()。
A.head==NULL
B.head->next==NULL
C.head->next==head
D.head!=NULL
-
在一个单链表中,已知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;
-
在一个单链表中,若p所指的结点不是最后结点,则删除p所指的结点的后继结点的正确操作是()
A.p=p->next
B.p->next=p->next
C.p->next=p->next->next
D.p->next=p
-
在一个单链表中,已知q所指节点是p所指结点的直接前驱,若要删除p结点,则执行()操作。
A.q=p->next;free(p);
B.q->next=p->next;free(p);
C.q=p;p->next=p->next;free(q);
D.p->next=q->next;free(p);
-
8、在一个带头结点且头指针为head的非空双向循环双链表中,删除尾结点的操作是_______。
A.p=head -> prior;p -> prior->next=head;head ->next=p -> prior;free(p);
B.p=head -> prior;p -> prior->next=head;head->prior=p -> prior;free(p);
C.p=head -> prior;head->prior=p -> prior;p -> prior->next=head->next;free(p);
D.p=head -> prior;p -> prior->next=head;head->prior->next=p -> prior;free(p);