视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据结构习题(题型版)
2025-09-29 17:11:20 责编:小OO
文档
三、填空题

1.数据的物理结构包括 数据元素 的表示和 数据元素间关系 的表示。

2. 对于给定的 n 个元素,可以构造出的逻辑结构有 线性结构 、树形结构、图形结构、集合四种。 

3.数据的逻辑结构是指数据的组织形式,即数据元素之间逻辑关系的总体。而逻辑关系是指数据元素之间的关联方式或称“邻接关系”。

4.一个数据结构在计算机中表示(又称映像)称为存储结构。 

5.抽象数据类型的定义仅取决于它的一组逻辑特性,而与在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。 

6.数据结构中评价算法的两个重要指标是 时间复杂度 和 空间复杂度 。

7. 数据结构是研讨数据的逻辑结构和物理结构,以及它们之间的相互关系,并对与这种结构定义相应的操作,设计出相应的算法。 

8. 一个算法具有5个特性: 有穷性 、 确定性  、 可行性  ,有零个或多个输入、有一个或多个输出。

11.下面程序段中带下划线的语句的执行次数的数量级是(log2n)

i=1; WHILE i12. 下面程序段中带下划线的语句的执行次数的数量级是(nlog2n )。

i=1;

while (i for(i=1;i<=n;i++)

x=x+1;

i=i*2; 

15. 下面程序段的时间复杂度为  O(n)  。(n>1)

        sum=1; 

        for (i=0;sum8.对于一个数据结构,一般包括哪三个方面的讨论?

逻辑结构、存储结构、操作(运算)

4.在一个长度为 n 的顺序表中第 i个元素(1<=i<=n)之前插入一个元素时,需向后移动 n-i+1 个元素。  

5.在单链表中设置头结点的作用是 主要是使插入和删除等操作统一,在第一个元素之前插入元素和删除第一个结点不必另作判断。另外,不论链表是否为空,链表指针不变。

10.链接存储的特点是利用 指针 来表示数据元素之间的逻辑关系。

11.顺序存储结构是通过 物理上相邻 表示元素之间的关系的;链式存储结构是通过 指针 表示元素之间的关系的。 

12. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共4 个,单链表为 2 个。 

15. 带头结点的双循环链表 L 中只有一个元素结点的条件是: L->next->next==L

16. 在单链表 L 中,指针 p 所指结点有后继结点的条件是: p->next!=null

17.带头结点的双循环链表 L 为空表的条件是: L->next==L && L->prior==L 。 

18. 在单链表 p 结点之后插入 s 结点的操作是: s->next=p->next;p->next=s; 。  

1.栈是 操作受限 的线性表,其运算遵循 后进先出 的原则。 

2. 栈 是限定仅在表尾进行插入或删除操作的线性表。

3. 一个栈的输入序列是:1,2,3 则不可能的栈输出序列是 312 。

4. 设有一个空栈,栈顶指针为 1000H(十六进制),现有输入序列为 1,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH 之后,输出序列是 23 ,而栈顶指针值是 100C H。设栈为顺序栈,每个元素占 4 个字节。 

5. 当两个栈共享一存储区时,栈利用一维数组 stack(1,n)表示,两栈顶指针为 top[1]与 top[2],则当栈1 空时,top[1]为 0 ,栈2 空时 ,top[2]为 n+1 ,栈满时为 top[1]+1=top[2] 。 

6.两个栈共享空间时栈满的条件 两栈顶指针值相减的绝对值为1(或两栈顶指针相邻) 。 

8. 多个栈共存时,最好用 链式存储结构 作为存储结构。 

9.用 S 表示入栈操作,X 表示出栈操作,若元素入栈的顺序为 1234,为了得到 1342 出栈顺序,相应的 S和X 的操作串为 S×SS×S×× 。 

10. 顺序栈用 data[1..n]存储数据,栈顶指针是 top,则值为 x 的元素入栈的操作是 data[++top]=x;。 

11.表达式23+((12*3-2)/4+34*5/7)+108/9 的后缀表达式是 23.12.3*2-4/34.5*7/++108.9/+(注:表达式中的点(.)表示将数隔开,如23.12.3是三个数)

12. 循环队列的引入,目的是为了克服 假溢出时大量移动数据元素 。               

14. 队列 又称作先进先出表。 

15. 队列的特点是先进先出 。 

16.队列是插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是 先进先出 。 

17. 已知链队列的头尾指针分别是 f 和 r,则将值 x 入队的操作序列是 s=(LinkedList)malloc(sizeof(LNode)); s->data=x;s->next=r->next;r->next=s;r=s; 。 

18.区分循环队列的满与空,只有两种方法,它们是 牺牲一个存储单元  和 设标记 。  

21.表达式求值是 栈 应用的一个典型例子。 

22.循环队列用数组 A[0..m-1]存放其元素值,已知其头尾指针分别是 front 和 rear ,则当前队列的元素个数是(rear-front+m)% m  。 

23.设 Q[0..N-1]为循环队列,其头、尾指针分别为 P 和 R,则队 Q 中当前所含元素个数为(R-P+N)% N。

1.空格串是指 由空格字符(ASCII值32)所组成的字符串 ,其长度等于 空格个数 。

2.组成串的数据元素只能是 字符 。 

3.一个字符串中 任意个连续的字符组成的子序列 称为该串的子串 。

4.INDEX(‘DATASTRUCTURE’,‘STR’)= 5 。

8.设 T 和 P 是两个给定的串,在 T 中寻找等于 P 的子串的过程称为 模式匹配 ,又称P 为 模式串 。 

9.串是一种特殊的线性表,其特殊性表现在 其数据元素都是字符 ;串的两种最基本的存储方式是 顺序存储 、 链式存储 ;两个串相等的充分必要条件是 串的长度相等且两串中对应位置的字符也相等 。

10.两个字符串相等的充分必要条件是 两串的长度相等且两串中对应位置的字符也相等 。

11.知U=‘xyxyxyxxyxy’;t=‘xxy’;

ASSIGN(S,U);

ASSIGN(V,SUBSTR(S,INDEX(s,t),LEN(t)+1));

ASSIGN(m,‘ww’)

求REPLACE(S,V,m)=’xyxyxywwy’。

1. 数组的存储结构采用 顺序存储结构 存储方式。 

3. 设数组 a[1..50,1..80]的基地址为2000,每个元素占 2 个存储单元,若以行序为主序顺序存储,则元素a[45,68]的存储地址为 9174 ;若以列序为主序顺序存储,则元素 a[45,68]的存储地址为 8788 。

4. 将整型数组 A[1..8,1..8]按行优先次序存储在起始地址为 1000 的连续的内存单元中,则元素 A[7,3]的地址是: 1100 。 

6. 设有二维数组 A[0..9,0..19],其每个元素占两个字节,第一个元素的存储地址为 100,若按列优先顺序存储,则元素 A[6,6]存储地址为 232 。 

11.设n 行n 列的下三角矩阵 A 已压缩到一维数组 B[1..n*(n+1)/2]中,若按行为主序存储,则 A[i,j]对应的 B 中存储位置为 i(i-1)/2+j (1<=i,j<=n) 。 

14. 设有一个 10 阶对称矩阵 A 采用压缩存储方式(以行为主序存储:a11=1),则 a85 的地址为 33 (k=i(i-1)/2+j) (1<=i,j<=n) 。 

15. 所谓稀疏矩阵指的是 非零元很少(t<16. 对矩阵压缩是为了 节省存储空间 。

17. 上三角矩阵压缩的下标对应关系为: 上三角矩阵中,主对角线上第r(1£r£n)  行有n-r+1个元素,aij所在行的元素数是j-i+1。所以,元素在一维数组的下标k和二维数组下标关系:k=((i-1)*(2n-i+2))/2+(j-i+1)=(i-1)(2n-i)/2+j  (i£j)。

18. 假设一个 15 阶的上三角矩阵 A按行优先顺序压缩存储在一维数组 B 中, 则非零元素 A9,9在 B中的存储位置k= 93 。 (注:矩阵元素下标从 1 开始)如果按行序为主序将下三角元素 Ai j (i,j)存储在一个一维数组 B[ 1..n(n+1)/2]中,对任一个三角矩阵元素 A  ,它在数组B 中的下标为 i(i-1)/2+j 。 

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

42.一个无序序列可以通过构造一棵树而变成一个有序序列,构造树的过程即为对无序序列进行排

序的过程。

50.线索二元树的左线索指向其       ,右线索指向其       。

53.若以{4,5,6,7,8}作为叶子结点的权值构造哈夫曼树,则其带权路径长度是     。

22. 已知一无向图G=(V,E),其中V={a,b,c,d,e } E={(a,b),(a,d),(a,c),(d,c),(b,e)}现用某一种图遍历方法从顶点a 开始遍历图,得到的序列为abecd,则采用的是 深度优先 遍历方法。

28. Prim(普里姆)算法适用于求 边稠密 的网的最小生成树;

29.克鲁斯卡尔算法的时间复杂度为 O(eloge),它对 边稀疏 图较为适合。

34. Dijkstra 最短路径算法从源点到其余各顶点的最短路径的路径长度按 递增 次序依次产生,该算法弧上的权出现 负值 情况时,不能正确产生最短路径。

12. 在哈希函数H(key)=key%p 中,p 值最好取     。

49. 依次输入表(30,15,28,20,24,10,12,68,35,50,46,55)中的元素,生成一棵二叉排序树。

(1) 试画出生成之后的二叉排序树; (2) 对该二叉排序树作中序遍历,试写出遍历序列;

1.若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的 比较 和记录的 移动 。

6.直接插入排序用监视哨的作用是 免去查找过程中每一步都要检测整个表是否查找完毕,提高了查找效率。

1. 文件可按其记录的类型不同而分成两类,即 操作系统文件 和 数据库 文件。

7. 索引顺序文件既可以顺序存取,也可以 随机 存取。

8. 建立索引文件的目的是 提高查找速度 。

9. 索引顺序文件是最常用的文件组织之一,通常用 树 结构来组织索引。

10. 倒排序文件的主要优点在于 检索记录快 。

13. VSAM 系统是由索引集、顺序集、数据集构成的。

31. 广义表A((( ),(a,(b),c))),head(tail(head(tail(head(A))))等于b

32. 广义表运算式HEAD(TAIL(((a,b,c),(x,y,z))))的结果是 (x,y,z) 。

33. 已知广义表A=(((a,b),(c),(d,e))),head(tail(tail(head(A))))的结果是 (d,e) 。

4、应用题

1.线性表有两种存储结构:一是顺序表,二是链表。试问:

如果有n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构?为什么?

若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?为什么?

选链式存储结构。它可动态申请内存空间,不受表长度(即表中元素个数)的影响,插入、删除时间复杂度为O。

选顺序存储结构。顺序表可以随机存取,时间复杂度为O。

2.线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大量元素;其二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。

链式存储结构一般说克服了顺序存储结构的三个弱点。首先,插入、删除不需移动元素,只修改指针,时间复杂度为O(1);其次,不需要预先分配空间,可根据需要动态申请空间;其三,表容量只受可用内存空间的。其缺点是因为指针增加了空间开销,当空间不允许时,就不能克服顺序存储的缺点。

3.若较频繁地对一个线性表进行插入和删除操作,该线性表宜采用何种存储结构?为什么?

采用链式存储结构,它根据实际需要申请内存空间,而当不需要时又可将不用结点空间返还给系统。在链式存储结构中插入和删除操作不需要移动元素。

44.将下列由三棵树组成的森林转换为二叉树。(只要求给出转换结果)

46.设一棵二叉树的先序、中序遍历序列分别为

先序遍历序列:ABDFCEGH中序遍历序列:BFDAGEHC

画出这棵二叉树。

画出这棵二叉树的后序线索树。

将这棵二叉树转换成对应的树(或森林)

43.对于如下的加权有向图,给出算法Dijkstra产生的最短路径的支撑树,设顶点A为源点,并写出生成过程。下载本文

显示全文
专题