假设p指向表头指针为h的不带表头结点的单链表中的第一个结点,则删除第一个结点应执行()。A.h=p->next; delete p;B.h=h->next; delete h;C.h=p->next; delete h;D.h->next=p->next; delete p;

题目

假设p指向表头指针为h的不带表头结点的单链表中的第一个结点,则删除第一个结点应执行()。

A.h=p->next; delete p;

B.h=h->next; delete h;

C.h=p->next; delete h;

D.h->next=p->next; delete p;


相似考题
更多“假设p指向表头指针为h的不带表头结点的单链表中的第一个结点,则删除第一个结点应执行()。”相关问题
  • 第1题:

    某单循环链表头指针为head且表长大于1,指针p指向表中某个结点,若p→next→next= head,则(11)。

    A.p指向头结点

    B.p指向尾结点

    C.*p的直接后继是头结点

    D.*P的直接后继是尾结点


    正确答案:D
    解析:因为p→next→next=head,所以p→next是尾结点,即*P的直接后继是尾结点。

  • 第2题:

    设有指针head指向的带表头结点的单链表,现将指针p指向的结点插入表中,使之成为第一个结点,其操作是______其中p^.next、head^.next分别表示p、head所指结点的链域。

    A.p^.next:=head^.next; head^.next:=p

    B.p^.next:=head^.next; head:=p

    C.p^.next:=head; head:=p

    D.head^.next:=head; p:=head


    正确答案:A
    解析:注意本链表是带表头附加结点的,因此表头结点的指针head^.next将指针为p的结点插入表头,即将原表头结点指针head^.next赋值给p所指向结点的链域p^.next,然后把p赋值给表头附加结点的链域head^.next。也就是两步撮作:p^.next:=head^.next;head^.next:=p。答案为选项A。

  • 第3题:

    阅读以下说明和C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。
    [说明]
    函数ReverseList(LinkList headptr)的功能是将含有头结点的单链表就地逆置。处理思路是将链表中的指针逆转,即将原链表看成由两部分组成:已经完成逆置的部分和未完成逆置的部分,令s指向未逆置部分的第一个结点,并将该结点插入已完成部分的表头(头结点之后),直到全部结点的指针域都修改完成为止。
    例如,某单链表如图1所示,逆置过程中指针s的变化情况如图2所示。

    链表结点类型定义如下:

    typedef struct Node{ int data; Struct Node *next; }Node,*LinkList; [C函数] void ReverseList(LinkList headptr) { //含头结点的单链表就地逆置,headptr为头指针 LinkList p,s; if(______) return; //空链表(仅有头结点)时无需处理 P=______; //令P指向第一个元素结点 if(!P->next) return; //链表中仅有一个元素结点时无需处理 s=p->next; //s指向第二个元素结点 ______ =NULL; //设置第一个元素结点的指针域为空 while(s){ p=s; //令p指向未处理链表的第一个结点 s= ______; p->next=headptr->next; //将p所指结点插入已完成部分的表头 headptr->next= ______; } }


    答案:
    解析:
    !headptr->next,或!headptr||!headptr->next,或其等价形式
    headptr->next
    headptr->next->next,或p->next,或其等价形式
    s->next,或p->next, 或其等价形式
    p

  • 第4题:

    在循环双向链表中表头结点的左指针域指向()结点,最后一个结点的右指针域指向()结点。


    正确答案:表尾;表头

  • 第5题:

    设有指针head指向的带表头结点的单链表,现将指针p指向的结点插入表中,使之成为第一个结点,其操作是()(其中,p->next、head->next分别表示p、head所指结点的链域)。

    • A、p->next=head->next;head->next=p;
    • B、p->next=head->next;head=p;
    • C、p->next=head;head=p;
    • D、p->next=head;p=head;

    正确答案:A

  • 第6题:

    设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。


    正确答案:q->next=p->next,p->next=q

  • 第7题:

    设单链表中指针p 指向结点A,q指针指向其后继结点。若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。


    正确答案:p->next=q->next

  • 第8题:

    设有一个不带头结点的单向链表,头指针为head,结点类型为NODE,每个结点包含一个数据域data和一个指针域next,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句。删除链表的第一个结点。


    正确答案:head=head->next;

  • 第9题:

    填空题
    设单链表中指针p指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。

    正确答案: p->next=(p->next)->next
    解析: 暂无解析

  • 第10题:

    填空题
    设单链表中指针p 指向结点A,q指针指向其后继结点。若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。

    正确答案: p->next=q->next
    解析: 暂无解析

  • 第11题:

    填空题
    在循环双向链表中表头结点的左指针域指向()结点,最后一个结点的右指针域指向()结点。

    正确答案: 表尾,表头
    解析: 暂无解析

  • 第12题:

    填空题
    要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行()。

    正确答案: q->next=p->next
    解析: 暂无解析

  • 第13题:

    程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、P、q、均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。

    该程序段实现的功能是( )。

    A.首结点成为尾结点

    B.尾结点成为首结点

    C.删除首结点

    D.删除尾结点


    正确答案:A
    循环找到末尾结点,然后赋值给第一个结点,所以选择A)。

  • 第14题:

    设单链表表头指针为head,现将指针P指向的结点插入表中,使之成为第一个结点,其操作是 ______。其中p^. next、head^.next分别表示p、head所指结点的链域。

    A.p^. next:=head^. next;head^. next:=p

    B.p^. next:=head^. next;head:=p

    C.p^. next:=head;head:=p

    D.head^. next:=head;p:=head


    正确答案:C
    解析:将p插入单链表的操作是:先将p->next值赋为表头指针指向的结点,然后将表头指针改为p.

  • 第15题:

    在长度为n(Il>1)的()上,删除第一个元素.其时间复杂度为O(n)。

    A.只有首结点指针的不带头结点的循环单链表
    B.只有尾结点指针的不带头结点的循环单链表
    C.只有尾结点指针的带头结点的循环单链表
    D.只有头结点的循环单链表

    答案:A
    解析:
    只有首结点指针的不带头结点的循环单链表删除第一个元素,需要遍历整个链表,因此A项的时间复杂度为O(n),BCD三项的时间复杂度都为O(1)。

  • 第16题:

    已知指针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;

    正确答案:A

  • 第17题:

    设单链表中指针p指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。


    正确答案:p->next=(p->next)->next

  • 第18题:

    设有头指针为head的不带头结点的非空的单向循环链表,指针p指向其尾结点,要删除第一个结点,则可利用下述语句 head=head->next;和()。

    • A、p=head;
    • B、p=NULL;
    • C、p->next=head;
    • D、head=p;

    正确答案:C

  • 第19题:

    设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使p指向第一个结点,可用语句()。


    正确答案:p=p->next;

  • 第20题:

    要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行()。


    正确答案:q->next=p->next;

  • 第21题:

    单选题
    设有指针head指向的带表头结点的单链表,现将指针p指向的结点插入表中,使之成为第一个结点,其操作是()(其中,p->next、head->next分别表示p、head所指结点的链域)。
    A

    p->next=head->next;head->next=p;

    B

    p->next=head->next;head=p;

    C

    p->next=head;head=p;

    D

    p->next=head;p=head;


    正确答案: A
    解析: 暂无解析

  • 第22题:

    问答题
    设有一个不带头结点的单向链表,头指针为head,结点类型为NODE,每个结点包含一个数据域data和一个指针域next,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句。删除链表的第一个结点。

    正确答案: head=head->next;
    解析: 暂无解析

  • 第23题:

    填空题
    设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使p指向第一个结点,可用语句()。

    正确答案: p=p->next
    解析: 暂无解析

  • 第24题:

    填空题
    设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。

    正确答案: q->next=p->next,p->next=q
    解析: 暂无解析