当前位置:文档之家› 数据结构试题及答案

数据结构试题及答案

数据结构试题及答案
数据结构试题及答案

《数据结构》试题及参考答案

时间:2014-03-13

大学计算机专业《数据结构》期末试题及参考答案

一、单项选择题(每小题1分,共12分)

1.下面算法的时间复杂度为( ).

int f(unsigned int n) {

if(n==0||n==1)return 1;

else return n * f(n-1);

}

A, 0(1) B. O(n)

C. O(n2)

D. O(n!)

2.在一个长度为n的顺序表中顺序查找一个值为x的元素.在等概率的情况下,搜索成功时间元素的平均比较次数为

( ).

A. n

B. n/2

C. (n+l)/2

D. (n-1)/2

3.带头结点的单链表first为空的判定条件是( ).

A. first== NULL;

B. first->link ==NULL

C. flrst->link==first

D. first!= NULL

4.已知L是一个不带表头的单链表的表头指针,在表首插入结点*p的操作是( )

A. p=L; p->link=L;

B. p->link=L; p=L;

C. p->link=L; L=P;

D. L=p; p->link=L;;

5.设循环队列的结构是

struct Queue {

DataType data[MaxSize];

int front, rear;

};

若有一个Queue类型的队列Q.试问判断队列满的条件应为( ).

A. Q. from==Q, rear;

B. Q. front==Q. rear==MaxSize;

C. Q. front+Q, rear= =MaxSize;

D. Q. front==(Q, rear+l) % MaxSize;

6.设有一个广义表A((x.(n,b)),(x,(9。b),y)),运算Head(Head(Tail(A)))的执行结果为( ).

A.x B.(a,b)

C.(x,(a ,b)) D.y

7.在一棵完全二叉树中,著编号为i的结点存在左子女,则左子女结点的编号为( ).

假定树根结点的编号为0。

A.2i B.2i一1

C.2i+1 D.2i+2

8.对长度为10的顺序表进行搜索,若搜索前面5个元素的概率相同,均为1/8,搜索后面5个元素的概串相同,均为3/40,则搜索任一元素的平均搜索长度为( ).

A.5.5 B.5

C 39/8 D.19/4

9.向一棵AVL树插入元素时,可能引起对最小不平衡于树的左单或右单旋转的调整词程,此时需要修改相关( )个指针域的值.

A.2 B3

C.4 D 5

10.对于有向图,其邻接矩阵表示比邻接表表示更易于

( ).

A.求一个顶点的入度 B.求一个顶点的出边邻接点

C.进行图的深度优先遍历 D.进行图的广度优先遍历

l1.设有向固有n个顶点和,条边,采用邻接表作为其存储表示,在进行拓扑排序时,总的计算时间为( ).

A. O(nlog2e)

B. O(n+e)

C. O(ne)

D. O(n2)

12.在10阶B树申报结点所包含的关键码个数最少为

( ).

A.O B1

C.3 D4

试题答案及评分标准

一、单项选择题 (每小题1分,共12分)

1.B 2.C 3.B 4.C 5.D 6.A 7.C 8.C 9.B 10.A 11.B 12.B 二,填空题.在横线处填写合适内容{每空1分,共16分) 1.属性与服务相同的对象构成类,类中的每个对象称为该类的__________·

2.在类的继承结构中,位于上层的类叫做__________,其下层

的类则叫做__________类.

3.若设串S=“documentHash.doc\O”,则诙字符串S的长度为__________·

4.线性表的链接存储只能通过__________顺序访问。

5.设链栈中结点的结构为(data,link),栈顶指针为top,则向该链栈插入—个新结点*p时,应依次执行__________和

__________操作。

6.广义表的深度定义为广义表中括号被嵌套的__________·7.在一棵高度为h的完全二叉树中,最少含有__________个结点。假定树根结点的高度为O。

8.从有序表(12,20,30,43,56,78,92,95)中折半搜索56、78和98元素时,其搜索长度分别

为__________、__________和__________·

9。n个(n>0)顶点的连通无向图中各顶点的度之和最少为

______·

10.设图的顶点数为n,则求解最短路径的Dijkstra算法的时间复杂度为__________·

11.给定一组数据对象的关键码为{ 46,79,56,38,40,

84 },则利用堆排序方法建立的初始最大堆的堆首和堆尾的关键码分别为________和________·

12.在索引表中,着一个索引项对应数据对象表中的一个表项,

则称此索引为稠密索引,若对应数据对象表中的若干表项,则称此索引为________索引.

计算机专业数据结构试题答案及评分标准

二、填空题,在横线处填写合适内容(每空1分,共”分) 1.实例

2.基类派生类(或子类)

3.16

4.链接指针

5.p->Link = top; top = p;

6.重数

7.2h

8. 3 2 5

9.2(n-1)

10。O(n2)

11.84 46

12。稀疏

三、判断题,在每小题后面的括号内打对号表示正确或打叉号表示错误(每小题1分,共12分)

1.算法和程序都应具有下面—些特征:有输入,有输出,确定性,有穷性,有效性。 ( )

2.用C字符数组存储长度为n的字符串,数组长度至少为

n+1. ( )

3.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针.( )

4.—个广义表的表尾总是一个表. ( )

5.在树的存储中,若使每个结点带有指向双亲结点的指针t将在算法中为寻找双亲结点带来方便. ( )

6.假定有两个用单链有序表表示的集合,则这两个集合的交运算可得到一个新的集合单链表,其长度小于等于参加运算的任意—个集合单链表的长度. ( )

7.邻按矩阵适用于稀疏图(边数远小于顶点数的平方),邻接表适用于稠密图(边数接近于顶点数的平方). ( ) 8.对一个无向连通图进行一次深度优先搜索可以追访图中的所有顶点. ( )

9.在任何情况F,快速排序需要进行关键码比较的次数都是

O(nlog2n). ( )

10.在索引顺序结构的搜索中.对索引表既可以采取顺序搜索,

也可以采用折半搜索.( )

11.对于一棵具有n个结点。高度为h的任何二叉树,进行任一种次序遍历的时间复杂度均为O(h). ( )

12.图中各个顶点的编号是人为的,不是它本身固有的,因此可以根据需要进行改变.( )

计算机专业数据结构试题答案及评分标准

三、判断题 (每空1分,共12分)

1.错 2.对3.对 4.对 5.对 6.对7.错 8.对 9.错 10.对 11.错 12.对

运算题(每小题6分,共30分)

1.设有一个lOxl0的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么A[5][8]存放于B 中什么位置.

A[5][8]在B中的存放位置:

2.有7个带权结点,其权值分别为3,7.8,2,6,10,14,试以它们为叶子结点生成一棵霍夫曼树,求出该树的带权路径长度和高度,假定树根的高度为0.

带权路径长度:

高度:

3.已知有向图G(V,E),其中V={a,b,c,d,c},

E={}

请问该图的邻接表中,每个顶点单链表各有多少边结点.

顶点: a b c d e

边结点数:

4.已知一个AOV网络的顶点集V和边集E分别为:

V={O,1,2,3,4,5,6,7};

E={<0,2>,<1,3>,<1.4>,<2,4>,<2,5>,<3,6>,<3,7>,<4,7>,<5,7>,<6,7>),

若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号(即dest域的值)从小到大的次序链接的,则按教材中介绍的进行拓扑排序的算法,写出得到的拓扑序列(提示:先画出对应的图形,然后再运算).

拓扑序列:

5.已知有一个数据表为{30,18,20,15,38,12,44,53,46,18,26,86},给出进行归并排序的过程中每一趟排序后的

数据表的变化.

(0) [30 18 20 15 38 12 44 53 46 18 26 86]

(1)

(2)

(3)

(4)

试题答案及评分标准

四、运算题(每小题6分,共30分)

1. 43

答案说明:根据题意,矩阵A中当元素下标i与j满足

i≤j时,任意元素A[i][j]在一维数组B中的存放位置为(2。n 一1—1)*1/2+J,因此,A[5][8]在数组B中的位置为:

(2*10—5—1)*5/2+8=43

2.带权路径长度:131,高度:4

3.评分标准:每个数据对给1分,全对给6分.

顶点: a b c d e

边结点数: 1 1 2 1 2

4.评分标准;若与答案完全相同得6分,若仍为一种拓扑序列用得3分,其他用酌情处理.

拓扑序列:1,3,6,0,2,5,4,7。

5.分步给分

(0)[30 18 20 15 38 12 44 53 46 18 26 86]

(1)[18 30] [15 20] [12 38] [44 53] [18 46] [26 86]

(2)[15 18 20 30] [12 38 44 53] [18 26 46 86]

(3)[12 15 18 20 30 38 44 53] [18 26 46 86]

(4)[12 15 18 18 20 26 30 38 44 46 53 86]

算法分析题 (每小题6分,共18分)

1.设字符串类String具有下列操作:

int Length() const;// 计算字符串的长度

char getData(k);// 提取字符串第k个字符的值

若字符串Tar的值为“ababcabcacbab”,Pat的值为“abcac”,

(1)给出下面算法执行后返回的结果,

(2)给出下面算法的功能。

include "String, h"

int unknown(String& Tar, String& Pat) coast

{

for (int i

while (j

if(Tar.getOata(i+j) == Pat.getData(j)) j++;

else break;

if (j==Pat.Length()) return i;

}

return –1;

}

返回结果:

算法功能:

2。已知二叉树中的结点类型BinTreeNode定义为:

struct BinTreeNode { ElemType data; BinTreeNode * left, * right; }

其中data为结点值域,left和right分别为指向左、右子女结点的指针域.下面函数的功能是返回二叉树BT中值为X的结点所在的层号.根据题意按标号把合适的内容填写到算法后面相应标号的位置.

int NodeLevel(BinTreeNode * BT, ElemType X) {

if (BT==NULL) return -1; // 空树的层号为-1

else if (BT->data==X) return 0; // 根结点的层号为0 // 向子树中查找X结点

else {

int cl = NodeLevel(BT->left, X);

if (cl>=0) ________________ ; (1)

int c2 = __________________ ; (2)

if ( (3) ) return c2+1;

else return -1; // 若树中不存在X结点则返回-l

}

}

(1)

(2)

(3)

3.假定一个有向无权图采用邻接矩阵存储,请指出下面算法的功能。

Template

void Graph::unknown(int i)

{

int d, j;

d=0;

for (j=0; j

if (Edge[i][j]) { d++; Edge[i][j]=0; }

if (Edge[j][i]) { d++; Edge[j][i]=0; }

}

CurrentEdges -= d; // CurremEdges为图中的边数

}

算法功能:

计算机专业数据结构试题答案及评分标准

五、算法分析题(每小题6分,共18分)

1. 返回结果,5

算法功能:字符串的模式匹配算法.

2. (1) return cl+l;

(2) NodeLevel(BT->right,X)

(3) c2>=0

3. 从有向无权图中删除与顶点i相连的所有边,包括出边和入边。

算法设计题(每小题6分.共12分)

1.请写出在循环队列上进行插入操作的算法。要求若插入成功则返目true,否则返回else.

循环队列定义如下:

struet CyclicQueue {

ElemType elem[M]; // M为已定义过的整型常量,表示队列数组空间长度

int rear, front; // rear指向队尾元素后一个位置, // front指向队头元索

int tag;

};

注意:当front==rear且tag==0时,队列空,当front=rear且tag=1时,队列满,即队列中已有M个元素.

bool EnCQueue(CyclicQueue& Q, ElemType x){

/* 请编写该函数体 */

}

// 在下面编写函数体

2.已知二又树中的结点类型BinTreeNode定义为:

slruct BinTreeNode {char data; BinTreeNode * left, * right;};

其中data为结点值域,left和righ~分别为指向左、右子女结点的指针域,根据下面函数声明编写出求一棵二叉树中结点

总数的递归算法,该总数值由函数返回.假定BT初始指向这棵二叉树的根结点.

int BTreeCount(BinTreeNode* BT);

试题答案及评分标准

六,算法设计题(2小题,每小题6分,共12分)

1.分步给分

if (Q.rear==Q.front && Q.tag== 1) return false;

Q.elem[Q.rear] = x;

Q.rear = (Q.rear+ 1) % M;

if(Q.rear == Q. front) Q.tag= 1;

return true;

2.分步给分

int BTreeCount(BinTreeNode * BT)

{

if(BT== NULL)

return O;

else

return BtreeCount(BT->left)+BTreeCount(BT->right)+ l; }

数据结构考试试题及答案

数据结构 一、单选题 1. 计算机算法指的是(b )。 A.程序B.问题求解步骤的描述C.调度方法D.排序方法 2. 以下数据结构中,(a )个是非线性数据结构。 A.树B.字符串C.队D.栈 3. 对于顺序存储的线性表,访问元素和插入元素的时间复杂度分别为:(c )。 A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1) 4. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(b )。 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 5. n个顶点的有向图中,含有向边的数目最多为( d ) A.n-1 B.n C.n(n-1)/2 D.n(n-1) 6. 循环队列存储在数组A[0..m]中,则入队时的操作为( d ) A.rear=rear+1 B.rear=(rear+1)mod(m-1) C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1) 7. 字符串?ababaabab?的next函数为(d ) A.011232232 B.012341234 C.011122334 D. 011234234 8. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为( b )A.9 B.11 C.15 D.不确定 9. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当以列为主序存放时,元素A[5,8]的首地址为( b )。A.BA+141 B.BA+180 C.BA+222 D.BA+225 10. n个顶点的带权无向连通图的最小生成树包含(b )个顶点 A.n-1 B.n C.n/2 D.n+1 11.有关二叉树的下列说法正确的是( b ) A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 12.关键路径是AOE网中( a )。 A.从源点到汇点的最长路径B.从源点到汇点的最短路径 C.最长回路 D.最短路径(从源点到汇点的所有路径中,经过弧的数目最多的路径) 13.若查找每个记录的概率相等,则在具有n个记录的连续文件中采用顺序查找查找一个记录,其平均查找长度ASL为(c)。 A.(n-1)/2 B.n/2 C.(n+1)/2 D.n 14.就平均性能而言,目前最好的内部排序方法是(d ) A.冒泡排序B.希尔排序C.堆排序D.快速排序 15.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是(d )A.head(tail(LS)) B.tail (head (LS) C.head(tail(head(tail(LS)))) D.head(tail(tail (head (LS)))) 17.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:( a ) A. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B. 在第i个结点后插入一个新结点(1≤i≤n)

大数据考试题含答案精编WORD版

大数据考试题含答案精 编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

1 多选传统大数据质量清洗的特点有: A. 确定性 B. 强类型性 C. 协调式的 D. 非确定性 2 多选以下选项中属于数据的作用的是()。 A. 沟通 B. 验证假设 C. 建立信心 D. 欣赏 3 多选数据建立信心的作用需具备的条件包括()。 A. 可靠数据源 B. 多方的数据源 C. 合适的数据分析 D. 信得过的第三方单位 4 多选数据只有在与()的交互中才能发挥作用。

A. 人 B. 物 C. 消费者 D. 企业 5 单选大数据可能带来(),但未必能够带来()。 A. 精确度;准确度 B. 准确度;精确度 C. 精确度;多样性 D. 多样性;准确度 6 多选大数据的定义是: A. 指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合 B. 任何超过了一台计算机处理能力的数据量 C. 技术 D. 商业 7 多选大数据五大类应用方向是: A. 查询

B. 触达 C. 统计 D. 预警 E. 预测 8 多选以下哪些指标是衡量大数据应用成功的标准? A. 成本更低 B. 质量更高 C. 速度更快 D. 风险更低 9 多选大数据有哪些价值? A. 用户身份识别 B. 描述价值 C. 实时价值 D. 预测价值 E. 生产数据的价值 10 多选大数据的预测价值体现在:

A. 预测用户的偏好、流失 B. 预测热卖品及交易额 C. 预测经营趋势 D. 评价 11 单选什么是大数据使用的最可靠方法? A. 大数据源 B. 样本数据源 C. 规模大 D. 大数据与样本数据结合 12 多选大数据是描述()所发生的行为。 A. 未来 B. 现在 C. 过去 D. 实时 13 多选传统研究中数据采集的方法包括: A. 网络监测

数据结构第二章试题

第2章线性表 一、选择题 1. 链表不具备的特点是()。 A.可随机访问任意结点 B. 插入删除不需要移动元素 C. 不必事先估计存储空间 D. 所需空间与其长度成正比 2. 不带头结点的单链表head为空的判定条件是()。 ==NULL B. head->next==NULL >next==head !=NULL 3.带头结点的单链表head为空的判定条件是()。 ==NULL B. head->next==NULL >next==head !=NULL 4.带头结点的双循环链表L为空表的条件是()。 A.L==NULL B.L->next->==NULL C.L->prior==NULL >next==L 5.非空的循环链表head的尾结点(由P所指向)满足()。 A.p->next==NULL B.p==NULL C.p->next==head ==head 6.在循环双链表的p所指结点之前插入s所指结点的操作是()。 A.p->prior=s;s->next=p;p->prior->next=s;s->prior=p->prior; B.p->prior=s;p->prior->next=s;s->next=p;s->prior=p->prior; C.s->next=p;s->prior=p->prior;p->prior=s;p->right->next=s; D. s->next=p;s->prior=p->prior;p->prior->next=s;p->prior=s; 7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。 A.单链表 B.给出表头指针的单循环链表 C.双链表 D. 带头结点的双循环链表 8.某线性表最常用的操作是在最后一个结点之后插入一个节点或删除第一个结点,故采用()存储方式最节省运算时间。 A.单链表 B.仅有头结点的单循环链表 C.双链表 D. 仅有尾指针的单循环链表 9.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。 A.单链表 B.静态链表 C.线性链表 D. 顺序存储结构 10.如果最常用的操作是取第i个结点及前驱,则采用()存储方式最节省时间。 A.单链表 B.双链表 C.单循环链表 D.顺序表 11.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()。 A.O(1) B.O(n) C.O(n*n) D. O(nlog2n) 12.在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。A.删除单链表中的第一个元素 B.删除单链表中的最后一个元素 C. 在单链表第一个元素前插入一个新元素 D.在单链表最后一个元素后插入一个新元素 13.设线性表有n个元素,以下算法中,()在顺序表上实现比在链表上实现效率更高。A.输出第i(0<=i<=n-1)个元素值 B.交换第0个元素与第1个元素的值 C. 顺序输出这n个元素的值 D.输出与给定值x相等的元素在线性表中的序号 14.设线性表有2n个元素,算法(),在单链表上实现比在顺序表上实现效率更高。 A.删除所有值为x的元素 B.在最后一个元素的后面插入一个新元素 C. 顺序输出前k个元素 D.交换第i个元素和第2n-i-1个元素的值(i=0,1,…,n-1)

数据结构第二章线性表测试题

第二章线性表 1、描述一下三个概念的区别:头指针,头结点,首元结点。并给予图示。 2、对于有头结点的单链表,分别写出定位成功时,实现下列定位语句序列。(1)定位到第i 个结点a i ; (2)定位到第i 个结点的前驱a i-1; (3)定位到尾结点; (4)定位到尾结点的前驱。 3、已知L 是有表头结点的单链表,且P 结点既不是首元结点,也不是尾结点,试写出实现下列功能的语句序列。 (1)在P 结点后插入S 结点;(2)在P 结点前插入S 结点;(3)在表首插入S 结点;(4)在表尾插入S 结点 . p=head; p=head; j=0; while ( p && jnext; j++;} p=head; j=0; while ( p && jnext; j++;} p=head; while ( p ->next ) p=p->next; while ( p->next->next ) p=p->next; (1)s->next=p->next; p->next=s; (2)q =L ; whil e ( q ->next !=p ) q =q ->next;s->next=p 或 q ->next ; q ->next=s; (3 ) s->next=L ->next; L ->next=s; (4)q =L ; whil e ( q ->next !=NULL) q =q ->next;s->next= q ->next ; q ->next=s;

4、设计算法:在顺序表中删除值为e 的元素,删除成功,返回1;否则,返回0。 5、设计一个算法,将一个带头节点的数据域依次为a 1,a 2,…,a n (n ≥3)的单链表的所有节点逆置,即第一个节点的数据域变为a n ,…,最后一个节点的数据域为a 1。(注意:先用自然语言描述算法基本思想,然后用类C++语言描述) int Sqlist::DeleteElem( T e ) { for (i=1; i<=len g t h ; i ++) // 按值顺序查找 * i 可从0开始 if (elem[i-1]= =e) // 找到,进行删除操作 { for ( j=i; jnext; 4 LinkList* pri = NULL; //之前的节点 5 while(p){ 6 LinkList* q = new LinkList; 7 q->data = p->data; //把当前节点记录下来 8 q->next = pri; 9 pri = q; 10 head->next = q; 11 LinkList* t = p; //当前节点没用了删除掉 12 p=p->next; 13 delete(t); 14 } 15 }

数据结构教程李春葆第4版知识点习题答案

第1章绪论 知识点归纳 一、数据结构概述 1.数据结构的定义 (1)基本概念 数据是描述客观事物的数和字符的集合,是计算机能操作的对象的总称,也是计算机处理信息的某种特定的符号表示形式。 (2)相关术语 ① 数据元素 数据元素又称元素、节点、顶点、记录等。数据元素是数据的基本单位。有时候,一个数据元素可以由若干个数据项组成。 ② 数据项 数据项又称字段或域,它是具有独立含义的最小数据单位。 ③ 数据对象 数据对象是性质相同的数据元素的集合,它是数据的子集。 (3)数据结构的内容 ① 数据元素之间的逻辑关系,即数据的逻辑结构,它是数据结构在用户面前呈现的形式。 ② 数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,又称数据的物理结构。 ③ 施加在数据上的操作,即数据的运算。 (4)逻辑结构 数据的逻辑结构是从逻辑关系(主要是指数据元素的相邻关系)上描述数据的,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。 (5)存储结构 数据的存储结构是逻辑结构用计算机语言的实现或在计算机中的表示(又称映像),也就是逻辑结构在计算机中的存储方式,它是依赖于计算机语言的。一般只在高级语言(例如C/C++语言)的层次上讨论存储结构。 数据的运算最终需在对应的存储结构上用算法实现。 总之,数据结构是一门讨论“描述现实世界实体的数学模型(通常为非数值计算)及其之上的运算在计算机中如何表示和实现”的学科。 (6)数据结构的表示 对于一种数据结构,其逻辑结构总是惟一的,但它可能对应多种存储结构,并且在不同的存储结构中,同一运算的实现过程可能不同。 描述数据结构通常采用二元组表示:

2017年数据结构期末考试题及答案A

2017年数据结构期末考试题及答案 一、选择题(共计50分,每题2分,共25题) 1 ?在数据结构中,从逻辑上可以把数据结构分为 C 。 A. 动态结构和静态结构B?紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2?数据结构在计算机内存中的表示是指 A ° A. 数据的存储结构 B.数据结构 C.数据的逻辑结构 D .数据元 素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A. 逻辑B?存储 C.逻辑和存储 D.物理 4 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C ° A.数据的处理方法B?数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5. 在决定选取何种存储结构时,一般不考虑 A ° A.各结点的值如何B?结点个数的多少 C?对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6. 以下说法正确的是D ° A. 数据项是数据的基本单位 B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据可以有相同的逻辑结构 7. 在以下的叙述中,正确的是B ° A. 线性表的顺序存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C?栈的操作方式是先进先出 D.队列的操作方式是先进后出

8. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 A. 数据元素具有同一特点 B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C. 每个数据元素都一样 D. 数据元素所包含的数据项的个数要相等 9 ?链表不具备的特点是 A 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C?不必事先估计存储空间 D.所需空间与其长度成正比 10. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一 个结点,则采用 D 存储方式最节省运算时间。 A.单链表B ?给出表头指针的单循环链表 C.双链表D ?带头结点 的双循环链表 11. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 A.单链表B .静态链表 C.线性链表 D .顺序存储结构 12 .非空的循环单链表head的尾结点(由p所指向)满足C 。 A. p—>next 一NULL B. p — NULL C. p—>next == head D. p = = head 13 .在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。 A .p—> prior-> prior=s B .p—> prior-> n ext=s C.s —> prior—> n ext = s D.s —> prior—> prior = s 14 .栈和队列的共同点是C 。 A.都是先进后出 B .都是先进先出 C.只允许在端点处插入和删除元素 D .没有共同点

数据结构试题及答案

一、单选题(每题2 分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结 点,则执行( A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 3.对线性表,在下列哪种情况下应当采用链表表示?(B ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是 ( C ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. 5.AOV网是一种( D )。 A.有向图B.无向图C.无向无环图D.有向无环图 6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度(B)。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同D.高于二分查找 7.7.若需要利用形参直接访问实参时,应将形参变量说明为(D )参数。 A.值B.函数C.指针D.引用 8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具 有相同的(A)。 A.行号B.列号C.元素值D.非零元素个数 9.9.快速排序在最坏情况下的时间复杂度为(D )。 A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 二、二、运算题(每题 6 分,共24分) 1. 1.数据结构是指数据及其相互之间的______________。当结点之间存在M 对N(M:N)的联系时,称这种结构为_____________________。 2. 2.队列的插入操作是在队列的___尾______进行,删除操作是在队列的 ____首______进行。 3. 3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则 表示栈满的条件是___top==0___(要超出才为满)_______________。 4. 4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度 为____O(1)_____,在表尾插入元素的时间复杂度为____O n________。

李春葆《数据结构教程》(第4版)课后习题-查找(圣才出品)

第9章查找 1.对于有序表A[0..10],采用二分查找法时,求成功和不成功时的平均查找长度。对于有序表{12,18,24,35,47,50,62,83,90,115,134},当用二分查找法查找90时,需进行多少次查找可确定成功?查找47时,需进行多少次查找可确定成功?查找100时,需进行多少次查找才能确定不成功? 答:对于A[0..10]有序表构造的判定树如图9-1(a)所示。因此有: 对于本题给定的有序表构造的判定树如图9-1(b)所示,由此可知本题答案分别为2、4和3。 图9-1 一棵判定树 2.将整数序列{4,5,7,2,1,3,6}中的数依次插入到一棵空的二叉排序树中,试构造相应的二叉排序树,要求用图形给出构造过程,不需编写程序。 答:构造一棵二叉排序树过程如图9-2所示。

图9-2 构造二叉排序树过程 3.将整数序列{4,5,7,2,1,3,6}中的数依次插入到一棵空的平衡二叉树中,试构造相应的平衡二叉树,要求用图形的方式给出构造过程,不需编写程序。 答:构造一棵平衡二叉树过程如图9-3所示。

图9-3 构造平衡二叉树过程 4.编写一个算法,输出在一棵二叉排序树中查找某个关键字k经过的路径。 答:使用path数组存储经过的节点,当找到所要找的节点时,输出path数组中的元素值,从而输出以根节点到当前节点的路径。对应的算法如下:

查找关键字3:3425 从中看到,两者输出的路径相反,SearchBSTl()更灵活些,它可以对路径上经过的节点进行相应的处理。 5.编写一个算法,判断给定的二叉树是否是二叉排序树。 答:对二叉排序树来说,其中序遍历序列为一个递增有序序列。因此,对给定的二叉树进行中序遍历,如果始终能保持前一个值比后一个值小,则说明该二叉树是一棵二叉排序树。对应的算法如下: 6.已知一个关键字序列为if、while、for、case、do、break、else、struct、union、int、double、float、char、long、bool共15个字符串,哈希函数H(key)为关键字的第一个字母在字母表中的序号,哈希表的表长为26。 (1)若处理冲突的方法采用线性探查法,设计一个算法输出每个关键字对应的H(key)、输出哈希表并求成功情况下的平均查找长度。 (2)若处理冲突的方法采用链地址法,设计一个算法输出哈希表并计算成功情况下和

数据结构期末考试题及标准答案

数据结构期末考试题及标准答案

————————————————————————————————作者:————————————————————————————————日期:

2012年数据结构期末考试题及答案 一、选择题 1.在数据结构中,从逻辑上可以把数据结构分为C。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指A。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。 A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是D。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是C,算法分析的两个主要方面是A。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2)。

s =0; for(I =0;i<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

大数据时代题目及答案(三套试题仅供参考)

大数据时代题目及答案(三套试题仅供参考)

第一套试题 1、当前大数据技术的基础是由(C)首先提出的。(单选题,本题2分) A:微软 B:百度 C:谷歌 D:阿里巴巴 2、大数据的起源是(C )。(单选题,本题2分) A:金融 B:电信 C:互联网 D:公共管理 3、根据不同的业务需求来建立数据模型,抽取最有意义的向量,决定选取哪种方法的数据分析角色人员是(C)。(单选题,本题2分) A:数据管理人员 B:数据分析员 C:研究科学家 D:软件开发工程师 4、(D )反映数据的精细化程度,越细化的数据,价值越高。(单选题,本题2分) A:规模 B:活性 C:关联度 D:颗粒度 5、数据清洗的方法不包括( D)。(单选题,本题2分) A:缺失值处理 B:噪声数据清除 C:一致性检查 D:重复数据记录处理 6、智能健康手环的应用开发,体现了( D)的数据采集技术的应用。(单选题,本题2分) A:统计报表 B:网络爬虫 C:API接口 D:传感器 7、下列关于数据重组的说法中,错误的是(A)。(单选题,本题2分) A:数据重组是数据的重新生产和重新采集 B:数据重组能够使数据焕发新的光芒 C:数据重组实现的关键在于多源数据融合和数据集成 D:数据重组有利于实现新颖的数据模式创新 8、智慧城市的构建,不包含( C)。(单选题,本题2分) A:数字城市 B:物联网 C:联网监控 D:云计算 9、大数据的最显著特征是(A)。(单选题,本题2分) A:数据规模大 B:数据类型多样 C:数据处理速度快 D:数据价值密度高10、美国海军军官莫里通过对前人航海日志的分析,绘制了新的航海路线图,标明了大风与洋流可能发生的地点。这体现了大数据分析理念中的(B )。(单选题,本题2分) A:在数据基础上倾向于全体数据而不是抽样数据 B:在分析方法上更注重相关分析而不是因果分析 C:在分析效果上更追究效率而不是绝对精确 D:在数据规模上强调相对数据而不是绝对数据 11、下列关于舍恩伯格对大数据特点的说法中,错误的是(D)。(单选题,本题2分) A:数据规模大 B:数据类型多样 C:数据处理速度快 D:数据价值密度高12、当前社会中,最为突出的大数据环境是(A)。(单选题,本题2分) A:互联网 B:物联网 C:综合国力 D:自然资源 13、在数据生命周期管理实践中,( B)是执行方法。(单选题,本题2分) A:数据存储和备份规范 B:数据管理和维护 C:数据价值发觉和利用 D:数据应用开发和管理 14、下列关于网络用户行为的说法中,错误的是(C)。(单选题,本题2分) A:网络公司能够捕捉到用户在其网站上的所有行为 B:用户离散的交互痕迹能够为企业提升服务质量提供参考 C:数字轨迹用完即自动删除 D:用户的隐私安全很难得以规范保护 15、下列关于计算机存储容量单位的说法中,错误的是( C)。(单选题,本题2分) A:1KB<1MB<1GB B:基本单位是字节(Byte) C:一个汉字需要一个字节的存储空间 D:一个字节能够容纳一个英文字符, 16、下列关于聚类挖掘技术的说法中,错误的是(B)。(单选题,本题2分) A:不预先设定数据归类类目,完全根据数据本身性质将数据聚合成不同类别

数据结构第二章练习题 - 副本

《数据结构》第二章练习题 1.单项选择题 2.1链表不具备的特点是() A 可随机访问任一结点 B 插入删除不需要移动元素 C 不必事先估计存储空间 D 所需空间与其长度成正比 2.2 不带头节点的单链表head为空的判定条件是() A head==NULL B head->next==NULL C head->next==head D head!=NULL 2.3带头节点的单链表head为空的判定条件是() A head==NULL B head->next==NULL C head->next==head D head!=NULL 2.4 带头结点的双循环链表L为空的条件是() A L==NULL B l->next->==NULL C L->prior==NULL D L->next==L 2.5 非空的循环单链表head尾结点(由P所指向)满足() A P->next==NULL B P==NULL C P->next==head D P==head 2.6在双循环链表中的P所指结点之前插入s所指结点的操作是() A p->prior=s;s->next=p;p->prior>next=s;s->prior=p->prior; B p->prior=s;p->prior>next=s;s->next=p;s->prior=p->prior; C s->next=p;s->prior=p->prior; p->prior=s;p->right->next=s; D s->next=p;s->prior=p->prior;p->prior->next=s;p->prior=s; 2.7若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间 A 单链表 B 给出表头指针的单循环链表 C 双链表 D 带头结点的双循环链表 2.8某线性表最常用的操作时在最后一个结点之后插入一个结点或删除第一个结点,故采用()存储方式最节省运算时间 A 单链表B仅有头结点的单循环链表

李春葆《数据结构教程》(第4版)课后习题-串(圣才出品)

第4章串 1.采用顺序结构存储串,编写一个实现串通配符匹配的算法pattern______index(),其中的通配符只有“?”,它可以和任一字符匹配成功,例如,pattern______index(″? re″,″there are″)返回的结果是2。 答:本题的基础是Brute—Force模式匹配算法,只是增加了“?”的处理功能。对应的算法如下: 2.有两个串s1和s2,设计一个算法求这样一个串,该串中的字符是s1和s2中的公共字符。 答:扫描s1,对于当前字符s1.data[i],若在s2中,则将其加入到串s3中。最后返回s3串。对应的算法如下:

3.设目标为t=’abcaabbabcabaacbacba’,模式p=’abcabaa’。(1)计算模式P的nextval函数值。 (2)不写算法,只画出利用KMP算法进行模式匹配时的每一趟匹配过程。答:(1)先计算next数组,在此基础上求nextval数组,如表4-1所示。 表4-1 计算next数组和nextval数组 (2)采用KMP算法求子串位置的过程如下(开始时i=0,j=0): 第1趟匹配: 此时i=4,j=4,匹配失败,而nextval[4]=0,则i=4,j=nextval[4]=0,即:

第2趟匹配: 此时i=6,j=2,匹配失败,而nextval[2]=0,则i=6,j=nextval[2]=0,即: 第3趟匹配: 此时i=6,j=0,匹配失败,而nextval[0]=-1,则i=6,j=nextval[0]=-1。因j=-1,执行i=i+1=7,j=j+1=0,即: 第4趟匹配: 此时i=14,j=7,匹配成功,返回v=i-t.1ength=14-7=7。 上机实验题4 实验题1编写一个程序algo4-1.cpp,实现顺序串的各种基本运算,并在此基础上设计一个程序exp4-1.cpp完成如下功能: (1)建立串s=″abcdefghefghijklmn″和串sl=″xyz″; (2)输出串s; (3)输出串s的长度;

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) A.(100,80,90,60,120,110,130) B.(100, 120, 110,130,80, 60,90) C.(100,60,80,90,120,110,130) D.(100,80, 60,90, 120, 130,110) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

数据结构试题及答案修2

试卷一 一、单选题(每题 2 分,共20分) 1. 对一个算法的评价,不包括如下()方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 对线性表,在下列哪种情况下应当采用链表表示?( ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. AOV网是一种()。 A.有向图B.无向图C.无向无环图D.有向无环图 7. 若需要利用形参直接访问实参时,应将形参变量说明为()参数。 A.值B.函数C.指针D.引用 8. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。 A.行号B.列号C.元素值D.非零元素个数 二、填空题(每空1分,共28分) 1. 数据结构是指数据及其相互之间的______________。当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。 2. 队列的插入操作是在队列的___尾______进行,删除操作是在队列的____首______进行。 3. 当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是___top==0_____________。 4. 对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。 7. 二叉树是指度为2的____________________树。一棵结点数为N的二叉树,其所有结点的度的总和是_____________。 8. 对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。对一棵由算术表达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。 9. 对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为_____________个,其中_______________个用于指向孩子,_________________个指针是空闲的。 10. 若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为0的结点存储到A[0]中。其余类推,则A[ i ]元素的左孩子元素为________,右孩子元素为

2015年数据结构期末考试题及答案

2012年数据结构期末考试题及答案 一、选择题 1.在数据结构中,从逻辑上可以把数据结构分为C。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指A。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。 A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是D。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是C,算法分析的两个主要方面是A。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2)。

s =0; for(I =0;i<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

数据结构考试题库含答案

数据结构习题集含答案 目录

选择题 第一章绪论 1.数据结构这门学科是针对什么问题而产生的(A ) A、针对非数值计算的程序设计问题 B、针对数值计算的程序设计问题 C、数值计算与非数值计算的问题都针对 D、两者都不针对 2.数据结构这门学科的研究内容下面选项最准确的是(D ) A、研究数据对象和数据之间的关系 B、研究数据对象 C、研究数据对象和数据的操作 D、研究数据对象、数据之间的关系和操作 3.某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那 么下面关于数据对象、数据元素、数据项描述正确的是(C ) A、某班级的学生成绩表是数据元素,90分是数据项 B、某班级的学生成绩表是数据对象,90分是数据元素 C、某班级的学生成绩表是数据对象,90分是数据项 D、某班级的学生成绩表是数据元素,90分是数据元素 4.*数据结构是指(A )。 A、数据元素的组织形式 B、数据类型 C、数据存储结构 D、数据定义 5.数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C )。 A、存储结构 B、逻辑结构 C、链式存储结构 D、顺序存储结构 6.算法分析的目的是(C ) A、找出数据的合理性 B、研究算法中的输入和输出关系 C、分析算法效率以求改进 D、分析算法的易懂性和文档型性

7.算法分析的主要方法(A )。 A、空间复杂度和时间复杂度 B、正确性和简明性 C、可读性和文档性 D、数据复杂性和程序复杂性 8.计算机内部处理的基本单元是(B ) A、数据 B、数据元素 C、数据项 D、数据库 9.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储 比顺序存储要(B )。 A、低 B、高 C、相同 D、不好说 10.算法的时间复杂度取决于( C ) A 、问题的规模B、待处理数据的初始状态 C、问题的规模和待处理数据的初始状态 D、不好说 11.数据结构既研究数据的逻辑结构,又研究物理结构,这种观点(B )。 A、正确 B、错误 C、前半句对,后半句错 D、前半句错,后半句对 12.在数据结构中,从逻辑上可以把数据结构分成( C ) A、动态结构和静态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构 13.线性表的顺序存储结构是一种( )的存储结构,线性表的链式存储结构是一种( A ) 存储结构。 A、随机存取 B、顺序存取 C、索引存取 D、散列存取 14.*下列程序的时间复杂度是(A ) for (i=1; i<=n; ++i){ for (j=1; j<=n; ++j){ c [i][j]=0;

数据结构第2章 链表 练习题

1.1. 一元稀疏多项式的求导算法 写出一元稀疏多项式的求导算法,用带表头结点的单链表存储该一元稀疏多项式,Lb为头指针,用类C语言描述该求导算法,不另行开辟存储空间,删除无用结点,并分析算法的时间复杂度。该链表的数据结构如下: typedef struct LNode{ float coe; //系数 int exp; //指数 struct LNode *next; //指针 } LNode , *LinkList ; 求导算法如下: void Differential(LinkList &Lb) { //求导算法 pre=Lb; p=pre->next; while ( p ) { if ( p->exp != 0 )//指数不等于零 { p->coe = p->coe * p->exp ; p->exp = p->exp – 1 ; pre = pre->next ; } else//指数等于零 { pre->next = p->next ; free ( p ); } p = pre->next ; } } 时间复杂度为: O(n)

1.2. 单链表存储结构的排序算法 排序算法:将一组整数排序成非递减有序序列。用带头结点的单链表存储,L为头指针,用类C语言写出该排序算法,不另行开辟存储空间,并分析算法的时间复杂度。该单链表的数据结构如下: typedef struct LNode{ int data; //数据域 struct LNode *next; //指针域 } LNode , *LinkList ; void Sort(LinkList &L) { //排序算法如下:将L排序成非递减单链表 q=L; p=q->next->next; q->next->next=NULL; while(p) { While(q->next && p->data >= q->next->data) q=q->next; s=p->next; p->next=q->next; q->next=p; p=s; q=L; } }//sort

相关主题
文本预览
相关文档 最新文档