数据结构(C语言)【经典题库】含标准答案

合集下载

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

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

c语言版数据结构试题及答案在学习数据结构的过程中,掌握相关的试题及答案是非常重要的。

本文将为你提供一份C语言版的数据结构试题及答案,帮助你更好地掌握这门学科。

以下是一些常见的数据结构试题及详细的答案解析。

一、单项选择题1. 下列哪个不是数据结构中的逻辑数据结构?A. 栈B. 数组C. 队列D. 链表答案:B解析:数组是一种物理数据结构,用于存储一组相同类型的元素,而不是逻辑上的数据结构。

逻辑上的数据结构指的是在操作时需要考虑元素之间的逻辑关系,如栈、队列和链表。

2. 下列关于栈的叙述中,错误的是:A. 栈是一种后进先出(LIFO)的数据结构B. 栈的插入操作称为入栈C. 栈可以通过数组或链表来实现D. 栈的删除操作称为弹栈或出栈答案:C解析:栈可以通过数组或链表来实现,因此选项C是正确的。

二、填空题1. 将下列序列按照栈的顺序进行入栈,并给出每一步的栈的状态:5, 3, 8, 4, 2答案:- 入栈5,栈的状态:5- 入栈3,栈的状态:5, 3- 入栈8,栈的状态:5, 3, 8- 入栈4,栈的状态:5, 3, 8, 4- 入栈2,栈的状态:5, 3, 8, 4, 2三、简答题1. 请简要解释树的遍历算法中的前序遍历、中序遍历和后序遍历分别是如何进行的?答案:- 前序遍历:先访问当前节点,然后递归地遍历左子树,最后递归地遍历右子树。

- 中序遍历:先递归地遍历左子树,然后访问当前节点,最后递归地遍历右子树。

- 后序遍历:先递归地遍历左子树,然后递归地遍历右子树,最后访问当前节点。

四、编程题1. 请编写一个C语言函数,用于计算给定二叉树的节点个数。

答案:```c#include <stdio.h>struct TreeNode {int value;struct TreeNode* left;struct TreeNode* right;};int countNodes(struct TreeNode* root) {if (root == NULL) {return 0;}else {return 1 + countNodes(root->left) + countNodes(root->right);}}int main() {// 构建二叉树struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));struct TreeNode* node1 = (struct TreeNode*)malloc(sizeof(struct TreeNode));struct TreeNode* node2 = (struct TreeNode*)malloc(sizeof(struct TreeNode));root->value = 1;node1->value = 2;node2->value = 3;root->left = node1;root->right = node2;node1->left = NULL;node1->right = NULL;node2->left = NULL;node2->right = NULL;int nodeCount = countNodes(root);printf("节点个数为:%d\n", nodeCount);return 0;}```解析:上述代码中,通过递归的方式计算二叉树的节点个数。

数据结构(C语言版)选择、填空题答案

数据结构(C语言版)选择、填空题答案

数据结构(C语言版)选择、填空题答案一选择1、B2、A3、C4、C5、B6、B填空1、存储2、2、非线性3、3、初始状态4、4、顺序存储方法、链式存储方法、索引存储方法和散列存储方法.5、5、线性结构和逻辑结构。

6、问题的规模二选择1、C2、A3、D4、B5、C6、B填空1、题目的正确答案是:线性2、题目的正确答案是:N-I3、题目的正确答案是:N-I+14、目的正确答案是:顺序5、题目的正确答案是:相邻6、题目的正确答案是:前趋三选择1、题目的正确答案是:B2、题目的正确答案是:C3、题目的正确答案是:A4、题目的正确答案是:C5、题目的正确答案是:C6、题目的正确答案是:C填空1、题目的正确答案是:栈顶2、题目的正确答案是:下溢3、题目的正确答案是:24、题目的正确答案是:先进后出5、题目的正确答案是:头6、题目的正确答案是:链四串选择1、题目的正确答案是:B2、题目的正确答案是:C3、题目的正确答案是:D4、题目的正确答案是:C5、题目的正确答案是:B填空1、题目的正确答案是:空格串2、题目的正确答案是:顺序串和链串3、题目的正确答案是:\04、题目的正确答案是:结点的大小5、题目的正确答案是:4 &NBSP;五、选择1、题目的正确答案是:C2、题目的正确答案是:D3、题目的正确答案是:D4、题目的正确答案是:C5、题目的正确答案是:A6、题目的正确答案是:B填空1、题目的正确答案是:N2、题目的正确答案是:A-(1+S*I) B-(D+S*I)3、题目的正确答案是:1+(N*I+J)*K4、题目的正确答案是:随机5、题目的正确答案是:16、题目的正确答案是:随机六选择1、题目的正确答案是:B2、题目的正确答案是:C3、题目的正确答案是:C4、题目的正确答案是:A5、题目的正确答案是:B6、题目的正确答案是:C填空1、题目的正确答案是:零2、题目的正确答案是:双亲(或前趋)3、题目的正确答案是:994、题目的正确答案是:有序5、题目的正确答案是:336、题目的正确答案是:2^(K-2)+1七选择1、题目的正确答案是:D2、题目的正确答案是:A3、题目的正确答案是:A4、题目的正确答案是:A5、题目的正确答案是:D6、题目的正确答案是:A填空1、题目的正确答案是:N(N-1)2、题目的正确答案是:N3、题目的正确答案是:出度4、题目的正确答案是:列5、题目的正确答案是:强连通图 &NBSP;6、题目的正确答案是:邻接矩阵八填空1、题目的正确答案是:C2、题目的正确答案是:D3、题目的正确答案是:A4、题目的正确答案是:C5、题目的正确答案是:B6、题目的正确答案是:D填空1、题目的正确答案是:稳定2、题目的正确答案是:直接插入3、题目的正确答案是:I+14、题目的正确答案是:L25、题目的正确答案是:大根6、题目的正确答案是:文件的初始状态九选择1、题目的正确答案是:C2、题目的正确答案是:C3、题目的正确答案是:D4、目的正确答案是:C5、题目的正确答案是:D6、题目的正确答案是:C填空1、题目的正确答案是:动态查找表2、题目的正确答案是:(N+1)/23、题目的正确答案是:(S^2+2S+N)/(2S)4、题目的正确答案是:255、题目的正确答案是:块6、题目的正确答案是:平衡的二叉排序树十选择1、题目的正确答案是:A2、题目的正确答案是:A3、题目的正确答案是:A4、题目的正确答案是:C5、题目的正确答案是:D6、题目的正确答案是:D填空1、题目的正确答案是:文件2、题目的正确答案是:线性3、题目的正确答案是:检索和维护4、题目的正确答案是:检索功能的多少和速度的快慢5、题目的正确答案是:连续6、题目的正确答案是:主文件和索引表。

数据结构(C语言版)1800道题及答案[完整版]

数据结构(C语言版)1800道题及答案[完整版]

数据结构(C语言版)1800道题及答案[完整版]数据结构(C语言版)1800道题及答案[完整版]数据结构1800例题与答案第一章绪论一、选择题(每小题2分)1.算法的计算量的大小称为计算的(B )。

【北京邮电大学2000 二、3 (20/8分)】A.效率 B.复杂性 C.现实性 D.难度2.算法的时间复杂度取决于(C)。

【中科院计算所 1998 二、1 (2分)】A.问题的规模 B.待处理数据的初态 C.A和B D.都不是3.计算机算法指的是(① C ),它必须具备(② B )这三个特性。

① A.计算方法B.排序方法C.解决问题的步骤序列 D.调度方法② A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性 D.易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是( B )。

【中山大学 1998 二、1(2分)】A.程序 B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.5.下面关于算法说法错误的是( D )【南京理工大学 2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是(C )【南京理工大学2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。

【武汉交通科技大学 1996 一、4(2分)】A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是(D )。

数据结构c语言版试题大全(含答案)

数据结构c语言版试题大全(含答案)

数据结构c语言版试题大全(含答案)数据结构C语言版试题大全(含答案)第一章:基本概念与算法设计1.1 数据结构的定义与特点数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,它包括了数据的存储、组织和管理方式。

数据结构的特点包括以下几个方面:- 数据元素之间存在某种关系,构成逻辑结构- 对数据元素的操作对应于对其逻辑结构的操作- 数据结构有存储结构,包括顺序存储结构和链式存储结构- 算法是对数据结构的操作步骤的描述和实现1.2 算法的基本概念算法是解决特定问题或完成特定任务的一系列操作步骤。

算法的基本概念包括以下几个方面:- 有穷性:算法必须能在有限步骤内完成- 确定性:算法的每一步骤必须有确定的含义和结果- 可行性:算法的每一步骤必须可行,能够通过执行有限次数实现- 输入:算法接受的输入数据是原始问题的实例- 输出:算法产生的输出数据与输入有明确的关系1.3 算法的描述方法算法可以用自然语言、伪代码或流程图来描述。

常用的伪代码描述方法包括结构化语言和算法描述语言,结构化语言包括顺序结构、分支结构和循环结构。

第二章:线性结构2.1 线性表的定义与基本操作线性表是n个数据元素的有限序列,其中相邻元素之间存在唯一的前驱和后继关系。

线性表的基本操作包括插入、删除、查找和修改等。

2.2 数组与广义表数组是指具有相同数据类型的一组数据元素的集合,可以通过下标访问元素。

广义表是线性表的推广,其中元素可以是基本数据类型或另一个广义表。

第三章:树与二叉树3.1 树的定义与基本术语树是n(n≥0)个结点的一个有限集合,其中满足以下条件:- 有且仅有一个特定的称为根的结点- 其余结点可分为m(m≥0)个互不相交的有限集合,每个集合本身又是一棵树3.2 二叉树的定义与性质二叉树是指每个结点最多有两个子结点的树结构。

二叉树的性质包括以下几个方面:- 深度为k的二叉树最多有2^k-1个结点- 一棵二叉树的第i层最多有2^(i-1)个结点- 在二叉树的第i层上至多有2^(n-i+1)-1个结点(n为树的深度)第四章:图4.1 图的基本概念与术语图是由顶点的有穷非空集合和边的有穷集合组成的。

数据结构(C语言)【经典题库】含答案

数据结构(C语言)【经典题库】含答案

数据结构(C语言)【经典题库】含答案数据结构(C语言)【经典题库】含答案数据结构是计算机科学中的重要基础,对于程序员和软件工程师来说,熟练掌握数据结构是必不可少的。

在C语言中,有许多经典的数据结构题目,通过解答这些题目,可以深入理解数据结构的原理和应用。

本文将介绍一些经典的数据结构题目,同时附上详细的答案。

一、数组题目1. 给定一个整型数组arr和一个整数target,找出数组中两个数的和为target的所有组合。

```C#include <stdio.h>void findPairs(int arr[], int n, int target) {int i, j;for (i = 0; i < n - 1; i++) {for (j = i + 1; j < n; j++) {if (arr[i] + arr[j] == target) {printf("%d, %d\n", arr[i], arr[j]);}}}}int main() {int arr[] = {2, 4, 6, 8, 10};int target = 14;int n = sizeof(arr) / sizeof(arr[0]);findPairs(arr, n, target);return 0;}```答案解析:使用两层循环遍历数组中的每对元素,判断它们的和是否等于目标值target,如果是则输出。

时间复杂度为O(n^2)。

2. 给定一个整型数组arr和一个整数k,求出数组中连续子数组的最大和。

```C#include <stdio.h>int maxSubArraySum(int arr[], int n) {int maxSum = arr[0];int currentSum = arr[0];for (int i = 1; i < n; i++) {currentSum = (currentSum + arr[i] > arr[i]) ? currentSum + arr[i] : arr[i];if (currentSum > maxSum) {maxSum = currentSum;}}return maxSum;}int main() {int arr[] = {-2, 1, -3, 4, -1, 2, 1, -5, 4};int n = sizeof(arr) / sizeof(arr[0]);int maxSum = maxSubArraySum(arr, n);printf("最大和为:%d\n", maxSum);return 0;}```答案解析:使用动态规划的思想,定义两个变量`maxSum`和`currentSum`,分别表示当前的最大和和累加和。

(完整word版)数据结构C语言版期末考试试题(有答案)

(完整word版)数据结构C语言版期末考试试题(有答案)

“数据结构”期末考试试题一、单选题(每小题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语言版

数据结构试题及答案c语言版一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的链表定义?A. struct Node { int data; struct Node *next; };B. struct Node { int data; Node *next; };C. struct Node { int data; struct Node *next; } *Node;D. struct Node { int data; Node *next; };答案:A2. 下列关于栈的描述中,错误的是?A. 栈是一种后进先出(LIFO)的数据结构。

B. 栈的插入操作称为push。

C. 栈的删除操作称为pop。

D. 栈可以存储任意数量的数据。

答案:D3. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A4. 下列关于队列的描述中,正确的是?A. 队列是一种先进先出(FIFO)的数据结构。

B. 队列只能从队尾进行插入操作。

C. 队列的插入操作称为pop。

D. 队列的删除操作称为push。

答案:A5. 在C语言中,以下哪个函数用于创建一个动态数组?A. mallocB. callocC. reallocD. all of the above答案:D6. 下列关于二叉树的描述中,错误的是?A. 二叉树的每个节点最多有两个子节点。

B. 二叉树的子节点被称为左子树和右子树。

C. 二叉树的遍历方式包括前序、中序、后序。

D. 二叉树的每个节点只能有一个子节点。

答案:D7. 在C语言中,以下哪个函数用于释放动态分配的内存?A. freeB. mallocC. callocD. realloc答案:A8. 下列关于图的描述中,错误的是?A. 图是由顶点和边组成的数据结构。

B. 图的边可以是有向的,也可以是无向的。

C. 图的顶点可以是孤立的,没有边与之相连。

数据结构(C语言版)习题参考答案

数据结构(C语言版)习题参考答案

数据结构(C语言版)习题参考答案数据结构(C语言版)习题参考答案1. 数据结构简介数据结构是计算机科学中重要的概念之一,它关注如何组织和存储数据,以便有效地进行访问和操作。

C语言是一种广泛应用于数据结构实现的编程语言。

本文将提供一些常见数据结构习题的参考答案,帮助读者理解和掌握数据结构的基本概念与实现。

2. 数组数组是一种线性结构,存储具有相同数据类型的元素。

以下是一些数组习题的参考答案:2.1 统计数组中某个元素出现的次数```int countOccurrences(int arr[], int n, int x) {int count = 0;for (int i = 0; i < n; i++) {if (arr[i] == x) {count++;}}return count;}```2.2 查找数组中的最大值和最小值```void findMinMax(int arr[], int n, int* min, int* max) { *min = arr[0];*max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] < *min) {*min = arr[i];}if (arr[i] > *max) {*max = arr[i];}}}```3. 链表链表是一种动态数据结构,每个节点包含数据和指向下一个节点的指针。

以下是一些链表习题的参考答案:3.1 反转链表```Node* reverseLinkedList(Node* head) {Node* prev = NULL;Node* curr = head;while (curr != NULL) {Node* next = curr->next;curr->next = prev;prev = curr;curr = next;}return prev;}```3.2 合并两个有序链表```Node* mergeLists(Node* list1, Node* list2) {if (list1 == NULL) {return list2;}if (list2 == NULL) {return list1;}if (list1->data < list2->data) {list1->next = mergeLists(list1->next, list2);return list1;} else {list2->next = mergeLists(list1, list2->next);return list2;}}```4. 栈和队列栈和队列是两种重要的线性数据结构,栈支持后进先出(LIFO),队列支持先进先出(FIFO)。

  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(logn) 。

3i = 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 == NULL B.p == NULLC.p->next ==head D.p == head19.在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。

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->prior->next = s D.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 + 1 B.n – i C.i D.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->next B. s->next=p->next ;p->next=s;C.p->next=s;p->next=s->next D.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.edcba B.decba C.dceab D.abcde40.设有一个栈,元素依次进栈的顺序为A、B、C、D、E。

下列 C 是不可能的出栈序列。

A.A,B,C,D,E B.B,C,D,E,A C.E,A,B,C,D D.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.i B.n-i C.n-i+1 D.不确定43.判定一个顺序栈st(最多元素为MaxSize)为空的条件是 B 。

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

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

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

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

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

相关文档
最新文档