数据结构c语言版期末考试复习试题1

合集下载

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

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

数据结构c语言期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性结构和非线性结构的区别在于()。

A. 结构中元素的个数B. 结构中是否包含子结构C. 结构中元素之间是否有一对一关系D. 结构中元素之间是否有一对多关系答案:C2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。

A. 存储密度高B. 存储密度低C. 插入和删除操作快D. 存储空间可以动态分配答案:A3. 在一个长度为n的顺序表中,删除第i个元素(1≤i≤n)时,需要移动的元素个数为()。

A. i-1B. n-iC. n-i+1D. n-i-1答案:B4. 栈的运算遵循()原则。

A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C5. 在二叉树的前序遍历中,访问顺序为()。

A. 根-左-右B. 左-根-右C. 左-右-根D. 右-左-根答案:A6. 哈希表的冲突解决方法中,链地址法是()。

A. 将所有元素存储在同一个存储单元B. 将所有元素存储在同一个链表中C. 将所有元素存储在同一个数组中D. 将所有元素存储在同一个链表的同一个位置答案:B7. 在图的遍历中,深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别在于()。

A. 遍历的顺序不同B. 遍历的起点不同C. 遍历的路径不同D. 遍历使用的存储结构不同答案:D8. 快速排序算法的时间复杂度为()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B9. 归并排序算法的时间复杂度为()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B10. 在二叉搜索树中,查找一个元素的时间复杂度为()。

A. O(n)B. O(logn)C. O(n^2)D. O(1)答案:B二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的时间复杂度通常用______来描述。

答案:大O符号2. 线性表的两种基本操作是插入和______。

数据结构(c语言版)期末考试复习试题

数据结构(c语言版)期末考试复习试题

数据结构(c语言版)期末考试复习试题数据结构(c语言版)期末考试复习试题1. 请用C语言定义一个结构体,用于表示学生信息,包括姓名、学号和成绩。

并声明一个该类型的变量。

2. 请用C语言定义一个链表节点的结构体,包括一个整型数据域和一个指向下一个节点的指针域。

3. 请实现一个函数,用于将给定的数组逆序存储。

要求使用指针进行实现。

4. 请完善下面的代码,实现两个字符串的拼接。

```cchar* strConcatenation(const char* str1, const char* str2) {// 在这里补充你的代码}```5. 请使用递归的方式实现快速排序算法对一个整型数组进行排序。

6. 已知有一个长度为n的未排序整型数组,其中的元素值在1到n 之间,且每个元素值唯一,请设计一个时间复杂度为O(n),空间复杂度为O(1)的算法,找出数组中缺失的数。

7. 请实现一个栈的数据结构,包括入栈、出栈和获取栈中最小元素的操作,要求时间复杂度都为O(1)。

8. 已知一个由整数构成的二叉树,其中每个节点的值均不相同,请设计一个算法,找出二叉树中指定值的节点。

9. 请实现一个双向链表的插入排序算法,要求按照节点数据域的大小进行升序排序。

10. 请使用C语言实现一个简单的哈希表,包括插入、删除和查找操作,要求处理哈希冲突时使用链表解决。

11. 请使用C语言实现一个基于二叉树的堆栈,并实现相应的入栈、出栈和获取栈顶元素的操作。

12. 请使用C语言实现一个基于数组的队列,并实现相应的入队、出队和获取队头元素的操作。

13. 请实现一个双向循环链表,并实现相应的插入、删除和遍历操作。

14. 请使用C语言实现一个基于链表的循环队列,并实现相应的入队、出队和获取队头元素的操作。

15. 请设计一个链式哈希表的数据结构,并实现插入、删除和查找操作,要求处理哈希冲突时使用链表解决。

以上是数据结构(c语言版)期末考试复习试题的内容,包含了链表、数组、递归、排序、栈、二叉树、哈希表等相关知识点。

数据结构c语言版期末考试复习试题[1]

数据结构c语言版期末考试复习试题[1]

数据结构c语言版期末考试复习试题[1]《数据结构与算法》复习题一、选择题。

1.在数据结构中,从逻辑上可以把数据结构分为CA.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.数据结构在计算机内存中的表示是指AA.数据的存储结构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.分析算法的效率以求改进D.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2)。

=0;for(I=0;ium=;9.下面程序段的时间复杂度是O(n某m)for(i=0;i10.下面程序段的时间复杂度是O(log3n)i=0;while(i<=n)i=i某3;11.在以下的叙述中,正确的是BA.线性表的顺序存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出桟—先进后出队—先进先出D.队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B。

数据结构C语言版期末考试试题(有答案)(1)解析

数据结构C语言版期末考试试题(有答案)(1)解析

“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。

A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一>next=HL一>next;HL一>next=p;2.n个顶点的强连通图中至少含有( )。

A.n—l条有向边B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。

A.O(1)B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。

A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。

A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。

A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、——和——四种。

2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。

3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。

4.在一棵高度为h的3叉树中,最多含有——结点。

5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——· 6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。

7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。

数据结构(C语言版)复习题

数据结构(C语言版)复习题

一、单项选择题:1、树形结构不具备这样的特点:()A. 每个节点可能有多个后继(子节点)B. 每个节点可能有多个前驱(父节点)C. 可能有多个内节点(非终端结点)D. 可能有多个叶子节点(终端节点)2、二叉树与度数为2的树相同之处包括()。

A. 每个节点都有1个或2个子节点B. 至少有一个根节点C. 至少有一个度数为2的节点D. 每个节点至多只有一个父节点3、一棵完全二叉树有999 个结点,它的深度为()。

A.9 B.10 C.11 D.124、在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()A. s->next=p;p->next=s;B. s->next=p->next;p->next=s;C. s->next=p->next;p=s;D. p->next=s;s->next=p;5、对于一棵具有n个结点、度为5的树来说,()A. 树的高度至多是n-3B. 树的高度至多是n-4C. 树的高度至多是nD. 树的高度至多是n-56、在顺序队列中,元素的排列顺序()。

A. 由元素插入队列的先后顺序决定B. 与元素值的大小有关C. 与队首指针和队尾指针的取值有关D. 与数组大小有关7、串是一种特殊的线性表,其特殊性体现在()。

A.可以顺序存储 B.数据元素是一个字符C.可以链式存储 D.数据元素可以是多个字符若8、顺序循环队列中(数组的大小为 6),队头指示 front 和队尾指示 rear 的值分别为 3和 0,当从队列中删除1个元素,再插入2 个元素后,front和 rear的值分别为()。

A.5 和1 B.2和4 C.1和5 D.4 和29、一棵完全二叉树上有1001 个结点,其中叶子结点的个数为()。

A.250 B.500 C.254 D.50110、已知一个有向图如下图所示,则从顶点a出发进行深度优先遍历,不可能得到的DFS序列为()。

数据结构c语言版期末考试试题

数据结构c语言版期末考试试题

《数据结构与算法》复习题一、选择题。

20. 如果最常用的操作是取第i个结点及英前驱,则采用D存储方式最节省时间。

A. 单链表B.双链表C.单循环链表D.顺序表21. 在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是B_o)A. O (1)B. O (n)C. O (n2)D. O (nlog2n)27. 下述哪一条是顺序存储结构的优点CA插入运算方便B可方便地用于各种逻辑结构的存储表示C存储密度大D删除运算方便35.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是s->next=p->next : p->next=s;}41.以下 B 不是队列的基本运算A.从队尾插入一个新元素B.从队列中删除第i个元素C.判断一个队列是否为空D.读取队头元素的值47.在循环队列中,若front与rear分别表示对头元素和队尾元素的位置,则判断循环队列空的条件是_ .A. front==rear+lB. rear==front+lC. front==rearD. front==04.向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行s->next=h->next ;h->next=s50.若栈采用顺序存储方式存储,现两栈共享空间V[1 m], top[l]、top[2]分别代表第1和第2个栈的栈顶,栈1的底在V[l],栈2的底在V[m],则栈满的条件是____________________ oA. |top[2]-top[l]|=0B. top[l]+l=top[2]C. top[l]+top[2]=mD. top[l]=top[2]52.允许对队列进行的操作有—。

A.对队列中的元素排序B.取岀最近进队的元素C.在队头元素之前插入元素D.删除队头元素54.若用一个大小为6的数值来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为 B °A. 1 和5B. 2 和4C. 4 和2D. 5 和 156. 和顺序栈相比,链栈有一个比较明显的优势是通常不会出现栈满的情况57. 用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,则在进行出队操作时C o C.队头、队尾指针都可能要修改64.若声明一个浮点数数组如卜一:froat average[]=new float[30];假设该数组的内存起始位置为200, average[15]的内存地址是C 。

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

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

数据结构c语言期末考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个函数用于创建链表节点?A. mallocB. callocC. reallocD. free答案:A3. 如果一个链表的头指针为NULL,这意味着什么?A. 链表为空A. 链表已满C. 链表正在使用中D. 链表已损坏答案:A4. 在C语言中,以下哪个数据结构允许快速随机访问?A. 链表B. 数组C. 栈D. 队列5. 在二叉树中,以下哪个术语描述了没有子节点的节点?A. 根节点B. 叶节点C. 内部节点D. 父节点答案:B6. 以下哪个算法用于在二叉搜索树中查找一个元素?A. 深度优先搜索B. 广度优先搜索C. 插入排序D. 二分查找答案:D7. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. struct答案:A8. 以下哪个选项是正确的递归函数定义?A. int fact(int n) { if (n > 1) return n * fact(n-1); else return 1; }B. int fact(int n) { if (n > 1) return n * fact(n); else return 1; }C. int fact(int n) { if (n > 1) return n * fact(n+1); else return 1; }D. int fact(int n) { if (n > 1) return n; else return 1; }9. 在C语言中,以下哪个函数用于释放动态分配的内存?A. mallocB. callocC. reallocD. free答案:D10. 在C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. *D. &答案:C二、填空题(每题2分,共20分)1. 在C语言中,结构体的成员可以通过其结构体变量名和______访问。

数据结构c语言期末试题及答案

数据结构c语言期末试题及答案

数据结构c语言期末试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于链表的描述,错误的是:A. 链表是一种动态数据结构B. 链表的每个节点包含数据和指向下一个节点的指针C. 链表的内存分配必须是连续的D. 链表可以很容易地插入和删除节点答案:C3. 在C语言中,以下哪个函数用于创建一个动态数组?A. mallocB. callocC. reallocD. free答案:B4. 关于栈的描述,以下说法正确的是:A. 栈是一种后进先出(LIFO)的数据结构B. 栈只能进行插入和删除操作C. 栈的插入和删除操作只能从栈底进行D. 栈可以存储任意数量的数据答案:A5. 在C语言中,以下哪个函数用于释放动态分配的内存?A. mallocB. callocC. freeD. realloc答案:C6. 下列关于二叉树的描述,错误的是:A. 二叉树的每个节点最多有两个子节点B. 二叉树的遍历方式有前序、中序和后序C. 二叉搜索树的中序遍历结果是有序的D. 二叉树的深度是指树中节点的最大数量答案:D7. 在C语言中,以下哪个函数用于将一个字符串复制到另一个字符串?A. strcpyB. strncpyC. strcatD. strcmp答案:A8. 关于图的描述,以下说法正确的是:A. 图是一种非线性数据结构B. 图的每个顶点至少有一个边C. 图的遍历可以使用深度优先搜索(DFS)或广度优先搜索(BFS)D. 图的边是无向的答案:A9. 在C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. floatD. *答案:D10. 下列关于哈希表的描述,错误的是:A. 哈希表是一种通过键值对进行存储的数据结构B. 哈希表的查找时间复杂度通常是O(1)C. 哈希表可以解决冲突问题D. 哈希表的键必须是唯一的答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个结构体的关键字是________。

数据结构c语言版期末考试复习试题

数据结构c语言版期末考试复习试题

《数据结构与算法》复习题一、选择题。

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 。

数据结构c语言版期末考试复习试题

数据结构c语言版期末考试复习试题

《数据结构与算法》复习题一、选择题。

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 。

数据结构C语言总复习附带试卷及复习资料

数据结构C语言总复习附带试卷及复习资料

“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表中,若要向表头插入一个由指针p指向的结点,则执行(B)。

A.=p一>=B.p一>=;=p3C.p一>=;p=;D.p一>=一>一>=p;2.n个顶点的强连通图中至少含有( B )。

—l条有向边条有向边(n—1)/2条有向边(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。

(1) (n)(1) (n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( D )。

A.24 B.48C.72 D.535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( B )参数,以节省参数值的传输时间和存储参数的空间。

A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( A )。

A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为/顺序结构/链接结构/索引结构/散列结构/四种。

2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为(值(或))域和(子表指针(或))域。

3.——中缀表达式3十x*(2.4/5—6)所对应的后缀表达式为——。

3 x 2.4 5/6一*十4.在一棵高度为h的3叉树中,最多含有((3h一1)/2)结点。

5.假定一棵二叉树的结点数为18,则它的最小深度为(5),最大深度为(18)·6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定(小于)该结点的值,右子树上所有结点的值一定(大于(或大于等于))该结点的值。

7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层(向上)调整,直到被调整到(堆顶)位置为止。

8.表示图的三种存储结构为(邻接矩阵邻接表边集数组)。

数据结构c语言版期末考试复习试题

数据结构c语言版期末考试复习试题

《数据结构与算法》复习题一、选择题。

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 。

数据结构C语言版期末考试题库单选题

数据结构C语言版期末考试题库单选题

一、单项选择1. 数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,连式存储比顺序存储要A . 低B . 高C . 相同D . 不好说2 . 通常对数组进行的两种基本操作是()A . 建立与删除B . 索引和修改C . 查找和修改D . 查找与索引3 . 如果F是由有序树T转换而来的二叉树,那么T中结点的前序就是F中结点的()。

A . 中序B . 前序C . 层次序D . 后序4 . 由树的定义,具有3个结点的树有()种形态A . 2B . 3C . 4D . 55 . 以下说法错误的是 ( )A . 二叉树可以是空集B . 二叉树的任一结点都有两棵子树C . 二叉树与树具有相同的树形结构D . 二叉树中任一结点的两棵子树有次序之分6 . 若节点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为A . 顺序存储结构B . 链式存储结构C . 索引存储结构D . 散列存储结构7 . 已知二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()A . bdgcefhaB . gdbecfhaC . bdgaechfD . gdbehfca8 . 算法分析的两个主要方面A . 空间复杂度和时间复杂度B . 正确性和简明性C . 可读性和文档性D . 数据复杂性和程序复杂性9 . 设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为( )。

(A) 6 (B) 11 (C) 5 (D) 6.5A .B .C .D .10 . 若邻接表中有奇数个表节点,则一定( )A . 图中有奇数个顶点B . 图中有偶数个顶点C . 图为无向图D . 图为有向图11 . 广义表中的元素分为( ) A . 原子元素B . 表元素C . 原子元素/表元素D . 任意元素A .B .C .D .12 . 下面关于算法说法错误的是()A . 算法最终必须由计算机程序实现B . 为解决某问题的算法同为该问题编写的程序含义是相同的C . 算法的可行性是指指令不能有二义性D . 以上几个都是错误的13 . 链接存储的存储结构所占存储空间:A . 分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B . 只有一部分,存放结点值C . 只有一部分,存储表示结点间关系的指针D . 分两部分,一部分存放结点值,另一部分存放结点所占单元数14 . 利用n 个值生成的哈夫曼树中共有()结点。

数据结构c语言版期末考试复习试题.doc

数据结构c语言版期末考试复习试题.doc

《数据结构与算法》复习题一、选择题。

1. 在数据结构中,从逻辑上可以把数据结构分为 C 。

A.动态结构和静态结构 B .紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2. 数据结构在计算机内存中的表示是指 —oA. 数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素Z 间的关系 3. 在数据结构中,与所使用的计算机无关的是数据的 A 结构。

A. 逻辑B.存储C.逻辑和存储D.物理4. 在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。

A.数据的处理方法 B.数据元素的类型C.数据元素Z 间的关系D.数据的存储方法 5. 在决定选収何种存储结构时,一般不考虑 A oA.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。

6. 以下说法正确的是一 D 。

A. 数据项是数据的基本单位 B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合D. 一些表面上很不相同的数据可以侑相同的逻辑结构7. 僚法分析的冃的是一 C ,算法分析的两个主硬方面是一 A (1) A ・找出数据结构的合理性 C.分析算法的效率以求改进 (2) A.空间复杂度和时间复杂度 C.可读性和文档性 在以下的叙述中,正确的是—B线性表的顺序存储结构优于链表存储结构 二维数组是其数据元素为线性表的线性表栈的操作方式是先进先出 队列的操作方式是先进后出 通常要求同一逻辑结构中的所冇数据元素具冇相同的特性,这意味着B 。

数据元素具有同一特点不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 每个数据元素都一样数据元素所包含的数据项的个数要相等 链表不具备的特点是一 A 。

可随机访问任一结点 B.插入删除不需耍移动元素 不必事先估计存储空间 D.所需空间与其长度成正比 14. 不带头结点的单链表head 为空的判定条件是一 A 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据结构与算法》复习题一、选择题。

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 。

A.head == NULL B head->next ==NULLC.head->next ==head D head!=NULL15.带头结点得单链表head为空得判定条件就是 B 。

A.head == NULL B head->next ==NULLC.head->next ==head D head!=NULL16.若某表最常用得操作就是在最后一个结点之后插入一个结点或删除最后一个结点,则采用D 存储方式最节省运算时间。

A.单链表B.给出表头指针得单循环链表C.双链表D.带头结点得双循环链表17.需要分配较大空间,插入与删除不需要移动元素得线性表,其存储结构就是 B 。

A.单链表B.静态链表C.线性链表D.顺序存储结构18.非空得循环单链表head得尾结点(由p所指向)满足 C 。

A.p->next == NULLB.p == NULLC.p->next ==headD.p == head19.在循环双链表得p所指得结点之前插入s所指结点得操作就是 D 。

A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->priorB.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->priorC.s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = sD.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s20.如果最常用得操作就是取第i个结点及其前驱,则采用 D 存储方式最节省时间。

A.单链表B.双链表C.单循环链表D. 顺序表21.在一个具有n个结点得有序单链表中插入一个新结点并仍然保持有序得时间复杂度就是 B 。

A.O(1)B.O(n)C.O(n2)D.O(nlog2n)22.在一个长度为n(n>1)得单链表上,设有头与尾两个指针,执行 B 操作与链表得长度有关。

A.删除单链表中得第一个元素B.删除单链表中得最后一个元素C.在单链表第一个元素前插入一个新元素D.在单链表最后一个元素后插入一个新元素23.与单链表相比,双链表得优点之一就是 D 。

A.插入、删除操作更简单B.可以进行随机访问C.可以省略表头指针或表尾指针D.顺序访问相邻结点更灵活24.如果对线性表得操作只有两种,即删除第一个元素,在最后一个元素得后面插入新元素,则最好使用 B 。

A.只有表头指针没有表尾指针得循环单链表B.只有表尾指针没有表头指针得循环单链表C.非循环双链表D.循环双链表25.在长度为n得顺序表得第i个位置上插入一个元素(1≤ i ≤n+1),元素得移动次数为: A 。

A.n – i + 1B.n – iC.iD.i – 126.对于只在表得首、尾两端进行插入操作得线性表,宜采用得存储结构为 C 。

A.顺序表B. 用头指针表示得循环单链表C.用尾指针表示得循环单链表D.单链表27.下述哪一条就是顺序存储结构得优点? C 。

A插入运算方便B可方便地用于各种逻辑结构得存储表示C存储密度大D删除运算方便28.下面关于线性表得叙述中,错误得就是哪一个? B 。

A线性表采用顺序存储,必须占用一片连续得存储单元B线性表采用顺序存储,便于进行插入与删除操作。

C线性表采用链式存储,不必占用一片连续得存储单元D线性表采用链式存储,便于进行插入与删除操作。

29.线性表就是具有n个 B 得有限序列。

A.字符B.数据元素C.数据项D.表元素30.在n个结点得线性表得数组实现中,算法得时间复杂度就是O(1)得操作就是 A 。

A.访问第i(1<=i<=n)个结点与求第i个结点得直接前驱(1<i<=n)B.在第i(1<=i<=n)个结点后插入一个新结点C.删除第i(1<=i<=n)个结点D.以上都不对31.若长度为n得线性表采用顺序存储结构,在其第i个位置插入一个新元素得算法得时间复杂度为 C 。

A.O(0)B.O(1)C.O(n)D.O(n2)32.对于顺序存储得线性表,访问结点与增加、删除结点得时间复杂度为 C 。

A.O(n) O(n)B.O(n) O(1)C.O(1) O(n)D.O(1) O(1)33.线性表(a1,a2, …,an)以链式方式存储,访问第i位置元素得时间复杂度为 C 。

A.O(0)B.O(1)C.O(n)D.O(n2)34.单链表中,增加一个头结点得目得就是为了 C 。

A.使单链表至少有一个结点B.标识表结点中首结点得位置C.方面运算得实现D.说明单链表就是线性表得链式存储35.在单链表指针为p得结点之后插入指针为s得结点,正确得操作就是 B 。

A.p->next=s;s->next=p->nextB. s->next=p->next ;p->next=s;C.p->next=s;p->next=s->nextD.p->next=s->next;p->next=s36.线性表得顺序存储结构就是一种 A 。

A.随机存取得存储结构B.顺序存取得存储结构C.索引存取得存储结构D.Hash存取得存储结构37.栈得特点就是 B ,队列得特点就是 A 。

A.先进先出B.先进后出38.栈与队列得共同点就是 C 。

A.都就是先进后出B.都就是先进先出C.只允许在端点处插入与删除元素D.没有共同点39.一个栈得进栈序列就是a,b,c,d,e,则栈得不可能得输出序列就是 C 。

A.edcbaB.decbaC.dceabD.abcde40.设有一个栈,元素依次进栈得顺序为A、B、C、D、E。

下列 C 就是不可能得出栈序列。

A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A41.以下 B 不就是队列得基本运算?A.从队尾插入一个新元素B.从队列中删除第i个元素C.判断一个队列就是否为空D.读取队头元素得值42.若已知一个栈得进栈序列就是1,2,3,,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为 C 。

A.iB.n-iC.n-i+1D.不确定43.判定一个顺序栈st(最多元素为MaxSize)为空得条件就是 B 。

A.st->top != -1B.st->top == -1C.st->top != MaxSizeD. st->top == MaxSize44.判定一个顺序栈st(最多元素为MaxSize)为满得条件就是 D 。

A.st->top != -1B.st->top == -1C.st->top != MaxSizeD.st->top == MaxSize45.一个队列得入队序列就是1,2,3,4,则队列得输出序列就是 B 。

A.4,3,2,1B.1,2,3,4C.1,4,3,2D.3,2,4,146.判定一个循环队列qu(最多元素为MaxSize)为空得条件就是 C 。

A.qu->rear – qu->front ==MaxSizeB.qu->rear – qu->front -1==MaxSizeC.qu->rear ==qu->frontD. qu->rear =qu->front -147.在循环队列中,若front与rear 分别表示对头元素与队尾元素得位置,则判断循环队列空得条件就是 C 。

A.front==rear+1B.rear==front+1C.front==rearD.front==048.向一个栈顶指针为h得带头结点得链栈中插入指针s所指得结点时,应执行 D 操作。

相关文档
最新文档