更多“已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。(Autodesk)”相关问题
  • 第1题:

    下列数据结构中,能用二分法进行查找的是( )。 A.顺序存储的有序线性表B.线性链表SXB

    下列数据结构中,能用二分法进行查找的是( )。

    A.顺序存储的有序线性表

    B.线性链表

    C.二叉链表

    D.有序线性链表


    正确答案:A
    A。【解析】二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。

  • 第2题:

    已知两个链表head1 和head2 各自有序,请把

    它们合并成一个链表依然有序。(保留所有结点,即

    便大小相同)


    正确答案:

     

    Node * Merge(Node *head1 , Node *head2)
    {
    if ( head1 == NULL)
    return head2 ;
    if ( head2 == NULL)
    return head1 ;
    Node *head = NULL ;
    Node *p1 = NULL;
    Node *p2 = NULL;
    if ( head1->data < head2->data )
    {
    head = head1 ;
    p1 = head1->next;
    p2 = head2 ;
    }
    else
    {
    head = head2 ;
    p2 = head2->next ;
    p1 = head1 ;
    }
    Node *pcurrent = head ;
    while ( p1 != NULL && p2 != NULL)
    {
    if ( p1->data <= p2->data )
    {
    pcurrent->next = p1 ;
    pcurrent = p1 ;
    p1 = p1->next ;
    }
    else
    {
    pcurrent->next = p2 ;
    pcurrent = p2 ;
    p2 = p2->next ;
    }
    }
    if ( p1 != NULL )
    pcurrent->next = p1 ;
    if ( p2 != NULL )
    pcurrent->next = p2 ;
    return head ;
    }

  • 第3题:

    下列数据结构中,能用二分法进行查找的是( )。A.顺序存储的有序线性表B.线性链表

    下列数据结构中,能用二分法进行查找的是( )。

    A.顺序存储的有序线性表

    B.线性链表

    C.二叉链表

    D.有序线性链表


    正确答案:A
    二分查找只适用于顺序存储的有序表。此处所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)的。选项A)正确。

  • 第4题:

    下列数据结构中,能用二分法进行查找的是( )。

    A.顺序存储的有序线性表

    B.线性链表

    C.二又链表

    D.有序线性链表


    正确答案:A

  • 第5题:

    ( 1 )下列叙述中正确的是

    A ) 对长度为 n 的有序链表进行查找,最坏情况下需要的比较次数为 n

    B ) 对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为( n /2 )

    C ) 对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为 ( log 2 n )

    D ) 对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为 ( n log 2 n )


    正确答案:A

  • 第6题:

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

  • 第7题:

    对线性表进行折半查找最方便的存储结构是()

    • A、顺序表
    • B、有序的顺序表
    • C、链表
    • D、有序的链表

    正确答案:B

  • 第8题:

    下列数据结构中,能用二分法进行查找的是()

    • A、顺序存储的有序线性表
    • B、线性链表
    • C、二叉链表
    • D、有序线性链表

    正确答案:A

  • 第9题:

    折半查找法适用于()。

    • A、有序顺序表
    • B、有序单链表
    • C、有序顺序表和有序单链表都可以
    • D、无限制

    正确答案:A

  • 第10题:

    判断题
    折半搜索适用于有序表,包括有序的顺序表和有序的链表。
    A

    B


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

  • 第11题:

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

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

  • 第12题:

    单选题
    折半查找法适用于()。
    A

    有序顺序表

    B

    有序单链表

    C

    有序顺序表和有序单链表都可以

    D

    无限制


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

  • 第13题:

    折半(二分)查找方法对查找表的要求是( )。

    A.链表存储结构,元素有序排列

    B.链表存储结构,元素无序排列

    C.顺序存储结构,元素有序排列

    D.顺序存储结构,元素无序排列


    正确答案:C
    解析:二分查找也叫折半查找,其基本思想是:以处于中间位置元素的关键字和给定值比较,如果相等,则查找成功。如果给定值大于中间位置元素,则下一次在后半个子表进行二分查找。如果给定值小于中间位置元素,则下一次在前半个子表进行二分查找。这样通过逐步缩小范围,直到查找成功或子表为空时失败为止。显然,如果要查找的表是无序排列,则查找就没有意义。另外,查找需要能直接定位表中间位置的元素,即实现随即访问,因此只有顺序存储结构能满足此要求,在链表上只能顺序查找。【总结与扩展】二分查找在查找成功时和给定值进行比较的关键字格式至多为[log2n]+1。二分查找在查找不成功时和给定值进行比较的关键字格式最多也不会超过[log2n]+l。当查找的表元素值较大时,二分查找的平均查找长度为log2(n+1)-1。二分查找要求查找表进行顺序存储并且按照关键字有序排列,因此当对表进行元素插入或删除时,需要移动大量的元素。所以二分查找适用于表不易变动,且又经常进行查找的情况。

  • 第14题:

    对线性表进行折半查找最方便的存储结构是()。

    A.顺序表

    B.有序顺序表

    C.链表

    D.有序链表


    正确答案:B

  • 第15题:

    能从任意一个结点开始没有重复地扫描到所有结点的数据结构是( )。

    A.循环链表

    B.双向链表

    C.二叉链表

    D.有序链表


    正确答案:A
    在单链表的第一个结点前增加一个表头结点,队头指针指向表头结点,最后一个结点的指针域的值由NULL改为指向表头结点,这样的链表称为循环链表。在循环链表中.只要指出表中任何一个结点的位置,就可以从它出发没有重复地扫描到表中其他所有的结点。双向链表与二叉链表都可以扫描到所有结点,但是会有重复。有序链表如果是单链表的情况下,不能扫描到所有结点。故A选项正确。

  • 第16题:

    下列数据结构中,能用二分法进行查找的是( )。

    A.顺序存储的有序线性表

    B.线性链表

    C.二叉链表

    D.有序线性链表


    正确答案:A

  • 第17题:

    设一个有序的单链表中有n个节点,现要求插入一个新节点后使得单链表仍然保持有序,则该操作的时间复杂度为()。


    答案:C
    解析:
    对单链表进行插入节点的操作,就是对单链表进行查找,找到节点需要插入的位置,然后修改指针,将节点插入单链表。

  • 第18题:

    设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;

  • 第19题:

    用向量和单链表表示的有序表均可使用折半查找方法来提高查找速度。


    正确答案:错误

  • 第20题:

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


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

  • 第21题:

    折半搜索只适用与有序表,包括有序的顺序表和有序的链表。


    正确答案:错误

  • 第22题:

    问答题
    设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;
    解析: 暂无解析

  • 第23题:

    单选题
    对线性表进行折半查找最方便的存储结构是()
    A

    顺序表

    B

    有序的顺序表

    C

    链表

    D

    有序的链表


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