**
计算机组成原理易错题整理
**
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.顺序存储结构是通过____物理上相邻____表示元素之间的关系的;链式存储结构是通过_____指针___表示元素之间的关系的。