数据结构复习题3
- 格式:doc
- 大小:36.50 KB
- 文档页数:10
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 1文档收集于互联网,如有不妥请联系删除. 数据结构练习题 第一章 绪论 一.选择题 1、在数据结构的讨论中把数据结构从逻辑上分为( )。 A.内部结构与外部结构 B.静态结构与动态结构 C.线性结构与非线性结构 D.紧凑结构与非紧凑结构 2、采用线性链表表示一个向量时,要求占用的存储空间地址( )。 A: 必须是连续的 B 部分地址必须是连续的 C: 一定是不连续的 C: 可连续可不连续 3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( )。 A: n B: n/2 C: (n-1)/2 D: (n+1)/2 4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( )。 A: s→next = p→next; p→next = s; B: p→next = s; s→next = q; C: p→next = s→next; s→next = p; D: q→next= s; s→next= p; 8.下面程序段的时间复杂度为____________。 for(int i=0; i for(int j=0; j a[i][j]=i*j; A、 O(m2) B、 O(n2) C、 O(m*n) D、 O(m+n) 9.执行下面程序段时,执行S语句的次数为____________。 for(int i=1; i<=n; i++) for(int j=1; j<=i; j++) S; A、 n2 B、 n2/2 C、 n(n+1) D、 n(n+1)/2 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 2文档收集于互联网,如有不妥请联系删除. 二.填空题 1.通常,评价一个算法有正确性、健壮性、_________、时间复杂度、空间复杂度五个方面。2.在数据结构中,数据的逻辑结构有线性结构、图结构、________________、_______________四种,物理实现上有顺序结构、索引结构、___________、_____________四种。
第三章 线性表 一.选择题 1.在一个单链表HL中,若要向q所指结点之后插入一个指针p指向的结点,则执行 . A. HL=p; p->next=HL B. P->next=HL; HL=p C. P->next=q->next; q->next=p D. P->next=q->next; q=p->next 2.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移 个元素。 A、n-i B、n-i+1 C、n-i-1 D、i 3.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次前移 个元素。 A、n-i B、n-i+1 C、n-i-1 D、i 4.在一个长度为n的线性表中顺序查找值为x的元素时,查找时的平均查找长度(即x同元素的平均比较次数,假定查找每个元素的概率都相等)为 。 A、n B、n/2 C、(n+1)/2 D、(n-1)/2 5.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行 。 A、HL = p; p->next = HL; B、p->next = HL; HL = p; C、p->next = HL; p = HL; D、p->next = HL->next; HL->next = p; 6.在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行 。 A、q->next = p->next ; p->next = q; B、p->next = q->next; q = p; C、q->next = p->next; p->next = q; D、p->next = q->next ; q->next = p; 7.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 3文档收集于互联网,如有不妥请联系删除. 行 。 A、p = q->next ; p->next = q->next; B、p = q->next ; q->next = p; C、p = q->next ; q->next = p->next; D、q->next = q->next->next; q->next = q; 6. 链表不具有的特点是 。 A. 不必事先估计存储空间 B. 可随机访问任一元素 C. 插入删除不需要移动元素 D. 所需空间与线性表长度成正比 二.填空题 1.在单链表中,删除指针 P 所指结点的后继结点的语句是: 。 2.在以HS为表头指针的单链表中,链表为空的条件分别为________。 向一个链栈插入p所指向的结点时,需要把栈顶指针的值赋给p所指向的结点的_____,然后把p赋给_______。 3.在带表头附加结点的线性链表HL中,链表为空的条件为________________。 对于单链表,若要在指针 P 所指结点之后插入由指针 S 所指结点,则需要执行的语句序列为: 。 4.在线性表的顺序存储结构中,若每一个元素占 l 个存储单元,则第I个元素ai的存储位置为 LOC(ai) = LOC(a1) + 5.在线性表的单链接存储结构中,每个结点包含有两个域,一个叫 域,另一个叫 域。 6.在下面数组a中链接存储着一个线性表,表头指针为a[0].next,则该线性表为
7.对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为 ,在表尾插入元素的时间复杂度为 。 8.对于一个长度为n的单链接存储的线性表,在表头插入元素的时间复杂度为 ,在表尾插入元素的时间复杂度为 。 9.在线性表的顺序存储中,若一个元素的下标为i,则它的前驱元素的下标为 ,后继元素的下标为 。 10.在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为 ,若假定p为一个数组a中的下标,则其后继结点的下标为 。 11.在循环单链表中,最后一个结点的指针指向 结点。 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 4文档收集于互联网,如有不妥请联系删除. 12.在双向链表中每个结点包含有两个指针域,一个指向其 结点,另一个指向其 结点。 13.在循环双向链表中表头结点的左指针域指向 结点,最后一个结点的右指针域指向 结点。 14.在以HL为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为 和 。
第四章 栈和队列 一.选择题 1.栈的插入与删除操作在 进行。
A、栈顶 B、栈底 C、任意位置 D、指定位置 2.当利用大小为N的一维数组顺序存储一个栈时,假定用top==N表示栈空,则向这个栈插入一个元素时,首先应执行 语句修改top指针。 A、top++ B、top-- C、top=0 D、top 3.若让元素1,2,3依次进栈,则出栈次序不可能出现 种情况。 A、3,2,1 B、2,1,3 C、3,1,2 D、1,3,2 4.在一个循环顺序队列中,队首指针指向队首元素的 位置。 A、前一个 B、后一个 C、当前 D、后面 5.当利用大小为N的一维数组顺序存储一个循环队列时,该队列的最大长度为 。 A、N-2 B、N-1 C、N D、N+1 6.从一个循环顺序队列删除元素时,首先需要 。 A、前移一位队首指针 B、后移一位队首指针 C、取出队首指针所指位置上的元素 D、取出队尾指针所指位置上的元素 7.假定一个循环顺序队列的队首和队尾指针分别为f和r,则判断队空的条件是 。 A、f+1==r B、r+1==f C、f==0 D、f==r 8.假定一个链队的队首和队尾指针分别为front和rear,则判断队空的条件是 。 A、front==rear B、front!=NULL C、rear!=NULL D、front==NULL 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 5文档收集于互联网,如有不妥请联系删除. 9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( )。 A: 4, 3, 2, 1 B: 2, 4, 3, 1 C: 1, 2, 3, 4 D: 3, 2, 1, 4 10.当利用大小为N的数组顺序存储一个栈时,如果使用top==0表示栈空,那么该栈最多可保存______个数据。 A. N B. N+1 C. N-1 D. 0 11.假定一个链队的队首和队尾指针分别为front和rear,则判断队空的条件为 A. front == rear B. front != NULL C. rear != NULL D. front == NULL 12.设输入序列为1、2、3、4,则借助栈所得到的输出序列不可能是 。 A. 1、2、3、4 B. 4、3、2、1 C. 1、3、4、2 D. 4、1、2、3 13.队列的操作原则是 。 A. 先进后出 B. 先进先出 C. 只能进行插入 D. 只能进行删除 二.填空题 1.队列的插入操作在 进行,删除操作在 进行。 2.栈又称为 表,队列又称为 表。 3.向一个顺序栈插入一个元素时,首先使 后移一个位置,然后把待插入元素 到这个位置上。 4.从一个栈中删除元素时,首先取出 ,然后再前移一位 。 5.在一个循环顺序队列Q中,判断队空的条件为 ,判断队满的条件为 。 6.在一个顺序栈中,若栈顶指针等于 ,则为空栈;若栈顶指针等于 ,则为满栈。 7.在一个链栈中,若栈顶指针等于NULL,则为 ;在一个链队中,若队首指针与队尾指针的值相同,则表示该队列为 或该队列为 。 8.向一个链栈插入一个新结点时,首先把栈顶指针的值赋给 ,然后把新结点的存储位置赋给 。 9.从一个链栈中删除一个结点时,需要把栈顶结点 的值赋给 。 10.向一个顺序队列插入元素时,需要首先移动 ,然后再向所指位置 新插入的元素。