2012陕西省数据结构基础考试题库

合集下载

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

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

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 。

2012陕西省数据结构考试基础

2012陕西省数据结构考试基础

1、4、void LinkList_reverse(Linklist &L)//链表的就地逆置;为简化算法,假设表长大于2{p=L->next;q=p->next;s=q->next;p->next=NULL;while(s->next){q->next=p;p=q;q=s;s=s->next; //把L的元素逐个插入新表表头}q->next=p;s->next=q;L->next=s;}//LinkList_reverse2、对一般二叉树,仅根据一个先序、中序、后序遍历,不能确定另一个遍历序列。

但对于满二叉树,任一结点的左右子树均含有数量相等的结点,根据此性质,可将任一遍历序列转为另一遍历序列(即任一遍历序列均可确定一棵二叉树)。

void PreToPost(ElemType pre[] ,post[],int l1,h1,l2,h2)//将满二叉树的先序序列转为后序序列,l1,h1,l2,h2是序列初始和最后结点的下标。

{if(h1>=l1){post[h2]=pre[l1]; //根结点half=(h1-l1)/2; //左或右子树的结点数PreToPost(pre,post,l1+1,l1+half,l2,l2+half-1) //将左子树先序序列转为后序序列PreToPost(pre,post,l1+half+1,h1,l2+half,h2-1) //将右子树先序序列转为后序序列} }//PreToPost32. .叶子结点只有在遍历中才能知道,这里使用中序递归遍历。

设置前驱结点指针pre,初始为空。

第一个叶子结点由指针head指向,遍历到叶子结点时,就将它前驱的rchild指针指向它,最后叶子结点的rchild为空。

LinkedList head,pre=null; //全局变量LinkedList InOrder(BiTree bt)//中序遍历二叉树bt,将叶子结点从左到右链成一个单链表,表头指针为head{if(bt){InOrder(bt->lchild); //中序遍历左子树if(bt->lchild==null && bt->rchild==null) //叶子结点if(pre==null) {head=bt; pre=bt;} //处理第一个叶子结点else{pre->rchild=bt; pre=bt; } //将叶子结点链入链表InOrder(bt->rchild); //中序遍历左子树pre->rchild=null; //设置链表尾}return(head); } //InOrder时间复杂度为O(n),辅助变量使用head和pre,栈空间复杂度O(n)3、对二叉树的某层上的结点进行运算,采用队列结构按层次遍历最适宜。

数据结构基础知识题库

数据结构基础知识题库

数据结构基础知识题库1. ()是性质相同的数据元素的集合,是数据的子集。

[单选题]A.数据元素B.数据对象(正确答案)C.数据结构D.数据项2. 把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。

[单选题] A.物理结构(正确答案)B.逻辑结构C.算法的具体实现D.给相关变量分配存储单元3. 从n个数中选取最大元素()。

[单选题]A.基本操作是数据元素间的交换B.算法的时间复杂度是O(n2)C.算法的时间复杂度是O(n)(正确答案)D.需要进行(n+1)次数据元素间的比较4. 数据的()结构与所使用的计算机无关。

[单选题]A.逻辑(正确答案)B.物理C.存储D.逻辑与存储5. 数据的物理结构()。

[单选题]A.与数据的逻辑结构无关B.仅仅包括数据元素的表示C.只包括数据元素间关系的表示D.包括数据元素的表示和关系的表示(正确答案)6. 数据结构中,与所使用的计算机无关的是数据的()结构。

[单选题] A.物理B.存储C.逻辑与物理D.逻辑(正确答案)7. 数据元素是数据的基本单位,它()。

[单选题]A.只能有一个数据项组成B.至少有二个数据项组成C.可以是一个数据项也可以由若干个数据项组成(正确答案)D.至少有一个数据项为指针类型8. 算法的时间复杂度与()有关。

[单选题]A.所使用的计算机B.计算机的操作系统C.算法本身(正确答案)D.数据结构9. 同一种逻辑结构()。

[单选题]A.只能有唯一的存储结构B.可以有不同的存储结构(正确答案)C.只能表示某一种数据元素之间的关系D.以上三种说法均不正确10. 线性结构中数据元素的位置之间存在()的关系。

[单选题] A.一对一(正确答案)B.一对多C.多对多D.每一个元素都有一个直接前驱和一个直接后继11. 树形结构中数据元素的位置之间存在()的关系。

[单选题] A.一对一B.一对多(正确答案)C.多对多D.每一个元素都有一个直接前驱和一个直接后继12. 图形结构中数据元素的位置之间存在()的关系。

2012年陕西省数据结构试题及答案

2012年陕西省数据结构试题及答案
A.对应顶点v的度
B.对应顶点v的出度
C.对应顶点v的入度
D.依附于对应顶点v的边数
11、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
B.对应顶点v的出度
C.对应顶点v的入度
D.依附于对应顶点v的边数
12、一棵左子树为空的二叉树在前序线索化后,其空指针域个数为
38、从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1) B.O(n)
C.O(1Ogzn) D.O(n2)
39、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
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 = s
A.0 B.1 C.2 D.不确定
13、若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用
D 存储方式最节省运算时间。
A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表
C.指针型 D.常值引用型?
A.SA+141 B.SA+144 C.SA+222 D.SA+255

2012陕西省分析数据库的考试题目基础

2012陕西省分析数据库的考试题目基础

1、在有向图G中,如果r到G中的每个结点都有路径可达,则称结点r为G的根结点。

编写一个算法完成下列功能:(1).建立有向图G的邻接表存储结构;(2).判断有向图G是否有根,若有,则打印出所有根结点的值。

2、设T是一棵满二叉树,编写一个将T的先序遍历序列转换为后序遍历序列的递归算法。

3、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。

当n=1时,只有一个根结点,由中序序列和后序序列可以确定这棵二叉树。

设当n=m-1时结论成立,现证明当n=m时结论成立。

设中序序列为S1,S2,…,Sm,后序序列是P1,P2,…,Pm。

因后序序列最后一个元素Pm是根,则在中序序列中可找到与Pm相等的结点(设二叉树中各结点互不相同)Si(1≤i≤m),因中序序列是由中序遍历而得,所以Si是根结点,S1,S2,…,Si-1是左子树的中序序列,而Si+1,Si+2,…,Sm是右子树的中序序列。

若i=1,则S1是根,这时二叉树的左子树为空,右子树的结点数是m-1,则{S2,S3,…,Sm}和{P1,P2,…,Pm-1}可以唯一确定右子树,从而也确定了二叉树。

若i=m,则Sm是根,这时二叉树的右子树为空,左子树的结点数是m-1,则{S1,S2,…,Sm-1}和{P1,P2,…,Pm-1}唯一确定左子树,从而也确定了二叉树。

最后,当1<i<m时,Si把中序序列分成{S1,S2,…,Si-1}和{Si+1,Si+2,…,Sm}。

由于后序遍历是“左子树—右子树—根结点”,所以{P1,P2,…,Pi-1}和{Pi,Pi+1,…Pm-1}是二叉树的左子树和右子树的后序遍历序列。

因而由{S1,S2,…,Si-1}和{P1,P2,…,Pi-1}可唯一确定二叉树的左子树,由{Si+1,Si+2,…,Sm}和{Pi,Pi+1,…,Pm-1}可唯一确定二叉树的右子树。

4、两棵空二叉树或仅有根结点的二叉树相似;对非空二叉树,可判左右子树是否相似,采用递归算法。

数据结构(Python)考试题库(含参考答案)

数据结构(Python)考试题库(含参考答案)

一、填空题1.构成数据元素的不可分割的最小单位是。

2.以顺序存储结构实现的线性表被称为。

3.队列中允许进行删除元素的一端称为。

4.最大容量为M的循环队列,队尾指针是r,队首指针是f,则队满时r,f,M 三者之间满足的关系是。

5.串包含的字符个数称为串的。

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

7.设一个广义表为(a, (), (c, (d)), (e, f)),则其长度为。

8.设有二维数组array[10][10],其每个元素的长度为1字节,按行先序顺序存储,其首地址为2000,则元素A[9][2]的存储地址为。

9.由3个结点可以构造出种不同的二叉树。

10.若一棵二叉树有10个度为2的结点,则该二叉树的叶子结点个数是。

二、判断题1.数据元素之间的逻辑结构可以划分为:集合、线性结构、树形结构、图状(或网状)结构。

()2.无向图中的某个顶点的入度称为此顶点度。

()3.对含有n个元素的查找表执行顺序查找时,假定每个元素的查找概率相同,则顺序查找某个元素A的平均时间复杂度为O(n)。

()4.对一个长度为n的列表使用冒泡排序算法进行排序,此排序过程的平均时间复杂度为O(n)。

()5.内排序的整个排序过程完全在内存中进行。

()三、单项选择题1.连续存储设计中,存储单元的地址()。

A.一定连续B.一定不连续C.不一定连续D.部分连续、部分不连续2.设无向图的顶点个数为n,则该图最多有()条边。

A.n-1 B.n(n+1)/2 C.n(n-1)/2 D.n3.折半查找的平均时间复杂性为()。

A.O(n2)B.O(n) C.O(nlog2n) D.O(log2n)4.在具有n个元素的序列中进行查找,平均查找长度为O(n)的方法是()。

A.顺序查找方法B.散列查找方法C.分块查找方法D.树形查找方法5.快速排序是一种()排序。

A.插入B.选择C.交换D.归并四、简答题1.假设有一个合适大小的栈S,三个元素的进栈顺序为a, b, c,在进栈过程中允许任意的进栈、出栈操作,最终栈S要为空。

数据结构第一章考试题库(含答案)

数据结构第一章考试题库(含答案)

数据结构第一章考试题库(含答案)数据结构第一章考试题库(含答案)一、选择题1. 以下哪种数据结构是先进先出(FIFO)的?A. 栈B. 队列C. 链表D. 哈希表答案:B2. 在队列中,元素的插入操作称为什么?A. EnqueueB. DequeueC. PushD. Pop答案:A3. 哪种数据结构是一种不允许重复元素的集合?A. 栈B. 队列C. 链表D. 集合答案:D4. 以下哪种数据结构是后进先出(LIFO)的?A. 栈B. 队列C. 链表D. 哈希表答案:A5. 使用链表实现的栈或队列的时间复杂度是多少?A. O(1)B. O(n)C. O(log n)D. O(n^2)答案:A二、填空题1. 广度优先搜索(BFS)使用的数据结构是______。

答案:队列2. 深度优先搜索(DFS)使用的数据结构是______。

答案:栈3. 在二叉树中,每个节点最多有几个子节点?答案:24. 快速排序使用的分治策略是将数组分成几个子数组进行排序?答案:25. 哈希表的平均查找时间复杂度是多少?答案:O(1)三、简答题1. 请简要解释栈和队列的区别。

答案:栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作;队列是一种先进先出(FIFO)的数据结构,只能在队尾插入,在队头删除。

2. 请解释什么是链表。

答案:链表是一种动态数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。

与数组不同,链表的节点在内存中可以不连续存储,通过指针来链接每个节点。

3. 请简述快速排序的思想和算法步骤。

答案:快速排序使用分治的思想,首先选择一个元素作为基准值,然后将数组划分为两个子数组,小于基准值的元素放在左侧,大于基准值的元素放在右侧。

然后对左右子数组递归地进行快速排序,直到排序完成。

4. 请解释什么是哈希表及其应用场景。

答案:哈希表是一种基于哈希函数进行查找的数据结构,通过将关键字映射到哈希表中的位置来实现高效的查找。

数据结构试题答案

数据结构试题答案

第一章概论一、选择题1、研究数据结构就是研究(D )。

A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作(研究非数值计算的程序设计问题中,计算机操作对象以及他们之间的关系和操作)2、算法分析的两个主要方面是( A )。

A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

(线性结构就是:在非空有限集合中,存在为一个被称为第一个的数据元素和最后一个元素,有除了第一个元素,集合中每一个元素均只有一个前驱,除了最后一个元素有唯一后继)(链表、栈、队列、数组、串)A. 图B. 树C. 广义表(线性表的推广)D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、(B )等5个特性。

A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D. O(m+n)6、算法是(D )。

为了解决某一问题而规定的一个有限长的操作序列A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示(C )。

A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。

i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的(B )和运算等的学科。

2012年数据结构本科试题及答案

2012年数据结构本科试题及答案

武汉大学计算机学院2012年-2013学年第一学期“数据结构”考试试题(A )姓名学号(序号)_ 班号要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。

每张答题纸都要写上姓名和序号。

一、单项选择题(每小题2分,共30分)1. 数据结构在计算机内存中的表示是指 。

A. 数据的存储结构 B. 数据结构 C. 数据的逻辑结构 D. 数据元素之间的关系2. 若线性表最常用的运算是存取第i 个元素及其前趋元素的值,则采用 存储方式节省时间。

A.单链表B.双链表C.单循环链表D.顺序表3. 在一个具有n 个结点的有序单链表中插入一个新结点使得仍然有序,其算法的时间复杂度为 。

A.O(log 2n)B.O(1)C.O(n 2)D.O(n) 4. 栈和队列的共同点是 。

A.都是先进后出 B.都是先进先出 C.只允许在端点处插入和删除元素 D.没有其同点5. 判定一个循环队列Q (存放元素位置为0~QueueSize-1,front 指向队中队首元素的前一个位置,rear 指向队中队尾元素的位置)队空的条件是 。

A.Q.front==Q.rearB.Q.front+1==Q.rearC.Q.front==(Q.rear+1)%QueueSizeD.Q.rear==(Q.front+1)%QueueSize 6. 串是 。

A.不少于一个字母的序列B.任意个字母的序列C.不少于一个字符的序列D.有限个字符的序列 7. 一个n×n 的对称矩阵A ,如果采用以列优先(即以列序为主序)的压缩方式存放到一个一维数组B 中,则B 的容量为 。

A. n 2B.22nC. 2)1(+n nD.2)1(2+n8. 若一棵3次树中有a 个度为1的节点,b 个度为2的节点,c 个度为3的节点,则该树中有 个叶子节点。

A.1+2b +3cB.a +2b +3cC.2b +3cD.1+b +2c 9. 一棵完全二叉树中有501个叶子节点,则至少有 个节点。

数据结构考试题库含答案

数据结构考试题库含答案

数据构造习题集含答案目录目录1选择题2第一章绪论2第二章线性表4第三章栈和队列6第四章串7第五章数组和广义表8第六章树和二叉树8第七章图11第八章查找13第九章排序14简答题19第一章绪论19第二章线性表22第三章栈和队列24第四章串26第五章数组和广义表27第六章树和二叉树28第七章图31第八章查找31第九章排序32编程题34第一章绪论34第二章线性表34第三章栈和队列45第四章串45第五章数组和广义表45第六章树和二叉树45第七章图45第八章查找45第九章排序50选择题第一章绪论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 〕。

2012数据结构_习题及程序设计整理

2012数据结构_习题及程序设计整理

2012数据结构_习题及程序设计整理疯狂记忆力数据结构是计算机科学中非常重要的一个领域,它主要研究数据的组织、存储和管理方式。

在学习数据结构的过程中,习题和程序设计是提高理解和应用的重要手段。

下面将整理一些2012年的数据结构习题及程序设计内容,帮助读者巩固和深入理解这一领域的知识。

一、线性结构1. 线性表是数据结构中最基本的一种结构,它的特点是元素之间存在一对一的关系,先后次序唯一确定。

请写一个C语言程序,实现线性表的基本操作,包括插入、删除、查找等。

2. 栈是一种特殊的线性表,具有“先进后出”的特点。

设计一个栈,支持判断栈是否为空、入栈和出栈操作,并实现一个简单应用情境,例如操作系统任务的进出栈操作。

3. 队列也是一种特殊的线性表,具有“先进先出”的特点。

设计一个队列,支持判断队列是否为空、入队和出队操作,并实现一个简单应用情境,例如模拟排队等待的场景。

二、非线性结构1. 树是一种重要的非线性结构,它以分层的方式存储数据。

定义一个树的基本数据结构,包括节点的定义、插入节点、删除节点等操作。

2. 图是由节点和边组成的数据结构,用于表示多对多的关系。

请设计一个简单的图结构,实现图的初始化、添加节点、添加边以及遍历等基本操作。

三、查找与排序1. 二分查找是一种常见的查找算法,适用于有序数组。

请编写一个二分查找算法的Java程序,并验证其正确性。

2. 快速排序是一种常见的排序算法,通过分治法实现。

请实现一个快速排序算法的Python程序,并对随机生成的一组数据进行排序。

四、高级数据结构1. 堆是一种完全二叉树,主要用于实现高效的优先队列。

设计一个堆的数据结构,并实现堆排序算法。

2. 哈希表是一种以键值对存储数据的数据结构,通过哈希函数实现高效的数据查找。

请实现一个简单的哈希表,包括哈希函数的设计、数据的插入和查找等操作。

以上是一些2012年的数据结构习题及程序设计内容,涵盖线性结构、非线性结构、查找与排序以及高级数据结构等方面的内容。

2012数据结构_习题及程序设计整理

2012数据结构_习题及程序设计整理

第二章1、首尾顺序逆置2、找出顺序表中最大值和最小值及位置3、头插法算法4、尾插法:5、带头结点的单链表,向表头插入一个结点:6、单链表中查找第i个结点:8、单链表删除操作:9、重要习题,头结点与尾结点互换:10、重要习题,一个单链表拆为两个奇偶单链表:试写一个算法,将一个头结点为a的带头结点的单链表A分解成两个单链表A和B,其中头结点指针分别为a和b,使得A链表中含有原链表A中序号为奇数的元素,而B链表中含有原链表中序号为偶数的元素,并保持原来的相对顺序。

11、循环链表插入结点后仍然保持有序:12、重要习题(删除表中所有数值相同的多余元素):13、双向链表的删除操作:14、双向链表的插入操作:在带头结点的双向循环链表中插入一个新结点,需要修改的指针数量是4个。

包括新插入的新结点的指针,还有插入结点的前面结点的next域,和后面结点的prior域。

第二章课后习题14、设计两个顺序表A和B,且都递增有序,试写一算法,从A中删除与B中相同的元素(也就是计算A-B)。

15、已知head P指向结点与其后继结点位置交换。

(q为p的后继结点,s r16、已知两个单链表A和B分别表示两个集合,其元素值递增有序,试写一算法,求A和B的交集C,要求C同样以元素递增的单链表形式存储。

r=head; 查找p的前趋结点y的结点。

第三章一、队列算法f31的功能是清空带头结点的链队列Q,请填空。

Type struct node{ DataType data;Struct node *next;}QueueNode;{QueueNode *front; //队头指针二、填空题15、如果编号为1,2,3的3辆列车进入一个栈式结构的站台,那么可能得到的3辆车出站序列有哪些?不可能出现的序列是什么?16、简述下列程序算法的功能(假设元素为整数类型)(1) void ex31(SeqStack *S){int A[80],i,n;n=0;while(!empty(S)){ A[n]=pop[S];n++;}for(i=0;i<n;i++)push(S,A[i]);}答案:此算法功能是通过一个数组将一个栈中的所有元素逆置存放。

西安科技大学研究生2012数据结构试卷

西安科技大学研究生2012数据结构试卷
五、算法与程序设计题(任选3题,每题10分,共30分)
1.设计算法将一个带头结点的单链表A分解成两个具有相同结构的链表B,C。其中B表的结点是A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A的元素类型为整型,要求B,C表利用A表的结点)。
2.设计一个算法,求出指定结点在给定的二叉树中所在的层次。
5.答:顺序查找法:表中元素可以任意存放。
折半查找法:表中元素必须以关键字的大小递增或递减的次序存放且以顺序存储。
分块查找法:表中元素每块内的元素可任意存放,但块与块之间必须以关键字的大小递增(或递减)存放,即前一块内所有元素的关键字都不能大(或小)于后一块内任何元素的关键字。
三种方法的平均查找长度分别如下:
3.为何引进循环队列,其优点是什么?如何判别它的空和满?
4.内部排序指的是什么?什么是排序方法的稳定性?
5.试述顺序查找法、折半查找法和分块查找法对被查找的表中元素的要求,对长度为n的表来说,三种查找法在查找成功时的查找长度各是多少?
6.何谓队列的上溢现象和假溢出现象?解决它们有哪些方法?
四、综合题(任选3题,每题10分,共30分)
(3)中序遍历可得有序序列
(4)删除33之后的二叉树为:
五、算法与程序设计题(任选3题,每题10分,共30分)
1.解答:
void split(slink *A, slink *&B, slink *&C)
{
slink *pa=A->next, *pb, *pc;
B=(struct slink*)malloc(sizeof(struct slink));
(A)16(B)64(C)128(D)256
10.下列排序方法中,( )是从未排序序列中依次挑选元素,并将其放入已排序序列(初始为空)的一端。

真题_2012年_数据结构

真题_2012年_数据结构

参考答案:B
5.对有n个顶点、e条边且使用邻接表存储的有向图进行广度 优先遍历,其算法时间复杂度是 A. O(n) B. O(e) C. O(n+e) D. O(n*e)
参考答案:C
6.若用邻接矩阵存储有向图,矩阵中主对角线以下的元素均为 零,则关于该图拓扑序列的结论是 A.存在,且唯一 B.存在,且不唯一 C.存在,可能不唯一 D.无法确定是否存在
3.若一棵二叉树的前序遍历序列为 a,e,b,d,c,后序遍历序列为 b,c,d,e,a,则根结点的孩子结点
A.只有 e B.有 e、 b C.有 e、 c D.无法确定
参考答案:A
4.若平衡二叉树的高度为6,且所有非叶结点的平衡因子均为 1, 则该平衡二叉树的结点总数为 A. 12 B. 20 C. 32 D.33
参考答案:C
8. 下列关于最小生成树的叙述中,正确的是 I. 最小生成树的代价唯一 Ⅱ. 所有权值最小的边一定会出现在所有的最小生成树中 Ⅲ.使用普里姆 (Prim)算法从不同顶点开始得到的最小生成树一 定相同 IV. 使用普里姆算法和克鲁斯卡尔(Kruskal)算法得到的最小生 成树总不相同 A. 仅 I B. 仅 Ⅱ C. 仅 I、 Ⅲ D. 仅 Ⅱ、Ⅳ
参考答案:C
7. 对如下有向带权图,若采用迪杰斯特拉 (Dijkstra) 算法求从源点a到其他各顶点的最短路径,则得到 的第一条最短路径的目标顶点是b,第二条最短路 径的目标顶点是 c,后续得到的其余各最短路径的 目标顶点依次是 A. d,e,f B. e,d,f C. f,d,e D. f,e,d
2012年全国硕士研究生入学统一考 试计算机学科专业基础综合试卷
数据结构部分
一、单项选择题:1~40小题。每小题2分,共80分。 在每小题给出的四个选项中,请选出一项最符合题 目要求的。

数据结构试题库及答案

数据结构试题库及答案

数据结构试题库及答案第一章概论一、选择题1、研究数据结构就是研究( D )。

A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。

A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。

A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D. O(m+n)6、算法是( D )。

A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。

A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。

i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。

A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是()。

i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(log2n)D. O(n3)11、抽象数据类型的三个组成部分分别为()。

A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是( )。

数据结构考试题库与参考答案

数据结构考试题库与参考答案

数据结构考试题库与参考答案一、选择题1.1 单选题题目: 下列哪种数据结构是线性结构?A. 树B. 图C. 栈D. 队列参考答案: C解析: 栈和队列都是线性结构,而树和图是非线性结构。

1.2 多选题题目: 下列哪些操作的时间复杂度是 O(1)?A. 在数组中插入一个元素B. 在链表中删除一个元素C. 访问链表中的一个元素D. 在树中删除一个节点参考答案: B, C解析: 在链表中删除和访问元素的时间复杂度是 O(1),因为这两个操作只需要遍历链表一次。

在数组中插入或删除元素的时间复杂度是 O(n),因为在数组中移动元素需要遍历整个数组。

在树中删除一个节点的时间复杂度取决于树的形状,最坏情况下是 O(n)。

二、填空题题目: 栈是一种后进先出(LIFO)的数据结构,它是一种特殊的线性表,它的特点是只能在表的_____进行插入和删除操作。

参考答案: 尾部解析: 栈是一种只能在表的一端进行插入和删除操作的线性表,这一端被称为栈顶。

三、判断题题目: 链表比数组更适合进行频繁的插入和删除操作。

参考答案: 正确解析: 链表的每个节点只存储数据和一个指向下一个节点的指针,因此在链表中插入或删除元素只需要改变节点的指针,不需要移动其他元素,时间复杂度是 O(1)。

而数组需要移动其他元素,时间复杂度是 O(n)。

四、简答题题目: 请简要介绍队列的特点和应用场景。

参考答案: 队列是一种先进先出(FIFO)的数据结构,它的特点是插入操作在队列的一端进行,删除操作在队列的另一端进行。

队列的应用场景包括: 1) 实现打印队列; 2) 实现消息队列; 3) 实现缓冲区。

解析: 队列的特点和应用场景是数据结构中的基本概念,需要掌握。

五、编程题题目: 实现一个栈类,包括 push 和 pop 操作。

参考答案:class Stack:def __init__(self):self.items = []def push(self, item):self.items.append(item)def pop(self):if not self.is_empty():return self.items.pop()else:raise IndexError("pop from empty stack")def is_empty(self):return len(self.items) == 0解析: 栈是一种只能在表的一端进行插入和删除操作的线性表,这一端被称为栈顶。

数据结构与算法基础考试

数据结构与算法基础考试

数据结构与算法基础考试(答案见尾页)一、选择题1. 数据结构中,以下哪个是线性结构?A. 链表B. 栈C. 队列D. 二叉树2. 在算法分析中,以下哪个不是时间复杂度的组成部分?A. 时间复杂度B. 空间复杂度C. 时间步长D. 平均时间复杂度3. 以下哪个排序算法的时间复杂度为O(n^)?A. 快速排序B. 归并排序C. 堆排序D. 插入排序4. 在计算机中,以下哪种数据结构可以最有效地进行字符串匹配?A. 数组B. 链表C. 栈D. 哈希表5. 以下哪个图算法用于寻找最短路径?A. 拉普拉斯矩阵B. 关联矩阵C. 迪杰斯特拉算法D. A*搜索算法6. 以下哪个数据结构可以用来实现栈和队列?A. 数组B. 链表C. 栈D. 哈希表7. 在机器学习中,以下哪种算法属于监督学习?A. 决策树B. 聚类C. 逻辑回归D. 神经网络8. 以下哪个算法用于解决整数分解问题?A. RSA加密B. Diffie-Hellman密钥交换C. 数字签名D. ElGamal加密9. 在数据库管理中,以下哪个概念与数据的物理存储无关?A. 表空间B. 水平分割C. 垂直分割D. 存储过程10. 以下哪个编程语言不适合初学者学习数据结构和算法?A. PythonB. JavaC. C++D. JavaScript11. 什么是数据结构?请列举几种常见的数据结构,并简要描述它们的特点。

B. 链表C. 栈D. 队列E. 图12. 算法的时间复杂度是如何衡量的?请举例说明不同时间复杂度的算法。

A. O(1)B. O(log n)C. O(n)D. O(n^2)E. O(2^n)13. 什么是递归?请列举两种递归的例子,并解释它们如何工作。

A. 汉诺塔问题B. 二分查找C. 幂运算D. 斐波那契数列E. 求最大公约数14. 什么是栈?请列举栈的基本操作,并说明它们是如何实现的。

A. 后进先出(LIFO)B. 先进先出(FIFO)C. 帧栈D. 递归E. LIFO15. 什么是队列?请列举队列的基本操作,并说明它们是如何实现的。

数据结构考试专用附带完整答案

数据结构考试专用附带完整答案

数据结构考试专用附带完整答案数据结构是计算机科学中重要的一门基础课程,它研究的是组织和管理数据的方法。

在计算机程序设计和算法分析中,数据结构的选择直接影响到程序的效率和性能。

因此,对于计算机科学专业的学生来说,掌握数据结构并获得优异的成绩至关重要。

本文将为您提供数据结构考试专用附带完整答案,以帮助您更好地备考。

一、选择题1. 在数据结构中,最基本的数据操作是:A. 插入B. 查找C. 删除D. 以上皆是答案:D2. 以下不属于线性结构的是:A. 数组B. 链表C. 栈D. 树3. 以下哪种数据结构具有"先进先出"的特点:A. 队列B. 栈C. 堆D. 数组答案:A4. 在树的遍历算法中,中序遍历的顺序是:A. 根节点-左子树-右子树B. 左子树-根节点-右子树C. 右子树-左子树-根节点D. 根节点-右子树-左子树答案:B5. 哈希表(散列表)的查找时间复杂度是:A. O(1)B. O(n)C. O(log n)D. O(n^2)二、填空题1. 二叉树的最大深度是____。

答案:log2(n+1)2. 链表的节点包括数据域和____域。

答案:指针/引用3. 栈的特点是先进后出,而队列的特点是____。

答案:先进先出4. 快速排序使用的分治策略中,选择的枢纽元一般是____。

答案:数组的第一个元素5. 广度优先搜索算法(BFS)利用____数据结构实现。

答案:队列三、简答题1. 请简要说明数组和链表的区别。

答案:数组和链表都是线性表的一种实现方式。

数组是一块连续的内存空间,可以根据索引快速访问元素,但插入和删除元素的效率较低。

链表通过指针将节点串联在一起,插入和删除元素的效率较高,但访问元素需要从头开始遍历链表,效率较低。

2. 请简述栈和队列的应用场景。

答案:栈常用于括号匹配、表达式求值和函数调用等场景,其中最典型的应用是函数调用的调用栈。

队列常用于任务调度、缓冲区管理等场景,例如操作系统中的进程调度和打印队列。

数据结构考试题库

数据结构考试题库

绪论一、填空题1.数据的逻辑结构被分为集合、(线性结构)、(树形结构)和(图状结构)四种。

2.物理结构是数据结构在计算机中的表示,又称为(存储结构)。

3.数据元素的逻辑结构包括( 线性)、(树)和图状结构3种类型,树形结构和图状结构合称为(非线性结构)。

4.(数据元素)是数据的基本单位,(数据项)是数据不可分割的最小单位。

5.线性结构中元素之间存在(一个对一个)关系,树形结构中元素之间存在(一个对多个)关系,图状结构中元素之间存在(多个对多个)关系。

6.数据结构是一门研究非数值计算的程序设计问题中:计算机的(数据元素)以及它们之间的(关系)和(运筹)等的学科。

7.算法的五个重要特性为有穷性、确定性、(输入)、(输出)和(可行性)。

二、选择题1.数据的不可分割的基本单位是(D)。

A.元素B.结点C.数据类型D.数据项*2.线性表的逻辑顺序与存储顺序总是一致的,这种说法(B)。

A.正确B.不正确C.不确定D.无法选择3.线性结构是指数据元素之间存在一种(D)。

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。

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

1、与无向图相关的术语有( C )。

A)强连通图 B)入度
C)路径 D)弧
2、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。

A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
3、在数据结构中,从逻辑上可以把数据结构分为( C )。

A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
4、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。

A)loc(A1)+i*c B)loc(A1)+(i-1)*c
C)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c
5、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。

当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。

A) 4 B)3 C)2 D)12
6、n个顶点的图的最小生成树必定( D ),是不正确的描述。

A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
7、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。

A)顺序表示法 B)单字符为结点的单链表表示法
C)等量分块表示法 D)不等量分块表示法
8、以下属于顺序存储结构优点的是( A )。

A) 存储密度大B) 插入运算方便
C)删除运算方便D)可方便地用于各种逻辑结构的存储表示
9、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。

A)p->next=p->next->next B)p=p->next
C)p=p->nexe->next D)p->next=p
10、在一个链队列中,假定front和rear分别为队首和队尾指针,则插入一个结点的操作为( B )。

A)front=front->next; B) rear=rear->next;
C) rear=front->next; D) front=rear->next ;
11、队列的操作的原则是( A )。

A)先进先出 B) 后进先出
C) 只能进行插入 D) 只能进行删除
12、采用链结构存储线性表时,其地址( B )。

A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
13、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。

A)顺序表B)双链表C)带头结点的双循环链表D)单循环链表
14、( C )在进行插入操作时,常产生假溢出现象。

A)顺序栈 B)循环队列
C)顺序队列 D)链队列
15、下面程序段的时间复杂度是( A )。

s =0;
for( i =0; i<n; i++)
for(j=0;j<n;j++)
s +=B[i][j];
sum = s ;
A) O(n2) B) O(n)
C) O(m*n) D)O(1)
16、链式存储的存储结构所占存储空间( A )。

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数。

相关文档
最新文档