文档库 最新最全的文档下载
当前位置:文档库 › 数据结构习题

数据结构习题

数据结构习题
数据结构习题

一、单项选择题

1.下面程序段的时间复杂度为( C ) 。

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) 2.设有一个递归算法如下

int fact(int n){//n大于等于0

if(n<=0) return 1;

else return n*fact(--n);

}

则计算fact(n)需要调用该函数的次数为( D )次,不计fact(n)。

A.n B.n+1 C.n+2 D.n-l 3.评价排序算法好坏的标准主要是(D)。

A.执行时间B.辅助空间

C.算法本身的复杂度D.执行时间和所需的辅助空间4.在需要经常查找结点的前驱与后继的场合中,使用( B )比较合适。

A.单链表B.双链表C.顺序表D.循环链表5.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则

执行(C )。

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长度为m,单链表B长度为n,若将B联接在A的末尾,

其时间复杂度应为( B )。

A.O(1) B.O(m) C.O(n) D.O(m+n) 7.链表不具有的特点是(A )。

A.可随机访问任一元素B.插入删除不需要移动元素

C.不必事先估计存储空间D.所需空间与线性表长度成正比8.若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是

( A )。

A.s->next=p->next; p->next=s; B.p->next=s; s->next=p->next;

C.p->next=s->next; s->next=p; D.s->next=p; p->next=s->next;

9.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空

的条件为( D )。

A.front==NULL B.front!=NULL

C.rear!=NULL D.front= =rear

10.栈和队列都是(C)。

A.链式存储的线性结构B.顺序存储的线性结构

C.限制存取位置的线性结构D.限制存取位置的非线性结构11.对于给定的结点序列abcdef,规定进栈只能从序列的左端开始。通过

栈的操作,能得到的序列为(A )。

A.abcfed B.cabfed C.abcfde D.cbafde 12.队列通常采用两种存储结构是( A )。

A.顺序存储结构和链表存储结构B.散列方式和索引方式

C.链表存储结构和数组D.线性存储结构和非线性存储结构13.若让元素1,2,3依次进栈,则出栈次序不可能出现(C)种情况。

A.3,2,1 B.2,1,3 C.3,1,2 D.1,3,2

14.若一个串非空,子串的定位操作通常称为( C )。

A. 串的长度

B.原串的子串

C.串的模式匹配

D.串的连接

15.设有一个n×n的对称矩阵A,将其上三角部分按行存放在一个一维数

组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B 中( C )处。

A.(i+3)*i/2 B.(i+1)*i/2 C.(2n-i+1)*i/2 D.(2n-i-1)*i/2 16.在( C )运算中,使用顺序表比链表好。

A.插入B.删除C.根据序号查找 D.根据元素值查找17.带头结点的单链表head为空的判断条件是( C )。

A.head= =NULL B.head->next= =NULL

C.head->next=head D.head!=NULL

18.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用

( C )最节省时间。

A)单链表 B)循环链单表 C)带尾指针的循环链单表 D)带头结点的双循环链表

19.栈的插入与删除操作在(A )进行。

A.栈顶 B.栈底 C.任意位置 D.指定位置

20.设一个栈的输入序列为A、B、C、D,则借助一个栈所能得到的输出

序列不可能是(D )。

A.ABCD B.DCBA C.ACDB D.DABC 21.在一个链队中,假设F和R分别是队首和队尾指针,则删除一个结点

的运算是( C )。

A.R=F->next; B.R=R->next; C.F=F->next; D.F=R->next; 22.串是一种特殊的线性表,其特殊性体现在( B )。

A.可以顺序存储B.数据元素是一个字符

C.可以链接存储D.数据元素可以是多个字符

23.以下说法正确的是(C )。

A)空串与空格串是相同的B)“fox”是“FoxBase”的子串

C)空串是零个字符组成的串D)空串长度等于1

24.若n为主串长,m为子串长(m

下,需要比较字符总数是( C )。

A.m B.m(n-m+1) C.n*m D.(n-m)*(m-1)

25.将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1..298]

中,A中元素A[66,65]在B数组中的位置k为(B )。

A)198 B)195 C)197

26.一个稀疏矩阵的转置矩阵应是(B )。

A.下三角矩阵B.稀疏矩阵C.非稀疏矩阵D.有时为稀疏矩阵

27.广义表((e))的表头是(C )。

A)e B)( ) C)(e) D)((e))

28.深度为5的二叉树至多有( C )个结点。

A.16 B.32 C.31 D.10

29.具有10个叶子结点的二叉树中有(B)个度为2的结点。

A.8 B.9 C.10 D.11

30.在二叉树的中序遍历递归算法中,顺着搜索路径,在第( B )次经过结

点时作访问操作。

A.1 B.2 C.3 D.4

31.在中序线索二叉树中,若某结点有右孩子,则该结点的直接后继是

( D )。

A 左子树的最右下结点

B 右子树的最右下结点

C 左子树的最左下结点

D 右子树的最左下结点

32.按照二叉树的定义,具有3个结点的二叉树有( C )种形态。

A.3 B.4 C.5 D.6

33.某二叉树的先序序列和后序序列正好相反,则该二叉树一定是(B)的

二叉树。

A.空或只有一个结点B.高度等于其结点数

C.任一结点无左孩子D.任一结点无右孩子

34.图的广度优先搜索类似于树的( D )次序遍历。

A.先根B.中根C.后根D.层次

35.n个顶点的强连通图中至少含有( B )。

A.n-l条有向边B.n条有向边

C.n(n-1)/2条有向边D.n(n-1)条有向边

36.任何一个无向连通图的最小生成树(B)。

A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在37.设G1=(V1,E1)和G2=(V2,E2)为两个图,如果V2包含V1,E2包含E1,

则称( A )。

A.G1是G2的子图B.G1是G2的连通分量

C.G2是G1的连通分量D.G2是G1的子图

38.下面关于图的存储的叙述中,哪一个是正确的。( A )

A.用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,与边数无关

B.用邻接矩阵法存储图,占用的存储空间数只与图中边数有关,与结点个数无关

C.用邻接表存储图,占用的存储空间数只与图中结点个数有关,与边数无关

D.用邻接表存储图,占用的存储空间数只与图中边数有关,与结点个数无关

39.( D )适合用邻接表表示。

A.稠密图B.有向完全图

C.无向完全图D.稀疏图

40.一般,图的DFS生成树的高度( C )BFS生成树的高度。

A.小于B.等于C.大于D.小于或等于

41.从一棵二叉排序树中查找一个元素时,其平均时间复杂度为( C )。

A.O(1) B.O(n) C.O(1og2n) D.O(n2) 42.二分查找法要求查找表中各元素的键值必须是( A )排列。

A.递增或递减B.递增C.递减D.无序43.向具有n个结点的、结构均衡的二叉排序树中插入一个元素的时间复

杂度为( B )。

A.O(1) B.O(log2n) C.O(n) D.O(nlog2n)

44.线性表必须是( D ),才能进行二分查找。

A.用向量存储的线性表B.用链表存储的有序表

C.用链表存储的线性表D.用向量存储的有序表

45.按照不同的顺序输入4,5,6三个关键字,能建立(B )棵不同的二

叉排序树。

A)6 B)5 C)4 D)3

46.在一棵m阶B-树中,若在某结点中插入一个新关键字而引起该结点的

分裂,则该结点中原有(D )个关键字。

A)?m/2?B)?m/2? - 1 C)m D)m-1 E)?m/2?F)?m/2? - 1 47.设有5000个无序的元素,希望用最快的速度挑选出其中前50个最大

的元素,最好选用( C )法。

A.冒泡排序 B.快速排序

C.堆排序 D.基数排序

48.下列序列中( B )是执行第一趟快速排序后得到的序列(排序的关键字

类型是字符串)。

A.[da,ax,eb,de,bb]ff[ba,gc]B.[cd,eb,ax,da,bb]ff[ha,gc]

C.[gc,ax,cb,cd,bb]ff[da,ba] D.[ax,bb,cd,da]ff[eb,gc,ba]

49.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时

间复杂度是( B )。

A.O(1) B.O(n) C.O(n2) D.O(log2n)

50.以下排序方法中,稳定的排序方法是( B )。

A.直接插入排序和希尔排序B.直接插入排序和冒泡排序

C.希尔排序和快速排序D.冒泡排序和快速排序

51.在快速排序中,每次划分选择的基准元素为该区间的( D )时,得到的

两个子区间是均匀的。

A.最大值B.最小值C.任意值D.中间值

52.若从二叉树的任一结点出发到根的路径上所经过的结点序列按关键字

有序,则该二叉树是下列树中的哪种?(C )

A. 二叉排序树

B. 哈夫曼树

C. 堆。

二、填空题

1.在一个长度为n的顺序表中删除第i个元素,要移动__n-i___个元素。

2.在顺序表中插入或删除一个元素,需要平均移动表长的一半元

素,具体移动元素的个数与元素所在的位置有关。

3.若线性表采用顺序存储结构存放,那么在长度为n的线性表中删除第i

(1≤i≤n)个数据元素需要移动 n-i 个数据元素,在长度为n的线性表中第i(1≤i≤n)个数据元素之前插入一个新的数据元素需要移动 n-i+1 个数据元素。

4.在非空的单循环链表h中,某个结点p为尾结点的条件是

p->next = h 。

5.一个队列的入队序列是a、b、c、d,则队列的输出序列为__abcd___。

6.栈结构通常采用的两种存储结构是__顺序栈___和_链栈___。

7.设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依次通过栈

S,一个元素出栈后即进入队列Q。若这6个元素出队列的顺序是b、d、

c、f、e、a,则栈S的容量至少应该是 3 。

8.设有一个n×n的对称矩阵A,将其上三角部分按行存放在一个一维数

组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B中(2n-i+1)*i/2处。

9.设有5对角矩阵A = (a ij)20*20,按特殊矩阵压缩存储的方式将其5条对

角线上的元素存于数组B[0:m]中,计算元素A[10,10]的存储位置

44 。

10.已知广义表L=(a,(( ),b),((e))),利用取表头和取表尾的操作分离出原

子e的运算是GetHead(GetHead(GetHead(GetTail(GetTail(L))))) 。11.设广义表B=(( ) ,(a, (b, c)), (e,f),( )),表头为 ( ) ,表

尾为 (a, (b, c)), (e,f),( ) 。

12.在空串和空格串中,长度不为0的是___空格串__。

13.有n个结点的二叉链表中,其中空的指针域为n+1.指向孩子的指针个

数为__n-1__。

14.中缀算术表达式5+6/(23-(6+15))*8 所对应的后缀算术表达式为

__5,6,23,6,15,+,-,/,8,*,+___。

15.假定一棵二叉树的结点个数为50,则它的最小深度为___6___,最大深

度为__50___。

16.一棵树的后根序列与其转换的二叉树的中序列相同,先根序列

与其转换的二叉树的先序列相同。

17.具有400个结点的完全二叉树的深度为____9_____。

18.一棵二叉树有67个结点,这些结点的度要么是0,要么是2。这棵二

叉树中度为2的结点有__33___个。

19.已知森林的先序访问序列为ABCDEFGHIJKL;中序访问序列为

CBEFDGAJIKLH。则该森林有__2__棵树。

20.当对字符集进行编码时,字符集中任一字符的编码都不是其他字符的

编码的前缀,这种编码称__二进制前缀编码____。

21.高度为h的二叉树只有度为0和2的结点,则此类二叉树的结点数至

少为2h-1+1 个结点,至多为2h-1 个结点。

22.深度为k的完全二叉树至少有2k-1个结点,至多有2k-1 个结点。

23.一个有30个结点的完全二叉树有 15 个叶子结点;有 14 个度

为2的结点。

24.高度为i(i≥1)的完全二叉树按自上而下,从左到右的次序给结点编号

(从1开始),则可能的编号最小的叶子结点的编号为2k-2+1。

25.设图G=(V,E),V={1,2,3,4},E={,<1,3>,<2,4>,

<3,4>},从顶点1出发,对图G进行广度优先搜索的序列有_2__种。

26.有向图G用邻接矩阵A[1..n,1..n]存储,矩阵中元素值1代表有弧,0

代表无弧,其第i行的所有元素之和等于顶点i的__出度___度。

27.一个连通图的生成树是该图的极小连通子图。若这个连通图有n

个顶点,则它的生成树有__n-1___条边。

28.n个顶点的无向连通图的邻接矩阵中至少有__2(n-1)__个非零元素,至

多有_n(n-1)__个非零元素。

29.PRIM算法与图的边数无关,适合求解稠密图的最小生成树。

30.一棵3阶B-树中每个结点最多有 3 棵子树,每个结点最多有 2

个关键字。含有9个叶子结点的3阶B-树至少有 4 个非叶结点,

至多有 7 个非叶结点。

31.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56

元素时,其查找长度分别为__1___和__3__。

32.向一棵二叉排序树中插入一个元素时,若元素的值小于根结点的值,

则应把它插入到根结点的__左子树上。

33.分别采用堆排序、快速排序、插入排序和归并排序算法对初始状态递

增序列按递增顺序排序,最省时间的是算法插入排序,最费时间

的是算法快速排序。

三、简答及图示说明题

1.广义表的基本概念,如A = ((a,b),c,(d,e,f)),用GetGead和GetTail操作

取元素d

2.根据给定二叉树的先序和中序序列,构造二叉树

3.根据给定树的先序和后序序列,构造树

4.已知二叉树,画出中序的线索。

5.森林和二叉树的相互转换

6.有7个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为

叶子结点生成一棵哈夫曼树,画出相应的哈夫曼树(左子树根结点的权

小于等于右子树根结点的权),并写出哈夫曼编码,计算带权路径长度。

7.给出图的顶点集合和边的集合,能画出图的邻接矩阵、邻接表,或者

给出图的存储结构,能够画出对应的图

8.用普里姆(prim)算法或克鲁斯卡尔(Kruskal)算法构造最小生成树。

9.从某个顶点出发,画出图的深度优先生成树和广度优先生成树。

10.设图G=(V,E),V={1,2,3,4,5,6},E={<1,2>,<1,3>,<2,

5>,<3,6>,<6,5>,<5,4>,<6,4>}。请写出图G中顶点的所有拓

扑序列。

11.已知一个图的顶点集V和边集G分别为:

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

G={(0,1)3,(0,3)5,(0,5)18,(1,3)7,(1,4)6,(2,4)10,(2,7)20,(3,5) 15,(3,6)12,(4,6)8,(4,7)12};

按照普里姆算法从顶点2出发得到最小生成树,试写出在最小生成树中依次得到的各条边。

12.设a1、a2、a3是不同的关键字,且a1>a2>a3,可组成六种不同的输入序

列。问其中哪几种输入序列所构造的二叉排序树的高度为3?

13.构造二叉排序树,在查找每个结点概率相等情况下的平均查找长度,

二叉排序树的插入和删除算法

14.画出用线性探测再散列(线性探查法)处理冲突时生成的哈希表及计

算平均查找长度

15.画出用外链法处理冲突时生成的哈希表及计算查找成功时的平均查找

长度

16.对于一组记录的排序码为(465,792,562,383,401,845,502,423),

写出基数排序(低位优先)进行一趟分配与回收后的结果。

17.给定健值序列{49,38,65,97,76,13,27,49*},要求按关键字递

增排序,分别写出直接插入排序、起泡排序、简单选择排序、归并排序、快速排序的第一趟和第二趟排序结果

18.初建堆和筛选法调整堆(小顶堆、大顶堆)算法,给定序列,画出堆

对应的完全二叉树的初始状态和初建堆的状态

数据结构与算法习题及答案

第1章绪论 习题 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 4.存储结构由哪两种基本的存储方法实现 5.选择题 (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.栈 6.试分析下面各程序段的时间复杂度。 (1)x=90;y=100; while(y>0) if(x>100) {x=x-10;y--;} elsex++; (2)for(i=0;i

数据结构考试题库

数据结构考试题库

绪论 一、填空题 1.数据的逻辑结构被分为集合、(线性结构)、(树形结构)和(图状结构)四种。 2.物理结构是数据结构在计算机中的表示,又称为(存储结构)。 3.数据元素的逻辑结构包括( 线性)、(树)和图状结构3种类型,树形结构和图状结构合称为(非线性结构)。 4.(数据元素)是数据的基本单位,(数据项)是数据不可分割的最小单位。 5.线性结构中元素之间存在(一个对一个)关系,树形结构中元素之间存在(一个对多个)关系,图状结构中元素之间存在(多个对多个)关系。 ?6.数据结构是一门研究非数值计算的程序设计问题中:计算机的(数据元素)以及它们之间的(关系)和(运筹)等的学科。 7.算法的五个重要特性为有穷性、确定性、(输入)、(输出)和(可行性)。 二、选择题 1.数据的不可分割的基本单位是(D)。 A.元素 B.结点 C.数据类型 D.数据项 *2.线性表的逻辑顺序与存储顺序总是一致的,这种说法(B)。 A.正确 B.不正确 C.不确定 D.无法选择 3.线性结构是指数据元素之间存在一种(D)。 精心整理,用心做精品2

A.一对多关系 B.多对多关系 C.多对一关系 D.一对一关系 4.在数据结构中,从逻辑上可以把数据结构分成(A)。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 5.线性表若采用链式存储结构时,要求内存中可用存储单元的 地址( D)。 A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续不连续都可以 三、简答题 1.算法的特性是什么。 答:有穷性确定性可行性有0或多个输入有1或多个输出线性结构 一、填空题 1.在一个长度为n的线性表中删除第i个元素(1≤i≤n)时,需向前移动(n-i)个元素。 2.从循环队列中删除一个元素时,其操作是(先移动队首指针,后取出元素)。 3.在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为(p->next)。 4.在一个单链表中指针p所指向结点的后面插入一个指针q所指向的结点时,首先把(p->next)的值赋给q->next,然后(q->date)的值赋给p->next。 5.从一个栈删除元素时,首先取出(栈顶元素),然后再使(栈顶指针)减1。 6.子串的定位操作通常称做串的(模式匹配)。 精心整理,用心做精品3

计算机数据结构习题1附答案

页眉内容 1 第1章 绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 填空题: 1.常见的数据结构有__结构,_____结构,____结构等三种。 2.常见的存储结构有_________结构,______结构等两种。 3.数据的基本单位是____,它在计算机中是作为一个整体来处理的。 4.数据结构中的结构是指数据间的逻辑关系,常见的结构可分为两大类,______和_____。 5.《数据结构》课程讨论的主要内容是数据的逻辑结构、存储结构和________。 1.2设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.3设有以下三个函数: ()1000 2124++=n n n f ,()3450015n n n g +=,()n n n n h log 5005.3+= 请判断以下断言正确与否: (1) f(n)是O(g(n)) (2) h(n)是O(f(n)) (3) g(n)是O(h(n)) (4) h(n)是O(n 3.5) (5) h(n)是O(nlogn) 解:(1)对 (2)错 (3)错 (4)对 (5)错

数据结构试题库答案

数据结构试题及答案 一、单项选择题 (1)一个算法应该就是()。 A)程序???B)问题求解步骤得描述 C)要满足五个基本属性??D) A与C (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)下列程序得时间复杂度为() i=0;s=0; while(s

数据结构课后习题答案

数据结构习题集答案 第1章绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据

类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解:ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C) 操作结果:销毁复数C Get(C,k,&e) 操作结果:用e 返回复数C 的第k 元的值

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

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.以顺序方式存储,且数据元素有序

数据结构 习题 第一章 绪论

第1章绪论 一、选择题 1. 算法的计算量的大小称为计算的()。 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于() A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2)这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 4.一个算法应该是() A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5. 下面关于算法说法错误的是() A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是()【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为()两大类。【武汉交通科技大学 1996 一、4(2分)】A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是()。【北方交通大学 2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈 9.以下数据结构中,哪一个是线性结构()?【北方交通大学 2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 10.以下那一个术语与数据的存储结构无关?()【北方交通大学 2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表 11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学 2001 一、10(3分)】 FOR i:=1 TO n DO FOR j:=1 TO n DO x:=x+1; A. O(2n) B.O(n) C.O(n2) D.O(log2n) 12.程序段 FOR i:=n-1 DOWNTO 1 DO FOR j:=1 TO i DO IF A[j]>A[j+1] THEN A[j]与A[j+1]对换; 其中 n为正整数,则最后一行的语句频度在最坏情况下是()

数据结构习题及参考答案

习题1 一、单项选择题 A1.数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 C2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 D3.树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 B4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) CA5.算法分析的目的是(1),算法分析的两个主要方面是(2)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 A.低 B.高 C.相同 D.不好说 8.数据结构作为一门独立的课程出现是在()年。 A.1946 B.1953 C.1964 D.1968 9.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。 A.正确 B.错误 C.前半句对,后半句错 D.前半句错,后半句对

自考数据结构试题真题

全国2011年1月高等教育自学考试 数据结构试题 课程代码:02331 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下列选项中与数据存储结构无关的术语是() A.顺序表 B.链表 C.链队列 D.栈 2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是() A.n-1 B.n C.2n-1 D.2n 3.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则向队列中插入新元素时,修改指针的操作是() A.rear=(rear-1)%m; B.front=(front+1)%m; C.front=(front-1)%m; D.rear=(rear+1)%m; 4.递归实现或函数调用时,处理参数及返回地址,应采用的数据结构是() A.堆栈 B.多维数组 C.队列 D.线性表 5.设有两个串p和q,其中q是p的子串,则求q在p中首次出现位置的算法称为() A.求子串 B.串联接 C.串匹配 D.求串长 6.对于广义表A,若head(A)等于tail(A),则表A为() A.( ) B.(( )) C.(( ),( )) D.(( ),( ),( )) 7.若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是 ()A.结点均无左孩子的二叉树 B.结点均无右孩子的二叉树

C.高度为n的二叉树 D.存在度为2的结点的二叉树 8.若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是() A.4 B.5 C.7 D.8 9.下列叙述中错误的是() A.图的遍历是从给定的源点出发对每一个顶点访问且仅访问一次 B.图的遍历可以采用深度优先遍历和广度优先遍历 C.图的广度优先遍历只适用于无向图 D.图的深度优先遍历是一个递归过程 10.已知有向图G=(V,E),其中V={V1,V2,V3,V4},E={},图G的拓扑序列是() A.V1,V2,V3,V4 B.V1,V3,V2,V4 C.V1,V3,V4,V2 D.V1,V2,V4,V3 11.平均时间复杂度为O(n log n)的稳定排序算法是() A.快速排序 B.堆排序 C.归并排序 D.冒泡排序 12.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的关键字序列是() A.(18,22,30,46,51,68,75,83) B.(30,18,22,46,51,75,83,68) C.(46,30,22,18,51,75,68,83) D.(30,22,18,46,51,75,68,83) 13.某索引顺序表共有元素395个,平均分成5块。若先对索引表采用顺序查找,再对块中元素进行顺序查找,则在等概率情况下,分块查找成功的平均查找长度是()A.43 B.79 C.198 D.200 14.在含有10个关键字的3阶B-树中进行查找,至多访问的结点个数为() A.2 B.3 C.4 D.5 15.ISAM文件系统中采用多级索引的目的是() A.提高检索效率 B.提高存储效率

数据结构题库教材

2013-2014学年二学期数据结构期末考试模拟试卷(1~6卷) 一、应用题(3小题,共24分) 1已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3 次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。 【解答】以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示。其带权路 径长度=2X 5+1X 5+3X 4+5X 3+9X 2+4X 3+4X 3+7X 2=98,所以,该字符串的编码长度至少为98位。 2.已知关键码序列为(Ja n, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec), 散列表的地址空间为0~16,设散列函数为H(x)= [i/2」(取下整数),其中i为关键码 中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度。 【解答】H(Ja n)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0 H(May)=13/2=6, H(Ju n)=10/25, H(Jul)=10/25, H(Aug)=1/2=0 H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2 采用链地址法处理冲突,得到的开散列表如下: 平均查找长度=(1 X 7+2X 4+3X 1)/12=18/12

3.分析下面各程序段的时间复杂度 (1)s1(int n) { int p=1,s=0; for (i=1;iv=n;i++) { p*=i;s+=p; } return(s); } ——0(n) (2)s2(int n) x=0;y=0; For (k=1;kv=n;k++) x++; For (i=1;iv=n;i++) For (j=1;jv=n;j++) y++; ——0(n) 1?下述算法的功能是什么? ListNode *Demo l(LinkList L P ListNode *p) ("L是有头结蛊的单链表 ListNodc *q=L->rLCxt P (1) V ‘V … 」(1 )返回结点*p的直接前趋结点地址。 q=q->nest; if (q) return q, else ?ro< #*p not in L"); I ⑵ i/oid Demo2(LisINode *p ,ListNode +q) 〔//p t*q*8S 表中的 两个结点 (2)交换结点*p和结点*q (p和q的值不变)。 DataTypetemp; temp=p->data, p->data=q->data; q-x^ata^emp, 1.对给定的一组权值W=( 5, 2, 9, 11, 8, 3, 7),试构造相应的哈夫曼树,并计算它的带权路径长度。【解答】构造的哈夫曼树如图所示。

最新数据结构习题解答

习题一 1 填空题 (1) (数据元素、或元素、或结点、或顶点、或记录)是数据的基本单位,在计算机程序中作为一个整体进行考虑和处理。 (2)(数据项、或字段)是数据的最小单位,(数据元素)是讨论数据结构时涉及的最小数据单位。 (3)从逻辑关系上讲,数据结构主要分为(集合)、(线性结构)、(树结构)和(图)。 (4)数据的存储结构主要有(顺序存储结构)和(链式存储结构)两种基本方法,不论哪种存储结构,都要存储两方面的内容:(数据元素)和(它们之间的关系)。 (5) 算法具有5个特性,分别是(输入)、(输出)、(有穷性)、(确定性)、(可行性)。 (6) 算法的描述方法通常有(自然语言)、(流程图)、(程序设计语言)、(伪代码)4种,其中,(伪代码)被称为算法语言。 (7) 一般情况下,一个算法的时间复杂度是算法(输入规模)的函数。 (8) 设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(O(1)),若为n*log25n, 则表示成数量级的形式为(O(n*log2n))。 2. 选择题: (1) C, D (2) B (3) B (4) A (5) D (6) A (7) C (8) C, E 习题二 1. 填空题 (1) 在顺序表中,等概率情况下,插入和删除一个元素平均需移动(表长的一半)个元素,具体移动元素的个数与(表的长度)和(数据元素所在的位置)有关。 (2) 一个顺序表的第一个元素的存储地址是100,每个数据元素的长度是2,则第5个数据元素的存储地址是(108)。 (3) 设单链表中指针p指向单链表的一个非空结点A,若要删除结点A的直接后继,则需要修改指针的操作为(p->next=(p->next)->next, 或者q=p->next; p->next=q->next)。 (4) 单链表中设置头结点的作用是(方便运算,减少程序的复杂性,使得空表和非空表处理统一)。 (5) 非空的循环单链表由头指针head指示,则其尾结点(由指针p所指)满足(p->next=head)。 (6) 在有尾指针rear指示的循环单链表中,在表尾插入一个结点s的操作序列是(s->next=rear->next; rear->next=s; rear=s),删除开始结点的操作序列是(q=rear->next->next; rear->next->next=q->next; delete q;)。 注:假设此循环单链表有表头结点 (7) 一个具有n个结点的单链表,在p所指结点后插入一个新结点s的时间复杂性为(O(1));在给定值x的结点后插入一个新结点的时间复杂性为( O(n) )。 (8) 可由一个尾指针惟一确定的链表有(循环链表)、(双链表)、(双循环链表)。 2. 选择题: (1) A,B (2) D (3) B (4) A (5) A (6) D (7) B (8) B (9) C (10) B (11) B (12) D (13) A (14) A 5. 算法设计 (1)设计一个时间复杂度为O(n)的算法。实现将数组A[n]中所有元素循环左移k个位置。 算法思想:要使a1…a k a k+1…a n -> a k+1…a n a1…a k,可以先让a1…a k a k+1…a n->a k…a1a n…a k+1,再让a k… a1 a n…a k+1 -> a k+1…a n a1…a k,参见第1章16页的思想火花 算法:void converse(T a[], int i, int j){ for(s=i; s<=(i+j)/2;s++) //将数组a中从i到j中的元素倒置 {temp=a[s];a[s]=a[j-s+i];a[j-s+i]=temp;} } void move(T a[ ], k) {converse(a,0,k-1);//3次调用函数converse converse(a,k,n-1);

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、栈和队列都是限制存取点的线性结构(易) 2、栈和队列是两种重要的线性结构。(易) 3、带头结点的单链表形式的队列,头指针F指向队列的头结点,尾指针R指向队列的最后一个结点(易) 4、在对不带头结点的链队列作出队操作时,不会改变头指针的值。(易) 答案:1-4 √√×× 二、选择题: 1、一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是C____。 A、 edcba B、 decba C、 dceab D、 abcde 2、若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi 为_C___。 A、 i B、 n=i C、 n-i+1 D、不确定 3、栈结构通常采用的两种存储结构是_A___。 A、顺序存储结构和链式存储结构 B、散列方式和索引方式 C、链表存储结构和数组 D、线性存储结构和非线性存储结构 4、判定一个顺序栈ST(最多元素为m0)为空的条件是_B___。A、top !=0 B、top= =0 C、top !=m0 D、top= =m0-1 5、判定一个顺序栈ST(最多元素为m0)为栈满的条件是D。A、top!=0 B、top= =0 C、top!=m0 D、top= =m0-1 6、队列操作的原则是( A ) A、先进先出 B、后进先出 C、只能进行插入 D、只能进行删 除 7、向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行__ _C_。(不带空的头结点) (易) A、HS—>next=s;9 B、s—>next= HS—>next; HS—>next=s; C、s—>next= HS; HS=s; D、s—>next= HS; HS= HS—>next

数据结构习题与答案

第 1 章绪论 课后习题讲解 1. 填空 ⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 【解答】数据元素 ⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。 【解答】数据项,数据元素 【分析】数据结构指的是数据元素以及数据元素之间的关系。 ⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。 【解答】集合,线性结构,树结构,图结构 ⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。 【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系 ⑸算法具有五个特性,分别是()、()、()、()、()。 【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性 ⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。 【解答】自然语言,程序设计语言,流程图,伪代码,伪代码 ⑺在一般情况下,一个算法的时间复杂度是()的函数。 【解答】问题规模 ⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。 【解答】Ο(1),Ο(nlog2n) 【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。 2. 选择题 ⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 【解答】C,D 【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

数据结构考试题

一、单项选择 1.数据结构是一门研究非数值计算的程序设计问题中,数据元素的①C 、数据信息在计算机中的② A 以及一组相关的运算等的课程。 ①A.操作对象B.计算方法C.逻辑结构D.数据映象 ②A.存储结构B.关系C.运算D.算法 2.以下数据结构中, D 是线性结构。 A.广义表B.二叉树C.稀疏矩阵D.串 3.从逻辑上可以把数据结构分为 C 两大类。 A.动态结构和静态结构B.顺序结构和链式结构 C.线性结构和非线性结构D.初等结构和构造型结构 4.以下数据结构中, D 是线性结构。 A.广义表B.二叉树C.稀疏矩阵D.串 5.以下数据结构中, D 是非线性结构。 A.栈B.二叉树C.队列D.字符串 6.数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是① B 的有限集合,R是D上的② D 有限集合。 ①A.算法B.数据元素C.数据操作D.数据对象 ②A.操作B.映象C.存储D.关系 7.线性表的顺序存储结构是一种① A 的存储结构, 线性表的链式存储结构是一种的② B 存储结构。 A.随机存取B.顺序存取C.索引存取D.散列存取 .

8.线性表的逻辑顺序与存储顺序总是一致的,这种说法__B _。 A. 正确 B. 不正确 9.下面那一条是顺序存储结构的优点? (A) A . 存储密度大 B. 插入运算方便 C. 删除运算方便 D. 可以方便的用于各种逻辑结构的存储表示 10.线性表采用链式存储结构时, 要求内存中可用的存储单元的地址. A . 必须是连续的 B. 部分地址必须是连续的 C. 一定不连续 D. 连续和不连续都可以 11.表长为n的顺序存储的线性表, 当在任何位置上插入和删除一个元素的概率相等时, 插入一个元素所需要移动元素的平均次数为 E , 删除一个元素所需要移动元素的平均次数为 A A. (n-1)/2 B.n C. n+1 D. n-1 E. n/2 F. (n+1)/2 G. (n-2)/2 12.带头结点的单链表head为空的判定条件是_B___。 A. head= =NULL B. head->next= =NULL C. head->next= =head D. head!=NULL 13.在一个单链表中, 若删除p所指向结点的后继结点, 则执行_A___。 A. p->next= p->next->next B. p=p->next; p->next= p->next->next C. p= p->next->next D. p= p->next 14.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为_C___。 A. i B. n=i C. n-i+1 D. 不确定 .

数据结构习题解答

数据结构(Java版)(第2版) 习题解答 叶核亚编著 目录 第0章 Java程序设计基础........................................... 错误!未定义书签。 【习】实验哥德巴赫猜想。.....................................错误!未定义书签。 【习】实验杨辉三角形。.......................................错误!未定义书签。 【习】实验金额的中文大写形式。...............................错误!未定义书签。 【习】实验下标和相等的数字方阵。.............................错误!未定义书签。 【习】实验找出一个二维数组的鞍点.............................错误!未定义书签。 【习】实验复数类。...........................................错误!未定义书签。 【习】实验图形接口与实现图形接口的类.........................错误!未定义书签。 第1章绪论 ...................................................... 错误!未定义书签。 【习】实验判断数组元素是否已按升序排序。.....................错误!未定义书签。 【习】实验用递归算法求两个整数的最大公因数。.................错误!未定义书签。 第2章线性表..................................................... 错误!未定义书签。 【习】习2-5 图的数据结构声明。................................错误!未定义书签。 【习】习2-6 如果在遍历单链表时,将p=语句写成=p,结果会怎样?..错误!未定义书签。 【习】实验由指定数组中的多个对象构造单链表。.................错误!未定义书签。 【习】实验单链表的查找、包含、删除操作详见。.................错误!未定义书签。 【习】实验单链表的替换操作。.................................错误!未定义书签。 【习】实验首尾相接地连接两条单链表。.........................错误!未定义书签。 【习】实验复制单链表。.......................................错误!未定义书签。 【习】实验单链表构造、复制、比较等操作的递归方法。...........错误!未定义书签。 【习】建立按升序排序的单链表(不带头结点)。...................错误!未定义书签。

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

贵州大学理学院数学系信息与计算科学专业 《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 一、单项选择题 1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。 (A)、正确性(B). 可行性(C). 健壮性(D). 输入性 2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。 for(i=n-1;i>=0;i--) for(j=0;jnext; p->next= Q.rear->next; (D)、p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于() (A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和 (C)、各叶子结点的带权路径长度之和(D)、根结点的值 10.线索二叉链表是利用()域存储后继结点的地址。 (A)、lchild (B)、data (C)、rchild (D)、root 二、填空题

最全数据结构课后习题答案(耿国华版[1]

第1章绪论 2.(1)×(2)×(3)√ 3.(1)A(2)C(3)C 5.计算下列程序中x=x+1的语句频度 for(i=1;i<=n;i++) for(j=1;j<=i;j++) for(k=1;k<=j;k++) x=x+1; 【解答】x=x+1的语句频度为: T(n)=1+(1+2)+(1+2+3)+……+(1+2+……+n)=n(n+1)(n+2)/6 6.编写算法,求一元多项式p n(x)=a0+a1x+a2x2+…….+a n x n的值p n(x0),并确定算法中每一语句的执行次数和整个算法的时间复杂度,要求时间复杂度尽可能小,规定算法中不能使用求幂函数。注意:本题中的输入为a i(i=0,1,…n)、x和n,输出为P n(x0)。算法的输入和输出采用下列方法 (1)通过参数表中的参数显式传递 (2)通过全局变量隐式传递。讨论两种方法的优缺点,并在算法中以你认为较好的一种实现输入输出。 【解答】 (1)通过参数表中的参数显式传递 优点:当没有调用函数时,不占用内存,调用结束后形参被释放,实参维持,函数通用性强,移置性强。 缺点:形参须与实参对应,且返回值数量有限。 (2)通过全局变量隐式传递 优点:减少实参与形参的个数,从而减少内存空间以及传递数据时的时间消耗 缺点:函数通用性降低,移植性差 算法如下:通过全局变量隐式传递参数 PolyValue() { int i,n; float x,a[],p; printf(“\nn=”); scanf(“%f”,&n); printf(“\nx=”); scanf(“%f”,&x); for(i=0;i

相关文档
相关文档 最新文档