更多“设一个带头结点的单向链表的头指针为head,设计算法,将链表的记”相关问题
  • 第1题:

    带头结点的单向链表的头指针为head,该链表为空的判定条件是()的值为真。

    Ahead==NULL

    Bhead->next==head

    Chead->next==NULL

    Dhead==head->next


    C

  • 第2题:

    设head1和p1分别是不带头结点的单向链表A的头指针和尾指针,head2和p2分别是不带头结点的单向链表B的头指针和尾指针,若要把B链表接到A链表之后,得到一个以head1为头指针的单向循环链表。单向链表的链域为next,设指针p指向单向链表中的某个结点,指针s指向一个要插入链表的新结点,现要把s所指结点插入p所指结点之后,某学生采用以下语句:p->next=s;s->next=p->next;这样做正确吗?若正确则回答正确,若不正确则说明应如何改写?


    正确答案:不对,s->next=p->next;p->next=s;

  • 第3题:

    设一个带头结点的单向链表的头指针为head,设计算法,将链表的记录,按照data域的值递增排序。


    正确答案: voidassending(Lnode*heaD.
    {Lnode*p,*q,*r,*s;
    p=head->next;q=p->next;p->next=NULL;
    while(q)
    {r=q;q=q->next;
    if(r->data<=p->datA.
    {r->next=p;head->next=r;p=r;}
    else
    {while(!p&&r->data>p->datA.
    {s=p;p=p->next;}
    r->next=p;s->next=r;}
    p=head->next;}
    }

  • 第4题:

    头指针为head的带头结点的单向循环链表,p所指向尾结点,要使该链表成为不带头结点的单向循环链表, 可执行head=head->nex;和()。

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

    正确答案:D

  • 第5题:

    设head1和p1分别是不带头结点的单向链表A的头指针和尾指针,head2和p2分别是不带头结点的单向链表B的头指针和尾指针,若要把B链表接到A链表之后,得到一个以head1为头指针的单向循环链表。写出其中两个关键的赋值语句(不用完整程序,结点的链域为next)。


    正确答案:p1->next=head2;p2->next=head1;

  • 第6题:

    带头结点的单向链表的头指针为head,该链表为空的判定条件是()的值为真。

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

    正确答案:C

  • 第7题:

    要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head->next;()。


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

  • 第8题:

    单选题
    头指针为head的带头结点的单向循环链表,p所指向尾结点,要使该链表成为不带头结点的单向循环链表, 可执行head=head->nex;和()。
    A

    p=head->next

    B

    head->next=p

    C

    head->next=p->next

    D

    p->next=head


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

  • 第9题:

    填空题
    要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head->next;()。

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

  • 第10题:

    问答题
    设head1和p1分别是不带头结点的单向链表A的头指针和尾指针,head2和p2分别是不带头结点的单向链表B的头指针和尾指针,若要把B链表接到A链表之后,得到一个以head1为头指针的单向循环链表。单向链表的链域为next,设指针p指向单向链表中的某个结点,指针s指向一个要插入链表的新结点,现要把s所指结点插入p所指结点之后,某学生采用以下语句:p->next=s;s->next=p->next;这样做正确吗?若正确则回答正确,若不正确则说明应如何改写?

    正确答案: 不对,s->next=p->next;p->next=s;
    解析: 暂无解析

  • 第11题:

    单选题
    带头结点的单向链表为空的判断条件是()(设头指针为head)。
    A

    head==NULL

    B

    head!=NULL

    C

    head->next==head

    D

    head->next==NULL


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

  • 第12题:

    问答题
    设head1和p1分别是不带头结点的单向链表A的头指针和尾指针,head2和p2分别是不带头结点的单向链表B的头指针和尾指针,若要把B链表接到A链表之后,得到一个以head1为头指针的单向循环链表。写出其中两个关键的赋值语句(不用完整程序,结点的链域为next)。

    正确答案: p1->next=head2;p2->next=head1;
    解析: 暂无解析

  • 第13题:

    带头结点的单向链表为空的判断条件是()(设头指针为head)。

    Ahead==NULL

    Bhead!=NULL

    Chead->next==head

    Dhead->next==NULL


    D

  • 第14题:

    某带头结点的单链表的头指针为head,判定该链表为空的条件是()


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

  • 第15题:

    编写算法,将一个头指针为head不带头结点的单链表改造为一个单向循环链表,并分析算法的时间复杂度。


    正确答案: voidlinklist_c(Lnode*heaD.
    {Lnode*p;p=head;
    if(!p)returnERROR;
    while(p->next!=NULL)
    p=p->next;
    p->next=head;
    }
    设单链表的长度(数据结点数)为N,则该算法的时间主要花费在查找链表最后一个结点上(算法中的while循环),所以该算法的时间复杂度为O(N)。

  • 第16题:

    带头结点的单向链表为空的判断条件是()(设头指针为head)。

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

    正确答案:D

  • 第17题:

    设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作()。


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

  • 第18题:

    设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句()。


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

  • 第19题:

    设有一个头指针为head的单向循环链表,p指向链表中的结点,若p->next==head,则p所指结点为()。


    正确答案:head

  • 第20题:

    问答题
    设某带头结头的单链表的结点结构说明如下:typedef struct nodel{int data struct nodel*next;}node;试设计一个算法:void copy(node*headl,node*head2),将以head1为头指针的单链表复制到一个不带有头结点且以head2为头指针的单链表中。

    正确答案: 一边遍历,一边申请新结点,链接到head2序列中。
    解析: 暂无解析

  • 第21题:

    填空题
    设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作()。

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

  • 第22题:

    问答题
    设一个带头结点的单向链表的头指针为head,设计算法,将链表的记录,按照data域的值递增排序。

    正确答案: voidassending(Lnode*heaD.
    {Lnode*p,*q,*r,*s;
    p=head->next;q=p->next;p->next=NULL;
    while(q)
    {r=q;q=q->next;
    if(r->data<=p->datA.
    {r->next=p;head->next=r;p=r;}
    else
    {while(!p&&r->data>p->datA.
    {s=p;p=p->next;}
    r->next=p;s->next=r;}
    p=head->next;}
    }
    解析: 暂无解析

  • 第23题:

    填空题
    设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句()。

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

  • 第24题:

    问答题
    编写算法,将一个头指针为head不带头结点的单链表改造为一个单向循环链表,并分析算法的时间复杂度。

    正确答案: voidlinklist_c(Lnode*heaD.
    {Lnode*p;p=head;
    if(!p)returnERROR;
    while(p->next!=NULL)
    p=p->next;
    p->next=head;
    }
    设单链表的长度(数据结点数)为N,则该算法的时间主要花费在查找链表最后一个结点上(算法中的while循环),所以该算法的时间复杂度为O(N)。
    解析: 暂无解析