15、已知一个长度为n的单链表中所有结点是递增有序的,以下叙述中正确的是()。A.插入一个结点使之有序的算法的时间复杂度为O(1)B.删除最大值结点使之有序的算法的时间复杂度为O(1)C.找最小值结点的算法的时间复杂度为O(1)D.以上都不对

题目

15、已知一个长度为n的单链表中所有结点是递增有序的,以下叙述中正确的是()。

A.插入一个结点使之有序的算法的时间复杂度为O(1)

B.删除最大值结点使之有序的算法的时间复杂度为O(1)

C.找最小值结点的算法的时间复杂度为O(1)

D.以上都不对


相似考题
更多“15、已知一个长度为n的单链表中所有结点是递增有序的,以下叙述中正确的是()。”相关问题
  • 第1题:

    ●在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是 (53) 。

    (53) A.O(1)

    B.O(n)

    C.O(nlogn)

    D.O(n2)


    正确答案:B

    【解析】本题主要考核有序单链表上的插入操作及算法分析。对数据结构的任何操作都不能改变其原有的结构特性。因此,在有序单链表中插入一个新结点后,仍然要保持它的有序性。
    插入操作的关键是查找插入位置,主要时间也是花在插入位置的查找上。n个结点的单链表,有,n+1个可能插入的位置,即第一个结点之前和每一个结点之后。在第一个结点之前插入,需比较一次;在第一个结点之后插入需比较两次;…;在第,n个结点之后插入需查找次。如果在每一个位置上作插入的概率相等,即 ,则在有序单链表上查找插入位置的平均比较次数为:


     

  • 第2题:

    在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是()。

    A、O(1)

    B、O(n)

    C、O(n的平方)

    D、O(log2n)


    参考答案:B

  • 第3题:

    在一个长度为n(n>1)的带头结点的单链表head上,另设有尾指针r(指向尾结点),执行()操作与链表的长度有关。

    A.删除单链表中的第一个元素

    B.删除单链表中的尾结点

    C.在单链表的第一个元素前插入一个新结点

    D.在单链表的最后一个元素后插入一个新结点


    参考答案:B

  • 第4题:

    下列叙述中,正确的是

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

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

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

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


    正确答案:A
    解析:对长度为n的有序链表进行查找,最坏情况是从最小值开始查找最大值(或从最大值开始查找最小值),这个过程需要比较的次数为n,故选项A正确。对分查找只能针对随机存取的有序表进行,而有序链表只能进行顺序存取,不能进行随机存取,在有序链表上不能进行对分查找,故B、C、D选项都错误。

  • 第5题:

    ● 有n个结点的有序单链表中插入一个新结点并保持有序的运算的时间复杂度为( )。

    A. O(1)

    B. O(logn)

    C. O(n)

    D. O(n2)


    正确答案:C

  • 第6题:

    在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂性为______。

    A.O(1)

    B.O(n)

    C.O(n2)

    D.O(log2n)


    正确答案:B

  • 第7题:

    ●(37)有n个结点的有序单链表中插入一个新结点并保持有序的运算的时间复杂度为(37)。

    (37)A.O(1)

    B. O(logn)

    C.O(n)

    D. O(n2)


    正确答案:C

  • 第8题:

    在一个长度为n(n>1)的带头结点单链表h上,另设有尾指针r(指向尾结点)。与链表的长度有关的操作是()。

    A.删除单链表中的第一个元素
    B.删除单链表中的最后一个元素
    C.在单链表第一个元素前插入一个新元素
    D.在单链表最后一个元素后插入一个新元素

    答案:B
    解析:
    在单链表中要删除最后一个元素必须找到尾结点的前驱结点的指针。由于单链表只能访问结点的下一个结点,所以根据尾指针不能够直接找到它的前驱结点,只有从头开始依次向下找到尾结点的前驱结点。所以删除单链表中的最后一个元素与链表的长度有关。

  • 第9题:

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

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

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

  • 第10题:

    已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。


    正确答案: voidDelete_list(Lnode*head,ElemTypex,ElemTypey)
    {Lnode*p,*q;
    if(!heaD.returnERROR;
    p=head;q=p;
    while(!p)
    {if(p->data>x)&&(p->dataif(p==heaD.
    {head=p->next;free(p);
    p=head;q=p;}
    else
    {q->next=p->next;free(p);
    p=q->next;}
    else
    {q=p;p=p->next;}
    }
    }

  • 第11题:

    问答题
    已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。

    正确答案: voidDelete_list(Lnode*head,ElemTypex,ElemTypey)
    {Lnode*p,*q;
    if(!heaD.returnERROR;
    p=head;q=p;
    while(!p)
    {if(p->data>x)&&(p->dataif(p==heaD.
    {head=p->next;free(p);
    p=head;q=p;}
    else
    {q->next=p->next;free(p);
    p=q->next;}
    else
    {q=p;p=p->next;}
    }
    }
    解析: 暂无解析

  • 第12题:

    单选题
    在具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是()。
    A

    O(1)

    B

    O(n)

    C

    O(n2)

    D

    O(nlog2n)


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

  • 第13题:

    下列叙述中错误的是()。

    A.在双向链表中,可以从任何一个结点开始直接遍历到所有结点

    B.在循环链表中,可以从任何一个结点开始直接遍历到所有结点

    C.在线性单链表中,可以从任何一个结点开始直接遍历到所有结点

    D.在二叉链表中,可以从根结点开始遍历到所有结点


    正确答案:C

  • 第14题:

    已知一个长度为n的单链表中的所有结点是有序(递增)的,以下叙述中正确的是()。

    A.插入一个结点使之有序的算法的时间复杂度为O(1)

    B.删除最大值结点使之有序的算法的时间复杂度为O(1)

    C.找最小值结点的算法的时间复杂度为O(1)

    D.以上都不对


    参考答案:C

  • 第15题:

    设带头结点的单链表(L为头指针)中的数据元素递增有序。设计算法,将x插入到链表的适当位置上,并仍保持该表的有序性。


    参考答案:

  • 第16题:

    在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是(53)。

    A.O(1)

    B.O(n)

    C.O(nlogn)

    D.O(n2)


    正确答案:B
    解析:本题主要考核有序单链表上的插入操作及算法分析。对数据结构的任何操作都不能改变其原有的结构特性。因此,在有序单链表中插入一个新结点后,仍然要保持它的有序性。插入操作的关键是查找插入位置,主要时间也是花在插入位置的查找上。n个结点的单链表,有,n+1个可能插入的位置,即第一个结点之前和每一个结点之后。在第一个结点之前插入,需比较一次;在第一个结点之后插入需比较两次;……;在第,n个结点之后插入需查找次。如果在每一个位罩上作插入的概率相等,即则在有序单链表上查找插入位置的平均比较次数为:

  • 第17题:

    在一个具有n个结点的有序单链表中插入一个新结点,并使其仍然有序的时间复杂性为______。

    A.O(1)

    B.O(n)

    C.O(n2)

    D.O(10g2n)


    正确答案:B

  • 第18题:

    在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()

    A.O(1)

    B.O(n)

    C.O(n2)

    D.O(nlogn)


    正确答案: B

  • 第19题:

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

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

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

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

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


    正确答案:A

  • 第20题:

    建立一个长度为n的有序单链表的时间复杂度为()


    答案:C
    解析:
    建立有序单链表的时间复杂度是O(n),对单链表插入节点时,先遍历单链表,找到插入位置,将节点插入。

  • 第21题:

    在n个结点的单链表中要删除已知结点*p,需找到它的(),其时间复杂度为()。


    正确答案:前驱结点的地址 O(n)

  • 第22题:

    对于一个具有n个结点的单链表中,在已知的结点后插入一个新结点的时间复杂度为()在给定值为X的结点后插入一个新结点的时间复杂度为()。


    正确答案:O(1);O(n)

  • 第23题:

    单选题
    在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是()
    A

    O(1)

    B

    O(n)

    C

    O(n2

    D

    O(log2n)


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

  • 第24题:

    填空题
    在n个结点的单链表中要删除已知结点*p,需找到它的(),其时间复杂度为()。

    正确答案: 前驱结点的地址 O(n)
    解析: 暂无解析