时间复杂度线性表习题.docxVIP

  • 3
  • 0
  • 约1.05千字
  • 约 2页
  • 2024-06-22 发布于上海
  • 举报

分析下面算法(程序段),该算法的时间复杂度是 。

s=0;

for(i=0;in;i++)

for(j=0;jn;j++)for(k=0;kn;k++)

s=s+B[i][j][k];

sum=s;

分析下面算法(程序段)该算法的时间复杂度是 。

i=s=0;while(sn)

{ i++;

s+=i; //s=s+i

}

分析下面算法(程序段),该算法的时间复杂度是 。

i=1;

while(i=n)

i=i*2;

链表不具有的特点是( )

插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比

在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:( )。

A.p-next=s;s-next=p-next; B.s-next=p-next;p-next=s;C.p-next=s;p-next=s-next; D.p-next=s-next;p-next=s;

在双向链表指针p的结点前插入一个指针q的结点操作是( )。

p-Llink=q;q-Rlink=p;p-Llink-Rlink=q;q-Llink=q;

p-Llink=q;p-Llink-Rlink=q;q-Rlink=p;q-Llink=p-Llink;

q-Rlink=p;q-Llink=p-Llink;p-Llink-Rlink=q;p-Llink=q;

q-Llink=p-Llink;q-Rlink=q;p-Llink=q;p-Llink=q;

基本知识时间复杂度单链表

1、是否带头

2、头插法、尾插法

3、长度、查找、插入、删除、合并、排序

4、应用:表达式相加

循环链表双向链表编程题

1、单链表原地逆序。

2、设一个没有头结点指针的单链表。一个指针指向此单链表中间的一个结点(不是第一个,也不是最后一个结点),将该结点从单链表中删除,要求时间复杂度O(1)。

3、判断一个单链表是否存在环。

4、判断两个单链表是否相交。

5、输出一个单链表的倒数第K个节点。

6、约瑟夫环问题。

已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

文档评论(0)

1亿VIP精品文档

相关文档