991数据结构真题2013
数据结构考研华东师大数据工程基础专业硕士考研真题集

数据结构考研华东师大数据工程基础专业硕士考研真题集一、配套北京航空航天大学991数据结构与C语言程序设计考研真题二、名校考研真题之选择题解析下面关于线性表的叙述中,错误的是哪一个?()[北方交通大学考研真题] A.线性表采用顺序存储,必须占用一片连续的存储单元B.线性表采用顺序存储,便于进行插入和删除操作C.线性表采用链接存储,不必占用一片连续的存储单元D.线性表采用链接存储,便于插入和删除操作【答案】B ~~【解析】顺序存储,插入删除时会移动大量的元素,效率相对较低。
线性表的顺序存储结构是一种()。
[北京理工大学考研真题]A.随机存取的存储结构B.顺序存取的存储结构C.索引存取的存储结构D.Hash存取的存储结构【答案】A ~~【解析】线性表包括顺序存储结构和链式存储结构,顺序存储结构能够随机存取表中的元素,但插入和删除操作较麻烦,链式存储结构不能随机访问表中的元素,但是能够表示元素之间的先后次序,而且插入和删除操作较容易。
5个字符有如下4种编码方案,不是前缀编码的是()。
[2014年联考真题]A.01,0000,0001,001,1B.011,000,001,010,1C.000,001,010,011,100D.0,100,110,1110,1100【答案】D ~~【解析】在一个字符集中,任何一个字符的编码都不是另一个字符编码的前缀。
约定左分支表示字符‘0’,右分支表示字符‘1’,则可以用从根结点到叶子结点的路径上的分支字符串作为该叶子结点字符的编码。
如此得到的编码必是前缀编码。
D项中,编码110是编码1100的前缀,故不符合前缀编码的定义。
对如下所示的有向图进行拓扑排序,得到的拓扑序列可能是()。
[2014年联考真题]A.3,1,2,4,5,6B.3,1,2,4,6,5C.3,1,4,2,5,6D.3,1,4,2,6,5【答案】D ~~【解析】拓扑排序方法如下:(1)从有向图中选择一个没有前驱(即入度为0)的顶点并且输出它;(2)从图中删去该顶点,并且删去从该顶点发出的全部有向边;(3)重复上述两步,直到剩余的网中不再存在没有前趋的顶点为止。
2013年西南交通大学计算机技术959数据结构考研真题(回忆版)

2013年西南交通大学计算机技术959数据结构考研真题(回忆版)2013年西南交通大学计算机技术959数据结构考研真题(回忆版)第一部分选择和填空选择和填空请看往年的真题和西南交大的数据结构的课件,以及每章的习题。
还有在网上有10套模拟题,在百度文库中找十套数据结构试题及答全部试题全出自这些题。
以下是我回忆的几个点1. 数据元素2. 数据结构的概念3. 顺序插入排序的比较次数4. 完全二叉树中非叶子节点的个数的计算5. 快速排序一个数据6. 直接插入排序的平均比较次数和最大比较次数7. 快速排序和归并排序的空间复杂度8. 叶子节点的条件9. 前序遍历和中序遍历相同的条件10. 给了一个有向图,写出两个拓扑排序其他的可能太简单了吧,没有什么印象了。
第二部分问答题1:要经常插入数据,问用顺序存储还是链式存储,为什么?2:给几个数字,动手建立平衡二叉排序树。
3:给了一个二叉树的存储结构表,试着画出这个二叉树,然后写出前序遍历,中序遍历和后续遍历。
比如:地址为2的为根节点。
address 1 2 lchild 0 1 data B A rchild 0 34:一个字符串为abcd(举例), 第二个字符串为efgh。
然后把这个字符串变为abXYZgh.其中有两个函数catcan—(一个合并函数) 和 replace(&s,i,len,ch)(一个替换函数)。
5:存储结构和逻辑结构有什么区别和联系?第三部分算法1.用链表结构实现这样一个函数,每次获取一个正整数,然后插入到链表中,并且使链表从小到大有序,当输入-1时结束执行。
2: 二叉树的高度,二叉树的叶子节点的个数。
第四部分算法填空1:shell排序中挖去了几个空2:往链表中插入一个数据。
包含寻找插入点和插入的连个过程,然后把其中的几个地方挖去了。
2013年西南交通大学计算机技术959数据结构考研真题(回忆版)由热心研友冶忠林分享,祝好人一生平安~~~。
991数据结构(浙江理工)

浙江理工大学二O一二年硕士学位研究生招生入学考试试题考试科目:数据结构代码:991 (请考生在答题纸上答题,在此试题纸上答题无效)一、单选题(每题2分,共20分)1. 不带头结点的单链表si mpleL ist为空的判定条件是。
A. simple List== nullB. simple List->next == nullC. simple List->next = simple ListD. simple List! = null2. 某线性表最常用的操作是在最后一个结点之后插入一个结点或删除第一个结点,故采用_______________存储方式最节省运算时间。
A. 单链表B. 仅有头结点的单循环链表C. 双链表D. 仅有尾指针的单循环链表3. 向一个栈顶指针为top的链栈中插入一个S所指结点时,则执行_______________________。
A. top->next = S;B. S->next = top->next; top->next = S;C. S->next = top; top = S;D. S->next = top; top = top->next;4. 一维数组和线性表的区别是_____________。
A. 前者长度固定,后者长度可变B. 后者长度固定,前者长度可变C. 两者长度均固定D. 两者长度均可变5. 设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数),在一组数组B的下标位置组B[1, n(n-1)/2]中,对任一下三角部分中任一元素aij(i jK的值是______。
A. i(i-1)/2+j-1B. i(i-1)/2+jC. i(i+1)/2+j-1D. i(i+1)/2+j6.在线索化二叉树中,P所指的结点没有左子树的充要条件是_______________________。
数据结构1-3章习题答案2013

while(p->next!=NULL)
p=p->next;
temp=p->data;
delete p;
return temp;
}
4、数据结构简单地说是指数据以及相互之间的联系。
5、算法应具备以下5个特性:有穷性、正确性、可行性、输入和输出。
6、在分析各种算法的时间复杂度时,一般只讨论相应的数量级,用f(素的个数远远少于零元素的个数。
8、的运算规则为后进先出,队列的运算规则为先进先出。
C.(rear+1) %n= =frontD. (rear-1)%n= = front
5、下列是顺序存储线性表排序的算法
void Sort(List& L)
{
int i,j;
ElemType x;
for(i=1;i<L.size;i++)
{
x=L.list[i];
for(j=i-1;j>=0;j--)
}
不考虑健壮性条件,写出下列出队算法中缺失的语句:
ElemType OutQueue(struct QueueSq* Q)
{…
Q->front=(Q->front+1)%Q->MaxSize;
return Q->queue[Q->front];
…
}
参考以上两算法和数据结构,写出队满的条件:
(Q->rear+1)%Q->MaxSize==Q->front
和队空的条件:
Q->front==Q->rear
六、用f(n)=2n为例,说明栈与递归算法之间的关系。
北航991真题2013年答案

一、单项选择题1 选C2 选A3 选D4 选B,通过前序中的50来排除AC,同时这是一个排序树,可以构建出其结构5 选C6 选B7 选D8 选A,不要被顺序表所迷惑,顺序表不一定时有序的9 不在考点里了10选D二、顺序表1 顺序2 O(m)3 log2(k)+1取上界,向上取整,2^(h-2)< k <= 2^(h-1)4 234或2355 2(n+1)6 有向图中不含有回路7 看公式8 B树不考了10 9次4+3+2=9次三、综合题1 多个堆栈可以节约存储空间,可以充分利用全部的存储空间,但是某个堆栈满了之后移动空间麻烦,(2)操作方面,但单个堆栈难以确定分配的空间大小,会出现溢出或存储无法充分利用的情况(3)一般不会出现堆栈溢出的情况,且不需要预先分配空间,但需要用到了指针,需要额外的存储空间2 T->lchild==NULL&&T->rchild==NULL,T->lchild,T->rchild,显然这是个前序遍历,注意题目说明,输出叶结点的数据信息,所以if是判断是否为叶节点,其实还可以改进算法3 虽说不在考点,建议还是看看4 (1)11/0.61=18,除以18(2)四、算法设计题void sort(int A[],int n){int i,j;for(i = 1;i <= n/2; i++){int minIndex=i,maxIndex=i;for(j = i+1; j < n - i + 2; j++)if(A[minIndex] > A[j])minIndex = j;if(A[maxIndex] < A[j])maxIndex = j;}//交换值int temp = A[i];A[i] = A[minIndex];A[minIndex] = temp;temp = A[n-i+1];A[n-i+1] = A[maxIndex];A[maxIndex] = temp;}}五、填空题1 break a/q2 a[1]>=a[0],FUNC2(a,n-1),这是一个简单的题目,但算法写的太烂了,可以改进3 a[i][i] a[i][N-1-i]4 i>0 n%10+’0’5 ch=ch-30 ch=ch-267 strlen(p)-1 p<q8 ch&0x189 4 &number10 argv[1],”rb” argv[2],”wb”六、简答题1 (1)参数传递(2)return语句(3)全局变量2 与整数进行加减,指针相减,比较3 (1)所有成员共享同一块存储空间,占用空间为占用空间最大的,(2)同一时间只有一个(3)在定义的时候不能初始化4 包含头文件,定义文件指针,打开文件,进行读写操作,关闭文件七、程序设计题#include <stdio.h>int main(int argc,char *argv[]){int n = 100;int a[100];int i;//输入数组for(i = 0; i < n; i++)scanf("%d",a+i);//寻找最小的元素int min = 0;int*p = a;for(i = 0; i < n; i++)if(*(p+min)>*(p+i))min = i;//删除最小的元素for(i = min; i < n - 1; i++)*(p+i) = *(p+i+1);n--;return 0;}八、程序设计题char*maxword(char*s,char*t) {char*p,*q;p = s,q = t;int maxlen = 0;int maxbegin = -1;int i,j,k;int sword[80]={0};int tword[80]={0};int swordlen[80];int twordlen[80];int snum = 0,tnum = 0;for(i = 0; p[i]; i++){if(p[i] == ' '){sword[++snum] = i + 1;swordlen[snum-1] = sword[snum] - sword[snum-1] - 1;}}swordlen[snum] = i - sword[snum];snum++;for(i = 0; q[i]; i++){if(q[i] == ' '){tword[++tnum] = i + 1;twordlen[tnum-1] = tword[tnum] - tword[tnum-1] - 1;}}twordlen[tnum] = i -tword[tnum];tnum++;for(i = 0; i < snum; i++)printf("%d ",swordlen[i]);printf("\n");for(i = 0; i < snum; i++)printf("%d ",sword[i]);for(i = 0;i < snum; i++)for(j = 0; j < tnum; j++){if(swordlen[i] == twordlen[j] && maxlen < swordlen[i]){for(k = 0; k < swordlen[i]; k++){if(p[sword[i]+k] != q[tword[j]+k])break;}if(k == swordlen[i]){maxlen = k;maxbegin = sword[i];}}}printf("begin:%s,%d",(p+maxbegin),maxlen); }。
991数据结构与C语言程序设计考试大纲(2013版)

四、树与二叉树
1.树与二叉树的基本概念,基本特征、名词术语;
2.完全二叉树与满二叉树的基本概念,二叉树的基本性质;
3.二叉树与树、树林之间的转换;
4.二叉树的顺序存储结构与二叉链表存储结构;
5.二叉树的前序遍历、中序遍历、后序遍历和按层次遍历,以及在二叉链表基础上各种遍历算法(重点为非递归算法)的设计与应用;
1
毁灭友情的方式有许多,最彻底的一种是借钱
3.在以上两种存储结构的基础上对线性表实施的基本操作,包括顺序表的插入与删除、链表的建立、插入与删除、查找等操作对应的算法设计(含递归算法的设计)。
三、堆栈与队列
1.堆栈与队列的基本概念与基本操作;
2.堆栈与队列的顺序存储结构与链式存储结构的构造原理;
3.在不同存储结构的基础上对堆栈与队列实施插入与删除等基本操作的算法设计;
三、数组
1.一维数组和二维数组的定义、引用与初始化;
2.字符数组的定义、引用与初始化,字符数组的输入与输出,字符串和字符串处理函数。
四、函数
1.函数的定义,函数参数(形参和实参)与函数的返回值;
2.函数的调用,包括函数的嵌套调用和函数的递归调用;
3.命令行参数的基本概念,带参数的主函数的概念和应用。
二、语句
1.赋值语句(含条件赋值语句)、条件语句(含if、if-else、switch)、循环语句(含while、do-while、for语句,包括循环嵌套和break语句与continue语句);
2.输入/输出语句,包括整型、实型、字符型(含字符串)等类型数据的格式入函数scanf和格式输出函数printf。
2.数据类型,包括整型、实型、字符型等常量与变量和变量的赋值;用typedef定义类型;
北航数据结构与程序设计真题2013年北航991真题及答案

2013年''数据结构与C程序设计〃(代码991)试题一、单项选择题(本题共20分,每小题各2分)1.对于长度为n的线性表,建立其对应的収链表的时间复朵度为()。
A.0(1): B・ O(log2n):・ O(n): D・ O(n2)n2.一般情况下,在一个双向链表中插入一个新的链结点,()。
A.需耍修改4个抬针域内的指针:B・需要修改3个指针域内的抬针:C.需要修改2个抬针域内的抬针:D.只需要修改1个指针域内的抬针。
3.假设用单个字母表示中缀表达式中的一个运算数(或称运算对彖).并利用堆栈产生中缀表达式对应的后缀表达式。
对于中缀表达式A+B^C/D-E),十从左至右扫描到运算数E时,堆栈中的运算符依次是()。
(注:不包含表达式的分界符)A.+*/-:B. +*(/-: C・ +*-:・ +*(-o4.若某二叉排序树的前序遍历序列为50,20,40,30,80,60,70,则后序遍历序列为()。
A. 30,40,20,50,70,60,80:B. 30,40,20,70,60,80,50:C. 70,60,80,50,30,40,20:D. 70,60,80,30,40,20,50.5.分别以6, 3, 8, 12, 5, 7对应叶结点的权值构造的哈夫曼(Huffman)树的深度为()。
A. 6: B・ 5: C・ 4: D・ 3。
&下列关于图的叙述中,错误的是()0A.根据图的定义,图中至少有一个顶点:B.根据图的定义.图中至少有一个顶点和一条边(弧):C.具有n个顶点的无向图最多有n(n-l)/2条边:D.具有n个顶点的有向图最多有n(n-l)条边(弧)。
7.若在有向图G的拓扑序列中.顶点W在顶点vj之前,则下列4种情形中不可能岀现的是()。
A.G 中有弧vvi,vj>:B.G 中没有3ft<vi r vj>;c. G中有一条从顶点W到顶点vj的路径:D・G中有一条从顶点vj到顶点vi的路径。
2013年山东科技大学数据结构与操作系统--真题及参考答案

《数据结构》部分一、简答题(10分,每题5分)1、数据元素之间的关系在计算机中的存储有几种表示方法?各有什么特点?(P6)解:数据元素之间的关系在计算机中有四种不同的表示方法:(1)顺序存储方法。
数据元素顺序存放,每个结点只含有一个元素。
存储位置反映数据元素间的逻辑关系。
存储密度大,但有些操作(如插入、删除)效率较差。
(2)链式存储方法。
每个结点除包含数据元素信息外还包含一组指针。
指针反映数据元素间的逻辑关系。
这种操作不要求存储空间连续,便于进行插入和删除等操作,但存储空间利用率较低。
另外,由于逻辑上相邻的数据元素在存储空间上不一定相邻,所以不能对其进行随机存取。
(3)索引存储方法。
除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表。
索引表中的索引指示结点的存储位置,兼有动态和静态特性。
(4)哈希(或散列)存储方法。
通过哈希函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将哈希函数的值作为该数据元素的存储地址。
其特点是存取速度快,只能按关键字随机存取,不能顺序存储,也不能折半存取。
2、对于堆排序法,快速排序法和归并排序法,若仅从节省存储空间考虑,则应该首先选取其中哪种方法?其次选取哪种方法?若仅考虑排序结果的稳定性,则应该选取其中哪种方法?若仅从平均情况下排序最快这一点考虑,则应该选取其中哪些方法?(P289)答:若只从存储空间考虑,则应首先选取堆排序方法,其次选取快速排序方法,最后选取归并排序方法;若只从排序结果的稳定性考虑,则应选取归并排序方法;若只从平均情况下最快考虑,则应选取快速排序方法;若只从最坏情况下最快并且要节省内存考虑,则应选取堆排序方法。
二、应用题(55分)1、证明:同一棵二叉树的所有叶子结点,在前序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同)。
(8分)(例如先序abc,后序bca,中序bac。
)(P128) 答:【答案】先序遍历是“根左右”,中序遍历是“左根右”,后序遍历是“左右根”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江理工大学
2013年硕士学位研究生招生入学考试试题
考试科目:数据结构代码:991
(请考生在答题纸上答题,在此试题纸上答题无效)
一、单选题(在每小题的四个备选答案中选出一个正确答案。
每小题2分,共20分。
)
1.链表不具备的特点是______。
A. 可随机访问任一结点
B. 插入删除不需要移动元素
C. 不必事先估计存储空间
D. 所需空间与其长度成正比
2.设线性表有n个元素,以下算法中,在顺序表上实现比在链表上实现效率更高。
A. 交换第0个元素与第1个元素的值
B. 顺序输出这n个元素的值
C. 输出第i(0≤i≤n-1)个元素值
D. 输出与给定值x相等的元素在线性表中的序号
3.设输入序列为a、b、c、d,则借助栈所得到的输出序列不可能是_________。
A. a、b、c、d
B. d、c、b、a
C. a、c、d、b
D. d、a、b、c
4.为解决计算机主机与打印机之间的速度不匹配问题,通常设计一个打印数据缓冲区,主机将要
输出的数据依次写入到该缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是。
A. 栈
B. 队列
C. 树
D. 图
5.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有
个空指针域。
A. 2m
B. 4m
C. 2m+1
D. 2m -1
6.二叉树若用顺序存储结构表示,则下列四种运算中最容易实现。
A. 先序遍历二叉树
B. 层次遍历二叉树
C. 中序遍历二叉树
D. 后序遍历二叉树
7.以下关于有向图的说法正确的是。
A. 强连通图是任何顶点到其他所有顶点都有边
B. 完全有向图一定是强连通图
C. 有向图中某顶点的入度等于出度
D. 有向图边集的子集和顶点集的子集可构成原有向图的子图
8.若一个有向图中的顶点不能排成一个拓扑结构序列,则可断定该有向图____________。
A. 含有多个出度为0的顶点
B. 是个强连通图
C. 含有多个入度为0的顶点
D. 含有顶点数目大于1的强连通分量
9.顺序查找法适合于存储结构为的线性表。
A. 哈希存储
B. 压缩存储
C. 顺序存储或链式存储
D. 索引存储
10.在所有排序方法中,关键字比较的次数与记录地初始排列次序无关的是。
A. shell排序
B.冒泡排序
C. 直接插入排序
D. 简单选择排序
二、填空题(每空2分,共30分。
)
1.下面程序段的时间复杂度是。
for (i=0;i<n;i++)
for (j=0;j<m;j++)
A[i][j]=0;
2.向一个不带头节点的栈指针为lst的链式栈中插入一个*s所指节点时,则执行和。
3.在二叉链表中判断某指针p 所指结点为叶子结点的条件是。
4.按遍历一棵二叉排序树所得到的结点访问序列是一个有序序列。
5.广义表A=((a,b,c,d),( ))的表尾是___。
6.有一个10阶对称矩阵A,采用压缩存储方式(以行序为主存储,且A[0][0]=1),则A[8][5]的地址是。
7.高度为h(>=0)的二叉树,至少有个结点,最多有个结点。
8.普里姆(PRIM)算法更适合于求边的网的最小生成树。
9.在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于。
10.在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较次。
11.若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为。
12.有一个长度为10的有序表,按折半查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为。
13.在一棵平衡的二叉树中,每个节点的平衡因子B的取值范围是
三、判断题(每小题2分,共20分。
)
1.对于数据结构,相同的逻辑结构,对应的存储结构也必相同。
()
2.哈夫曼树中没有度数为1的结点。
()
3.线性表中的所有元素都有一个前驱元素和后继元素。
()
4.除了删除和插入操作外,数组的主要操作还有存取、修改、检索和排序。
()
5.链表的每一个结点都恰好包含一个指针。
()
6.无向图的邻接矩阵一定是对称矩阵,且有向图的邻接矩阵一定是非对称矩阵。
()
7.若有一个结点是某二叉树子树的中序遍历序列中的最后一个结点,则它必是该子树的前序遍历
序列中的最后一个结点。
()
8.冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。
()
9.满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
()
10.快速排序是排序算法中平均性能最好的一种排序。
()
四、应用题(共50分。
)
1.(14分)已知一棵二叉树如右图所示:
(1) 中序全线索化二叉树;
(2) 写出对该二叉树进行先序遍历和后序遍历的结果;
(3) 试画出其相应的树。