2015(1)年度中国石油大学数据结构试题及答案

合集下载

石油大学华东考研真题数据结构考试大纲

石油大学华东考研真题数据结构考试大纲

2015年硕士研究生入学考试大纲考试科目名称:数据结构考试时间:180分钟,满分:150分一、考试要求:1.理解数据结构、算法、抽象数据类型(ADT)的基本概念。

2.掌握线性表、树、图等基本数据结构的ADT定义以及在顺序存储和链式存储下相关算法的实现,并能对算法的时间复杂度进行分析。

3.掌握“查找”和“排序”中主要算法的基本思想和特点。

4.能够运用学习的数据结构知识和技能进行问题的分析与求解,具备采用C或C++或JAVA语言设计与实现算法(编程)的能力。

二、考试内容:1.一般线性表(1)基于顺序存储的定义和实现(方式、特点)(2)基于链式存储的定义和实现(方式、特点)(3)线性表的应用2.特殊线性表(栈、队列、字符串、数组)(1)栈、队列、字符串、数组的基本概念、特点(2)栈和队列基于顺序存储的定义与实现(方式、特点)(3)栈和队列基于链式存储的定义与实现(方式、特点)(4)字符串基于顺序存储的定义与实现(能够求模式的失败函数)(5)数组的逻辑定义和顺序存储(6)特殊数组的存储(存储方式、占用空间情况、数组操作的实现、在一维存储空间中下标的计算)(7)稀疏矩阵的压缩存储及转置算法实现4.树与二叉树(1)二叉树①二叉树的定义、主要特征及相关特征的证明②二叉树基于顺序存储和链式存储的实现(方式、特点)③二叉树重要操作的实现(建立、遍历、计算叶子结点、结点、深度等算法实现)④线索二叉树的基本概念和构造(为什么加线索?如何记录线索?如何使用线索?)(2)树、森林①树的存储结构(重点掌握子女-兄弟表示)②森林与二叉树的相互转换③树和森林的遍历(3)特殊二叉树及应用①哈夫曼(Huffman)树和哈夫曼编码的构造过程②二叉排序树(重点掌握结点的插入和删除的思想和过程)③平衡二叉树(平衡的目的?如何达到平衡?)④堆(堆的构造和调整过程)5.图(1)图的基本概念(2)图的存储及基本操作①邻接矩阵存储(无向图、有向图、无向带权图、有向带权图)②邻接表存储(无向图、有向图、无向带权图、有向带权图)③各种存储方式下操作的算法实现(图的建立、遍历、插入边、删除边等)(3)图的遍历①深度优先遍历(思想、过程及算法实现)②广度优先遍历(思想、过程及算法实现)(4)图的基本应用(掌握算法的思想、过程)①最小生成树问题②最短路径问题③有向图与工程(AOV网与拓扑排序,AOE网与关键路径)6.查找(1)查找的基本概念(2)顺序查找法(监视哨法的思想和算法)(3)折半查找法(思想和算法)(4)B树及其基本操作、B+树的基本概念(思想和过程)(5)散列(Hash)表(Hash函数和解决冲突的方法的思想和过程)(6)查找算法的时间复杂度、平均查找长度的分析7.排序(1)排序的基本概念(2)基于“插入”思想的排序方法①直接插入排序②折半插入排序(思想和过程)③希尔排序(思想和过程)(3)基于“交换”思想的排序方法①冒泡排序(思想、过程和算法)②快速排序(思想、过程和算法)(4)基于“选择”思想的排序方法①简单选择排序(思想、过程和算法)②堆排序(思想和过程)(5)基于“归并”思想的排序方法二路归并排序(思想、过程)(6)各种常用内部排序算法的特点及应用三、考试形式和试卷结构1.考试时间:180分钟,满分:150分2.题型结构a:选择题(50分)b:应用题(50分)c:算法分析与设计(50分)3.答题方式:闭卷、笔试四、参考书目1. 数据结构(用面向对象方法与C++语言描述)(第2版).殷人昆主编. 北京:清华大学出版社.2007.62. 数据结构(C语言版).严蔚敏、吴伟民编著. 北京:清华大学出版社. 2007。

中国石油大学数据结构上机实验3

中国石油大学数据结构上机实验3

《数据结构》实验报告学号2015011512 姓名胡明禹专业数学与应用数学时间2018.4.3一、实验题目实验3 顺序栈基本操作二、实验目的1.熟练掌握顺序栈的实现和基本操作2.理解栈后进先出的特点3.熟练应用顺序栈解决实际问题三、算法设计分析(一)数据结构的定义数据结构是计算机存储、组织数据的方式。

数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

(二)总体设计此处给出主要函数功能、及函数间调用关系的的描述。

例如:①初始化并建立一个新栈表函数②栈清空函数③栈判断是否为空函数④进栈函数⑤出栈函数⑥取栈顶元素函数⑦输出栈元素函数⑧计算栈中元素个数函数⑨销毁栈函数(1)主函数:统筹调用各个函数以实现相应功能void main()(2)①初始化并建立一个新栈表SqStack *InitStack(SqStack *s){int i;s=(SqStack*)malloc(sizeof(SqStack));s->top=-1;printf("输入顺序栈元素(以0结束):\n");scanf("%d",&i);do{s->top++;//栈顶指针增加一s->data[s->top]=i; //将新插入元素赋值给栈顶空间scanf("%d",&i);while(i!=0);printf("成功\n");return s;}②栈清空函数void SetNULL(SqStack *s){//清空栈s->top=-1;//当栈存在一个元素时,top等于0,因此通常把空栈的条件定位top等于-1 }③栈判断是否为空函数int EMPTY(SqStack *s){//判断栈空if(s->top>=0)return 0;else return 1;}④进栈函数SqStack *Push(SqStack *s){//进栈int a;printf("插入数字:");scanf("%d",&a);if(s->top==maxsize-1)//判断是否栈满{printf("overflow");//溢出return NULL;}else{s->top++;//栈顶指针增加1s->data[s->top]=a;//将新插入元素赋值给栈顶空间}return s;}⑤出栈函数SqStack *Pop(SqStack *s){//出栈if(s->top==-1)//当栈存在一个元素时,top等于0,因此通常把空栈的条件定位top等于-1 {printf("underlow");return s;}else{s->top--;//栈顶指针减一printf("删除的栈顶元素:");printf("%d\n",(s->data[s->top+1]));//若栈不为空,则删除s的栈顶元素}return s;}⑥取栈顶元素函数void GetTop(SqStack *s){//取栈顶if(s->top==-1){printf("SqStack is empty");//当栈存在一个元素时,top等于0,因此通常把空栈的条件定位top 等于-1}else{printf("当前栈顶元素是:");printf("%d\n",(s->data[s->top]));//取栈顶元素地址}}⑦输出栈元素函数void print(SqStack *s){//输出栈int i=0;if(s->top==-1){printf("成功!");}while(i<=s->top){//遍历栈中所有元素printf("%d ",s->data[i]);i++;}}⑧计算栈中元素个数函数void Count(SqStack *s){//计算栈中元素int i=0;while(i<=s->top){i++;}printf("个数为%d",i);}⑨销毁栈函数int DestroyStack_Sq(SqStack *s){ //销毁一个顺序栈Sfree(s);s=NULL;return 1;}四、实验测试结果及结果分析(一)测试结果(此处给出程序运行截图)(二)结果分析成功完成了题目所要求的插入,删除,查找等基本操作。

中国石油大学大数据结构精彩试题及问题详解

中国石油大学大数据结构精彩试题及问题详解

数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为()A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。

2、采用线性链表表示一个向量时,要求占用的存储空间地址()A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。

A nB n/2C (n-1)/2D (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。

A s→link = p→link;p→link = s;B p→link = s; s→link = q;C p→link = s→link;s→link = p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用()方法最好。

A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做()。

A 求子串B 模式匹配C 串替换D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。

所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是()。

A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用()。

A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为()。

10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是()。

A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与()的表示等价。

2015(1)年度中国石油大学数据结构试题及答案

2015(1)年度中国石油大学数据结构试题及答案

数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为()A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。

2、采用线性链表表示一个向量时,要求占用的存储空间地址()A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。

A nB n/2 C(n-1)/2 D (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。

A s→link= p→link;p→link= s;B p→link = s; s→link = q;C p→link= s→link;s→link= p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用()方法最好。

A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做()。

A 求子串B 模式匹配 C串替换 D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。

所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是()。

A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用()。

A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为()。

10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是()。

A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与()的表示等价。

中国石油大学期末考试复习题 070109数据结构-18

中国石油大学期末考试复习题 070109数据结构-18

《数据结构》综合复习资料一、填空题1、数据结构是()。

2、数据结构的四种基本形式为集合、()、()和()。

3、线性结构的基本特征是:若至少含有一个结点,则除起始结点没有直接前驱外,其他结点有且仅有一个直接();除终端结点没有直接()外,其它结点有且仅有一个直接()。

4、堆栈的特点是(),队列的特点是(),字符串中的数据元素为()。

5、字符串s1=“I am a student!”(单词与单词之间一个空格),s2=“student”,则字符串s1的长度为(),串s2是串s1的一个()串,串s2在s1中的位置为()。

6、KMP算法的特点:效率较();()回溯,对主串仅需要从头到尾扫描()遍,可以边读入边匹配。

7、广义表((a),((b),c),(((d))))的长度为(),表头为(),表尾为()。

8、ADT称为抽象数据类型,它是指()。

9、求下列程序的时间复杂度,并用大O表示方法表示()。

for( i=1 ; i<=n ; + + i)for( j=1 ; j<=i; + + j ){ ++x;a[i][j] = x;}10、以下运算实现在链栈上的退栈操作,请在_____处用适当句子予以填充。

int Pop(LstackTp *ls,DataType *x){ LstackTp *p;if(ls!=NULL){ p=ls;*x= ;ls= ;;return(1);}else return(0);}11、用堆栈求中缀表达式a+b*c/d+e*f的后缀表达式,求出的后缀表达式为()。

12、C语言中存储数组是采用以()为主序存储的,在C语言中定义二维数组float a[8][10],每个数据元素占4个字节,则数组共占用()字节的内存。

若第一个数据元素的存储地址为8000,则a[5][8]的存储地址为()。

13、含零个字符的串称为()串,用 表示。

其他串称为()串。

任何串中所含字符的个数称为该串的()。

中国石油大学考试题参考答案

中国石油大学考试题参考答案

一、单项选择题答题要求:每题只有一个正确的选项。

1分) 2.0以下字符型常量表达不正确的是()A)'ABC''B)[ABC]C)’ABC’D)(ABC)参考答案:D2分) 2.0在数据库中存储的是()A)数据B)数据模型C)数据以及数据之间的联系D)信息参考答案:C3分) 2.0在Visual FoxPro环境下,用LIST STRU命令显示表中每个记录的长度总计为60,用户实际可用字段的总宽度为()A)60B)61C)59D)58参考答案:C4分) 2.0同一个数组中的所有数组元素的数据类型()A)必须相同B)必须不同C)可相同也可不同D)不可改变参考答案:C5分) 2.0在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。

在这几个阶段中,数据独立性最高的是()阶段。

A)数据库系统B)文件系统C)人工管理D)数据项管理参考答案:A6分) 2.0假设一个表包含职工号(C,4)和工资(N,4)两个字段。

要求按工资升序、工资相同者按职工号升序排列,建立索引文件使用的命令是()A)INDEX ON 工资/A,职工号/D TO CNB)SET INDEX ON 工资,职工号TO CNC)INDEX ON STR(工资,4)+职工号TO CND)INDEX ON 工资/A 职工号/A TO CN参考答案:C7分) 2.0设A=”123”,则2*&A的值为()A)'' 2*&A''B)''2&123''C)246D)''2*123''参考答案:C8分) 2.0要判断数值型变量Y是否能够被2整除,错误的条件表达式为()A)MOD(Y,2)=0B)INT(Y/2)=Y/2C)Y%2=0D)INT(Y/2)=MOD(Y,2)参考答案:D9分) 2.0函数运算YEAR(date( ))返回值的类型是()A)逻辑型B)字符型C)备注型D)数值型参考答案:D10分) 2.0由计算机、操作系统、数据库管理系统、数据库、应用程序及用户组成的一个整体叫()A)软件系统B)数据库系统C)管理系统D)文件系统参考答案:B11分) 2.0一个表的全部备注字段的内容存储在()A)同一表备注文件B)不同表备注文件C)同一文本文件D)同一数据库文件参考答案:A12分) 2.0COPY TO命令的功能是()A)复制表结构和表中数据B)只复制表结构C)只复制表中数据D)以上都不对参考答案:A13分) 2.0按照传统的数据模型分类,数据库可分为三种类型()A)大型、中形和小型B)西文、中文和兼容C)层次、网状和关系D)数据、图形和多媒体参考答案:C14分) 2.0Visual FoxPro表文件有100条记录,当前记录号是11,执行命令LIST后,记录指针将指向()A)第1条记录B)第100条记录C)第101条记录D)文件结束标识位置参考答案:D15分) 0将打开的表中全部记录删除的命令为ZAP,与之等价的命令是()A)DELETE ALLB)DELETE ALL PACKC)DELETE PACKD)RECALL ALL参考答案:B16分) 2.0若要在表中真正删除记录,先用DELETE命令,再用()A)RECALLB)PACKC)按ESC键D)不用其他命令参考答案:B17分) 2.0在Visual FoxPro中,用INDEX命令建立索引文件时,<关键字表达式>应该是()A)只能由一个数值型字段组成B)可以由多个字段组成,但表达式的值必须是数值型、字符型、日期型、逻辑型C)只能是由数值型和字符型字段组成的合法表达式D)任意字段组成的合法表达式参考答案:B18分) 2.0函数SUBSTR(“”,3,2)的结果是()A)23B)34C)12D)6参考答案:B19分) 2.0在SQL中,从数据库中删除表可以用()A)DROP SCHEMA命令B)DROP TABLE命令C)DROP VIEW命令D)DROP INDEX命令参考答案:B20分) 2.0职工表及姓名索引文件都打开后,用FIND命令把指针指向姓“王”的记录,使指针指向下一个同姓记录的命令是()A)GOTO NEXTB)CONTINUEC)SKIPD)FIND 王参考答案:C二、判断题答题要求:判断下列说法是否正确。

2009-2010(1)A卷

2009-2010(1)A卷

中国石油大学(北京)2009 ——2010学年第一学期《数据结构》期末考试试卷A (闭卷考试)班级:姓名:学号:分数:一、选择题(本大题共15小题,每题2分,共30分)1、算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性2、以下数据结构中,哪一个是线性结构()。

A.广义表B.二叉树C.稀疏矩阵D.串3、4个圆盘的Hanoi塔,总的移动次数为()A.B.8 C.15 D.164、依次读入数据元素序列{a,b,c,d,e,f,g}进栈,每进栈一个元素,可要求下一个元素进栈或出栈,如此进行,下列哪种出栈为不可能序列()A.(d ,e,c,f,b,g,a) B.(d ,e,c,f,b,g,a)C.(e ,f,d,g,b,c,a) D.(c ,d,b,e,f,a,g)5、在双向循环链表结点p之后.插入s的操作是()。

A.p->next=s ;s->priou=p; p->next->priou=s ; s->next=p->next;B.p->next->priou=s; p->next=s; s->priou=p; s->next=p->next;C.s->priou=p; s->next=p->next; p->next=s; p->next->priou=s ;D.s->priou=p; s->next=p->next; p->next->priou=s ; p->next=s;6、对于循环队列()。

A.无法判断队列是否为空 B. 无法判断队列是否为满C. 队列不可能满D.以上说法都不是7、若6行5列的数组以列序为主序顺序存储,基地址为1000,每个元素占2个存储单元,则第3行第4列的元素(假定无第0行第0列)的地址是()A.1040 B.1042 C.1026 D.都不对8、广义表A=(a,b,(c,d),(e,(f,g))),则操作Head(Tail(Head(Tail(Tail(A)))))的结果为()A.(g) B.(d) C.c D.d9、下述编码中哪一个不是前缀码( )。

2015年数据结构期末考试题及答案,推荐文档(2021年整理)

2015年数据结构期末考试题及答案,推荐文档(2021年整理)

2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改) 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改))的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改)的全部内容。

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

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

数据结构试题
一、单选题
1、在数据结构的讨论中把数据结构从逻辑上分为()
A 内部结构与外部结构
B 静态结构与动态结构
C 线性结构与非线性结构
D 紧凑结构与非紧凑结构。

2、采用线性链表表示一个向量时,要求占用的存储空间地址()
A 必须是连续的
B 部分地址必须是连续的
C 一定是不连续的
D 可连续可不连续
3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。

A n
B n/2 C
(n-1)/2 D (n+1)/2
4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。

A s→link= p→link;p→link= s;
B p→link = s; s→link = q;
C p→link= s→link;s→link= p;
D q→link = s;s→link = p;
5、如果想在4092个数据中只需要选择其中最小的5个,采用()方法最好。

A 起泡排序
B 堆排序
C 锦标赛排序
D 快速排序
6、设有两个串t和p,求p在t中首次出现的位置的运算叫做()。

A 求子串
B 模式匹配 C
串替换 D 串连接
7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。

所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是()。

A 80
B 100
C 240
D 270
8、将一个递归算法改为对应的非递归算法时,通常需要使用()。

A 栈
B 队列
C 循环队列
D 优先队列
9、一个队列的进队列顺序是1, 2, 3, 4,。

相关文档
最新文档