2020-10-23

**

计算机组成原理易错题整理

**
1.顺序存储的线性表可以随机存取。(T)
解析:
线性表的顺序存储结构可以通过线性表的首址加偏移的方法计算出来第i个数据的位置;而线性表的链式存储结构要访问第i个数据,就必须先访问前面的i-1个数据,不可随机存取。

2.在具有N个结点的单链表中,访问(删除)结点和增加结点的时间复杂度分别对应为O(1)和O(N)。 (F)
解析:
**访问结点和增加结点的时间复杂度分别对应为O(N)和O(1);增加结点为头插法增加,而不是插入结点。
注意:虽然链表的删,查找更简单。但是,访问某结点用循环来查找,因此时间复杂度近似于顺序链表,同等条件下,顺序表更简单。

注:(1)对于顺序存储的长度为N的线性表,访问结点和增加结点(在某一个位置)的时间复杂度分别对应为O(1)和O(N)。 (T)
(2)若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。 (T)
在最后进行插入和删除运算顺序表存储时间复杂度O(1),访问一直O(1);链表插入删除(访问)为O(n),增加结点在表头为0(1)。

3, 顺序表中逻辑上相邻的元素,其物理位置一定相邻。(T)

4, 循环链表可以做到从任一结点出发 ,访问到链表的全部结点。 (T)

5, 已知L是带头结点的单链表,则摘除首元结点的语句是(B)。
A.L=L->link;
B.L->link=L->link->link;
C.L=L->link->link;
D.L->link = L;

6.链表所需空间与线性长度成正比。在链式存储结构中插入和删除操作不需要移动元素。

7.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表

8.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( D )最节省时间。
A. 单链表 B.单循环链表 C. 带尾指针的单循环链表 D.带头结点的双循环链表
使用只有表尾指针没有表头指针:

循环单链表如果要删除第一个元素,只需要通过表尾指针找到第二个节点,然后将最后节点的指针指向第二个节点,就将第一个元素删除了;在最后一个元素后面插入新元素时,先找到表头,然后将新元素的指针域指向表头,然后再将表尾指向新元素,算法的复杂度为O(1)。
单链表如果要删除第一个元素,需要通过头指针找到第二个节点,然后头节点的指针指向第二个节点,就将第一个元素删除了;(只有头指针单循环)删除最后一个元素,必须遍历整个链表才能找到表尾,进行新元素的插入、再插入时的算法复杂度为O(n)。

9.在单链表中设置头结点的作用是___主要是使插入和删除等操作统一,在第一个元素之前插入元素和删除第一个结点不必另作判断。另外,不论链表是否为空,链表指针不变。_____。

10.对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为___o(1),在给定值为x的结点后插入一个新结点的时间复杂度为___O(n)

11.在一个长度为n的顺序表中第i个元素(1<=i<=n)之前插入一个元素时,需向后移动____n-i+1____个元素。

12, 循环单链表的最大优点是:从任一结点出发都可访问到链表中每一个元素

13.顺序存储结构是通过____物理上相邻____表示元素之间的关系的;链式存储结构是通过_____指针___表示元素之间的关系的。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过Java的日期时间类 `LocalDate` 和 `LocalDateTime` 来实现该功能。 首先,我们需要将时间段转换为 `LocalDateTime` 对象,然后将时间部分设置为 00:00:00 或 23:59:59,最后遍历每一天,获取每一天的开始时间和结束时间。 以下是代码示例: ```java import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; public class TimeUtils { public static void main(String[] args) { String startStr = "2020-11-20 09:09:09"; String endStr = "2021-10-09 10:10:10"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime start = LocalDateTime.parse(startStr, formatter); LocalDateTime end = LocalDateTime.parse(endStr, formatter); // 将时间部分设置为 00:00:00 或 23:59:59 LocalDateTime startOfDay = start.with(LocalTime.MIN); LocalDateTime endOfDay = end.with(LocalTime.MAX); // 遍历每一天,获取每一天的开始时间和结束时间 LocalDate startDate = startOfDay.toLocalDate(); LocalDate endDate = endOfDay.toLocalDate(); while (!startDate.isAfter(endDate)) { LocalDateTime startOfDayOfDate = startDate.atStartOfDay(); LocalDateTime endOfDayOfDate = startDate.atTime(LocalTime.MAX); System.out.println("Start time of " + startDate + ": " + startOfDayOfDate); System.out.println("End time of " + startDate + ": " + endOfDayOfDate); startDate = startDate.plusDays(1); } } } ``` 输出结果如下: ``` Start time of 2020-11-20: 2020-11-20T00:00 End time of 2020-11-20: 2020-11-20T23:59:59.999999999 Start time of 2020-11-21: 2020-11-21T00:00 End time of 2020-11-21: 2020-11-21T23:59:59.999999999 ... Start time of 2021-10-09: 2021-10-09T00:00 End time of 2021-10-09: 2021-10-09T23:59:59.999999999 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值