数据结构基本复习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章绪论
1 自测习题
二、选择题
1.以下数据结构中,属于线性结构的是 ( B )
A)有向图B)串C)线索二叉树D)B树
2.下列与数据元素有关的叙述中错误的是 (A)
A)数据元素是有独立含义的数据最小单位
B)数据元素是描述数据的基本单位
C)数据元素可以称做结点
D)数据元素可以称做记录
3.以下术语中与数据的存储结构无关的是 (A)
A)栈B)散列表C)顺序表D)双链表
4.以下数据结构中,属于线性结构的是 (B)
A)有向图B)串C)线索二叉树D)B树
三、填空题
1.数据结构包括的三方面内容分别是:数据的逻辑结构、数据的存储结构和数据的运算。
2.数据元素是数据的基本单位,在某些情况下也可以称为结点、记录和顶点。
3.数据逻辑结构的4种基本形态包括集合结构、线性结构、树型结构和图(网)结构。
4.一个正确的算法应该具有5个特性:输入、输出、确定性、可行性和有穷性。
5.数据的存储结构包括顺序、链式、索引和散列四种。6.一个数据结构在计算机中的映象称为存储结构。
7.一个算法的效率主要是指该算法的时间效率和空间效率。
8.以下程序段的时间复杂度T(n)=_)
O_____。
(2n
sum=0;
for(i=0 ; i for( j=0; j sum+=a[i][j]; printf("%d\n",sum); 第2章线性表 2 自测习题 二、选择题 1.以下链表结构中,从当前结点出发能够访问到任一结点的是(B) A)单向链表和双向链表B)双向链表和循环链表 C)单向链表和循环链表D)单向链表、双向链表和循 环链表 2.线性表是具有n 个 (B) 的有限序列。 A )数据项 B )数据元素 C )表元素 D )字符 3.若长度为n 的线性表采用链式存储结构,访问其第i 个元素的算 法时间复杂度为 (B) A )O(1) B )O(n) C ) O(n 2) D )O(log 2n) 4.在长度为n 的顺序表中,若要删除第i (1≤i ≤n )个元素,则 需要向前移动的元素的次数为 (B) A )i B )n-i C )n-i+1 D )n-i-1 5.在长度为n 的顺序表中第i (1≤i ≤n )个位置上插入一个元素时, 为留出插入位置所需移动元素的次数为 (C) A )n-i B )i C )n-i+1 D )n-i-1 三、填空题 1.有一单链表结构如下: 图2-1 填空题1附图 若要删除值为c 的结点,应做的操作是 p->link=p->link->link 。 2.线性表L=( a 1,a 2,…a n )用数组存储。假定删除表中任一元素的概 … … data link 率相同,则删除一个元素平均需要移动的元素个数是 (n-1)/2 。 3.设有结点定义 struct node { int data; struct node *next; }; 且已建立如图2-2所示的带有头结点的单向链表: 图2-2 填空题3附图 函数sum 的功能是:计算链表中各结点数据域之和,作为函数值返 回。请填空。 int sum(struct node *head) { int s=0; struct node *p; p=head->next; do { s=s+ p->data ; p=p->next; } … data next while ( p!= NULL ); return s; } 第3章栈和队列 3 自测习题 二、选择题 1.有6个元素按6、5、4、3、2、1的顺序进栈,进栈过程中可以出栈,则以下可能的出栈序列是(B,D) A)1、4、3、5、2、6 B)6、5、4、3、2、1 C)3、1、4、2、6、5 D)5、6、3、4、2、1 2.栈和队列都是(C) A)顺序存储的线性结构 B)链式存储的线性结构 C)限制存取点的线性结构 D)限制存取点的非线性结构3.设循环队列的队首指针用front表示,队尾指针用rear表示,则判断队空的条件是(A) A)front==rear B)front+1=rear C)rear+1=front D)rear==0 4、设有中缀算术表达式:15 – 3 * (7 + 2 ),其对应的后缀算术表达式为(B) A)15 3 - 7 2 + * B)15 3 7 2 + * - C)15 3 * 7 2 + D)15 3 - * 7 2 + 三、填空题 1.队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其操作特点是先进先出。 2.设有一个空栈,栈顶指针值为100,现有输入序列为1,2,3,4,5,经过操作序列:Push、Pop、Push、Push、Pop、Push、Push、Pop 后,现在已出栈的序列是 1、3、5,栈顶指针是102 。 3.设有后缀算术表达式:2 x y + * 3 y - /,其对应的中缀表达式为 2*(x+y)/(3-y) 。 4.已知一算术表达式的中缀形式为:(a+b)-(b+c)/2,其对应的前缀表达式形式应为 -+ab/+bc2 。 第4章串 4.1自测习题 一.选择题 1.设有一个字符串S=“ABC 123 XYZ”,问该串的长度为(C) A) 9 B) 10 C) 11 D) 12 2.设有一个字符串S=”windows”,其子串的数目是(29个) A) 25个 B) 26个 C) 27个 D)28个