东北石油大学---建筑结构选型-01---绪论---上传的

40875][东北大学]20年7月考试《数据结构Ⅱ》考核作业(答案)

东北大学继续教育学院 数据结构II 试卷(作业考核线上1) A 卷 学习中心:奥鹏远程教育沈阳学习中心(直属)[32]院校学号:C09024011930344 姓名何家强 (共 6 页) [ A]1.抽象数据类型的三个组成部分分别为 A.数据对象、数据关系和基本操作 B.数据元素、逻辑结构和存储结构 C.数据项、数据元素和数据类型 D.数据元素、数据结构和数据类型 [ B]2.要求相同逻辑结构的数据元素具有相同的特性,其含义为 A. 数据元素具有同一的特点 B. 不仅数据元素包含的数据项的个数相同,而且其对应数据项的类型要一致 C. 每个数据元素都一样 D. 仅需要数据元素包含的数据项的个数相同 [ D]3.下列各式中,按增长率由小至大的顺序正确排列的是 A.n,n!,2n ,n3/2 B.n3/2,2n,n logn,2100 C.2n,log n,n logn,n3/2 D.2100,logn, 2n, n n [B ]4. 在下列哪种情况下,线性表应当采用链表表示为宜 A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 [ C]5.设指针p指向双链表的某一结点,则双链表结构的对称性是 A. p->prior->next=p->next->next; B. p->prior->prior=p->next->prior; C. p->prior->next=p-> next->prior; D. p->next->next= p->prior->prior;

[D ]6. 已知指针p和q分别指向某带头结点的单链表中第一个结点和最后一个结点。假设指 针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为 A. s->next=q;p->next=s->next; B. s->next=p;q->next=s->next; C. p->next=s->next;s->next=q; D. q->next=s->next;s->next=p; [A ]7. 栈和队列的共同特点是 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 [D ]8. 对于链队列,在进行插入运算时. A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D.头、尾指针可能都要修改 [B ]9.设有一个顺序栈的入栈序列是1、2、3,则3个元素都出栈的不同排列个数为 A.4 B.5 C. 6 D. 7 [D ]10.设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是 A.A,B,C,D B.D,C,B,A C. A,C,D,B D. D,A,B,C [ C]11.表达式a*(b+c)-d的后缀表达式是 A.abcd*+- B.abc*+d- C.abc+*d- D.-+*abcd [B ]12.某二叉树的先序序列和后序序列正好相反,则该二叉树的特点一定是 A. 空或只有一个结点 B.高度等于其结点数 C. 任一结点无左孩子 D.任一结点无右孩子 [ B]13.下面的说法中正确的是 (1)任何一棵二叉树的叶子结点在种遍历中的相对次序不变。 (2)按二叉树定义,具有三个结点的二叉树共有6种。 A.(1),(2) B.(1) C.(2) D.(1),(2)都错 [ B]14.树有先序遍历和后序遍历,树可以转化为对应的二叉树。下面的 说法正确的是 A.树的后序遍历与其对应的二叉树的先序遍历相同 B.树的后序遍历与其对应的二叉树的中序遍历相同 C.树的先序序遍历与其对应的二叉树的中序遍历相同 D.以上都不对 [D ]15.下列说法正确的是 (1)二又树按某种方式线索化后,任一结点均有前趋和后继的线索 (2)二叉树的先序遍历序列中,任意一个结点均处于其子孙结点前 (3)二叉排序树中任一结点的值大于其左孩子的值,小于右孩子的值 A.(1)(2)(3) B.(1)(2) C.(1)(3) D.都不对 [D ]16. 二叉树的第k层的结点数最多为 A.2k-1 B.2K+1

东北大学2000年数据结构试题

1 (20分)简要回答下列问题 (注意:请将答案写在答题纸上,并注明题号) ①(3分) 内存中一片连续空间(不妨假设地址从1到m),提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。 ②(5分) 假设字符a,b,c,d,e,f的使用频度分别是0.07,0.09,0.12,0.22,0.23,0.27,写出a,b,c,d,e,f的Huffman(哈夫曼)编码。 ③(4分) 一棵共有n个结点的树,其中所有分枝结点的度均为k,求该树中叶子结点的子数。 ④(4分) 图1表示一个地区的通讯网,边表示城市间的通讯线路,边上的权表示架设线路花费的代价,如何选择能沟通每个城市且总代价最省的n-1条线路,画出所有可能的选择。 ⑤(4分) 在起泡(汽泡)排序过程中,有的关键字在某趟排序中可能朝着与最终排序相反的方向移动,试举例说明之。快速排序过程中有没有这种现象? 2 (15分)

设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法: ①找出最小值结点,且打印该数值; ②若该数值是奇数,则将其与直接后继结点的数值交换; ③若该数值是偶数,则将其直接后继结点删除; 3 (14分) 解答下列问题: ①(4分) 将算术表达式((a+b)+c*(d+e)+f)*(g+h) 转化为二叉树; ②(10分) 假设一个仅包含二元运算符的算术表达式以二叉链表形式存储在二叉树BT中,写出计算该算术表达式值的算法。 4(21) 解答下列问题: ①(5分) 画出有向图的十字链表存储结构中头结点和表结点的结点结构。 ②(4分) 下面哪一个方法可以判断出一个有向图中是否有环(回路)? (1)深度优先遍历 (2)拓朴排序(3)求最短路径(4)求关键路径 ③(12分)

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

《数据结构》实验报告 学号2015011512 姓名胡明禹专业数学与应用数学时间2018.6.5 一、实验题目: 实验八最短路径 二、实验目的 1. 掌握杰斯特拉算法 2. 利用迪杰斯特拉算法计算途中一点到其他各顶点的最短路径 三、算法设计分析 实验由4个函数共同组成。其功能描述如下: (1)主函数:统筹调用各个函数以实现相应功能 void main() (2)创建有向图的邻接矩阵函数 Status CreateDG(MGraph &G) { int i,j,k,w; char v1,v2; printf("请输入顶点数和边数:"); scanf("%d%d",&G.vexnum,&G.arcnum); printf("\n请按次序输入%d个顶点字母标号(如ABCD等):",G.vexnum); getchar(); //弹出缓冲区中上次最后出入的换行符,即最后按下的回车键 for (i=0;i

数据结构实验-互联网域名查询实验报告

实验报告 实验课程:数据结构 实验项目:实验三互联网域名查询 专业:计算机科学与技术 班级: 姓名: 学号: 指导教师:

目录一、问题定义及需求分析 (1)问题描述 (2)实验任务 (3)需求分析 二、概要设计: (1)抽象数据类型定义 (2)主程序流程 (3) 模块关系 三、详细设计 (1)数据类型及存储结构 (2)模块设计 四、调试分析 (1)调试分析 (2)算法时空分析 (3)经验体会 五、使用说明 (1)程序使用说明 六、测试结果 (1)运行测试结果截图 七、附录 (1)源代码

一、问题定义及需求分析 (1)实验目的 互联网域名查询 互联网域名系统是一个典型的树形层次结构。从根节点往下的第一层是顶层域,如cn、com等,最底层(第四层)是叶子结点,如www等。因此,域名搜索可以看成是树的遍历问题。 (2)实验任务 设计搜索互联网域名的程序。 (3)需求分析: 1)采用树的孩子兄弟链表等存储结构。 2)创建树形结构。 3)通过深度优先遍历搜索。 4)通过层次优先遍历搜索。 二、概要设计: 采用孩子兄弟链表存储结构完成二叉树的创建; 主程序流程: 创建根节点域名输入域名拆分根据孩子兄弟链表表示的树进行插入调用层次优先遍历输出遍历结果调用深度优先遍历输出遍历结果结束程序 模块关系: 输入域名 创建孩子兄弟树 层次优先遍历输出结果 深度优先遍历输出结果 结束 三、详细设计 孩子兄弟链表结构: typedef struct CSNode{ ElemType data[10]; struct CSNode *firstchild, *nextsibling; }*CSTree;

《数据结构》期末复习题_15021457072916549

中国石油大学(北京)远程教育学院期末复习题 一、选择题(本大题共15小题,每小题2分,共30分) 1.以下与数据的存储结构无关的术语是() A、循环队列 B、链表 C、哈希表 D、栈 2.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是() A、110 B、108 C、100 D、120 3.假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是() A、head= =NULL B、head–>next= =NULL C、head–>next= =head D、head!=NULL 4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是() A、2,4,3,1,5,6 B、3,2,4,1,6,5 C、4,3,2,1,5,6 D、2,3,5,1,6,4 5.下列关键字序列中,构成小根堆的是() A、{12,21,49,33,81,56,69,41} B、{81,69,56,49,41,33,21,12} C、{81,49,69,41,21,56,12,33} D、{12,21,49,33,81,41,56,69} 6.下列数据结构中,不属于二叉树的是() A、B树 B、AVL树 C、二叉排序树 D、哈夫曼树 7.用顺序存储的方法来存储一棵二叉树,存放在一维数组A[1..N]中,若结点A[i]有右孩子,则其右孩 子是()。 A、A[2i] B、A[2i-1] C、A[2i+1] D、A[i/2] 8.设树T的高度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1,则T中叶子数为() A、 5 B、 6 C、7 D、 8 9.有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高 度最小,则应选择下面哪个序列输入() A、45,24,53,12,37,96,30 B、37,24,12,30,53,45,96 C、12,24,30,37,45,53,96 D、30,24,12,37,45,96,53 1

东北大学数据结构上机实验报告3

实验三树和图应用 一、实验目的 光纤管道铺设施工问题 问题描述 设计校园内有N个教学楼及办公楼,要铺设校园光纤网,如何设计施工方案使得工程总的造价为最省。 二、实验要求 设计校园光纤网铺设的最小生成树模拟程序。 1)采用邻接表或邻接矩阵存储结构。 2)分别采用普利姆算法和克鲁斯卡尔算法实现。 输入形式 对应的教学楼、办公楼数目n,各边权值即每栋楼之间的距离 输出形式 最小生成树,即总路程最小的路 程序功能 设计校园光纤网铺设的最小生成树模拟程序 三、设计概要 流程图 抽象数据类型的定义 class prims { private:

int n; //节点的个数 int graph_edge[99][4]; //图的边 int g; //图中边的个数 int tree_edge[99][4]; //树的边 int t; //树的边的个数 int s; //源节点 int T1[50],t1; // 第一部分 int T2[50],t2; //第二部分 public: void input(); int findset(int); void algorithm(); void output(); }; 各程序模块之间的调用关系 四、详细设计 定义prims类 private中进行对图的创建 public: void input(); int findset(int); void algorithm();

void output(); 开始界面 实现prims类中图的初始化 分别输入图中的顶点个数、图的边及其权值 算法构造 t=0;//初始化边的个数为0 t1=1; T1[1]=1; //资源节点 t2=n-1; int i; for(i=1;i<=n-1;i++) T2[i]=i+1; cout<<"\n\n*****运算开始*****\n\n\n"; while(g!=0 && t!=n-1) { int min=99; int p; int u,v,w; for(i=1;i<=g;i++) { if(findset(graph_edge[i][1])!=findset(graph_edge[i][2])) //如果u和v在不同的部分{ if(min>graph_edge[i][3]) { min=graph_edge[i][3]; u=graph_edge[i][1]; v=graph_edge[i][2]; w=graph_edge[i][3]; p=i; } } } for(int l=p;l

中国石油大学(华东)本科毕业设计(论文)参考模板(2017)

本 科 毕 业 设 计(论文) 题 ——副标题 学生姓名:张 三 学 号:1301013101 专业班级:电气工程及其自动化13-5班 指导教师:李 四 2017年 6月15日

——副标题 要 数据结构算法设计和演示(C++)树和查找是在面向对象思想和技术的指导下,采用面向对象的编程语言(C++)和面向对象的编程工具(Borland C++ Builder 6.0)开发出来的小型应用程序。它的功能主要是将数据结构中链表、栈、队列、树、查找、图和排序部分的典型算法和数据结构用面向对象的方法封装成类,并通过类的对外接口和对象之间的消息传递来实现这些算法,同时利用C++ Builder 6.0中丰富的控件资源和系统 解、辅助教学和自我学习的作用。 关键词:

The design and implementation of the linear form ——副标题 Abstract 外文摘要要求用英文书写,内容应与“中文摘要”对应。使用第三人称。 “Abstract” 字体:Times New Roman,居中,三号,加粗,1.5倍行距,段前、段后0.5行间距,勾选网格对齐选项。 “Abstract”上方是论文的英文题目,字体:Times New Roman,居中,小二,加粗,1.5倍行距,间距:段前、段后0.5行间距,勾选网格对齐选项。 Abstract正文选用设置成每段落首行缩进2字符,字体:Times New Roman,字号:小四,1.5倍行距,间距:间距:段前后0.5行间距,勾选网格对齐选项。 Keywords与Abstract之间空一行,首行缩进2字符。Keywords与中文“关键词”一致,加粗。词间用分号间隔,末尾不加标点,3-5个,Times New Roman,小四。如需换行,则新行与第一个关键词首字母对齐。 Keywords:Write Criterion;Typeset Format;Graduation Project (Thesis)

数据结构实验二-

实 验 报 告 一、实验目的 1) 加深对图的表示法和图的基本操作的理解,并可初步使用及操作; 2) 掌握用图对实际问题进行抽象的方法,可以解决基本的问题; 3) 掌握利用邻接表求解非负权值、单源最短路径的方法,即利用Dijkstra 算法求最短 路径,同时掌握邻接表的建立以及使用方法,能够解决相关的问题; 4) 学会使用STL 中的map 抽象实际问题,掌握map ,List,,priority_queue 等的应 用。 二、实验内容与实验步骤 (1) 实验内容: 使用图这种抽象的数据结构存储模拟的欧洲铁路路线图,通过Dijkstra 算法求出欧洲旅行最少花费的路线。该实验应用Dijkstra 算法求得任意两个城市之间的最少路费,并给出路费最少的路径的长度和所经过的城市名。 (2) 抽象数据类型及设计函数描述 1) 抽象数据类型 class City : 维护一个城市的信息,包括城市名name ,是否被访问过的标记visted ,从某个城市到达该城市所需的总费用total_fee 和总路径长度total_distance ,求得最短路径后路径中到达该城市的城市名from_city 。 class RailSystem : 用邻接表模拟欧洲铁路系统,该邻接表使用数据结构map 实现,map 的key-value 课程名称:数据结构 班级: 实验成绩: 实验名称:欧洲旅行 学号: 批阅教师签字: 实验编号:实验二 姓名: 实验日期:2013 年6 月 18 日 指导教师: 组号: 实验时间:

值对的数据类型分别为string和list<*Service>,对应出发城市名和该城市与它能 够到达的城市之间的Service链表。 class Service: 为铁路系统模拟了两个城市之间的直接路线,包括两个城市之间直接到达的费用 fee,两城市之间的直接距离distance。 部分设计函数描述 ●RailSystem(const string& filename) 构造函数,调用load_services(string const &filename)函数读取数据 ●load_services(string const &filename) 读取传入的文件中的数据并建立上述两个map以模拟欧洲铁路路线图 ●reset(void) 遍历cities图,初始化所有城市的信息:visted未访问,total_distance最大 值,total_fee费用最大值,from_city为空 ●~RailSystem(void) 析构函数,用delete将两个map中所有使用new操作符开辟的空间删除 ●void output_cheapest_route(const string& from, const string& to, ostream& out); 输出两城市间的最少费用的路径,调用calc_route(string from, string to)函 数计算最少费用 ●calc_route(string from, string to) 使用Dijkstra算法计算from和to两个城市间的最少费用的路径 (3)采用的存储结构 1)map > outgoing_services 用来保存由一个城市出发可以直接到达的城市名及这两个城市之间的路径信息。 2)list 以service为指针的list表,保存两城市间的路径。 3)map cities 用来保存所有城市信息,通过城市名查找该城市有关信息。 4)priority_queue, Cheapest> candidates 存储候选的遍历城市,City*是优先队列存储的对象类型,vector是该对象的向量集合,Cheapest是比较规则。 三、实验环境 操作系统:Windows 8 调试软件:Microsoft visual studio 2012 上机地点:综合楼311 机器台号:笔记本

东北大学数据结构实验报告

实验报告 课程名称:数据结构班级:实验成绩: 实验名称:顺序表和链表的应用学号:批阅教师签字: 实验编号:实验一:实验日期:2017-11-25 指导教师:组号:实验时间:18:30~22:30 一、实验目的 (1)掌握线性表的基本操作(插入、删除、查找)以及线性表合并等运算在顺序存储结构、链式存储结构上的实现。重点掌握链式存储结构实现的各种操作。 (2)掌握线性表的链式存储结构的应用。 二、实验容与实验步骤 (1)实验容: 实现约瑟夫环,约瑟夫环(Joseph)问题的一种描述是:编号为1、2、3……n的n个人按照顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按照顺时针的方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。设计一个程序求出出列顺序。 (2)抽象数据类型和设计的函数描述,说明解决设想。 首先定义一个链表,用其中的data项存储每个人的编号,用password项存储每个人所持有的密码,并且声明一个指针。之后使用CreatList_CL函数来创建一个循环链表,在其中的data和password中存入编号和密码,最后使最后一个节点的next指向L,使其能够形成循环队列。定义了函数Display来显示链表当中的容,以确定存储的数据没有错误。定义了函数Delete_L来实现约瑟夫环中依次删除的功能,依次比较,如果某个人所持的密码和m 值相等,则删除这个结点,并且输出此时该结点的编号和密码,实现出列的功能。 (3)简短明确地写出实验所采用的存储结构,并加以说明。 该实验我主要采用的是线性表的链式存储结构,首先定义了链表的结构,其中包括data 项和password项,分别存储每个人的编号和所持密码,还声明了指向下一个结点的指针,该指针可以连接各个结点,并且将最后一个结点的指针指向第一个结点使之成为一个循环链表。 三、实验环境 操作系统:Windows 7 调试软件名称:Visio Studio2017 上机地点:信息楼B405 四、实验过程与分析 (1)主要的函数或操作部的主要算法,分析这个算法的时、空复杂度,并说明设计的巧妙之处。

东北石油大学课件

东北石油大学 2016年研究生创新实践培养基地单列计划招生简章 按照《关于印发黑龙江省产学研联合培养研究生工作暂行办法的通知》黑教联[2013]68号文件要求,由黑龙江省教育厅、科技厅、工业和信息化委员会批准,我校作为黑龙江省产学研联合培养招生单位,实行研究生创新实践培养基地(以下简称培养基地)招生计划单列。学生为我校全日制学生,以基地模式培养。实行“双导师”制,配备校内、外导师,以校外导师为主。课程培养在学校进行,论文研究在基地进行。2016年培养基地招生计划共14人。 培养基地重在培养拔尖创新人才,造就科技创新和工程技术领域领军人才。我校自2004年始建培养基地,已为社会输送了大批人才,形成了相应的培养体系。并以深化研究生教育改革为契机,拓展基地功能,优化基地学习环境,营造学术氛围,努力打造与社会结合紧密的产学研联合培养工作平台。其培养优势主要表现在: 1、校企资源共享,强化专业知识的应用,尤其强化实践能力培养; 2、以企业实际工作为培养内容,解决企业实际问题,实现人才培养与企业需求的有 效衔接; 3、在学习中积累工作经验,适应社会环境,提高就业竞争力,优秀生基地优先选拨 留用; 4、以企业准员工身份进入基地,食宿与企业职工同等待遇,并给予一定的科研生活 补贴。 5、学校在学生创新立项、学业奖学金、入党等方面优先考虑基地学生,并为每个基地 配备一台笔记本电脑,为学生往返校企间发放交通补助。 凡达到2016年硕士研究生国家初试分数线且符合基地单列计划招生专业的考生均可报名。 竭诚欢迎广大考生报名,希望越来越多的研究生在培养基地里成长、成才、成功! 附件1:《研究生培养创新基地单列计划生申请表》

2020中国石油大学(华东)数据结构考研初试考试大纲

一、考试要求 1.理解数据结构、存储结构、算法、数据类型、抽象数据类型(ADT)等基本概念及它们之间的关系。2.掌握线性表、树、图等基本数据结构的ADT 定义以及基于不同存储方式(顺序、链式等)的实现,并能对占用存储空间情况和算法的时间复杂度进行分析。3.掌握典型的查找结构(静态表、搜索树、散列等)、查找算法的基本思想及性能分析。4.掌握内部排序(选择、插入、交换、归并等)的重要算法的基本思想、特点及性能分析。5.能够运用学习的数据结构及算法的知识和技能进行问题的分析与求解,即能对问题进行抽象建模,能熟练使用高级语言(C 或C++或JAVA 等)进行模型的具体实现(编程)。 二、考试内容 1.数据结构和算法的重要性(1)基本概念及它们之间的关系(2)各种存储结构的空间占用情况及映射逻辑关系的方式(3)算法的评价及对算法渐近时间复杂性的理解2.一般线性表(1)一般线性表ADT 的定义(2)线性表ADT 基于顺序存储的实现(存储方式、特点、重要操作的算法,下同)(3)线性表ADT 基于链式存储的实现(存储方式、特点、重要操作的算法,下同)3.特殊线性表(栈、队列、字符串、数组)(1)栈的特点及栈ADT 的定义(2)栈ADT 基于顺序存储的实现(3)栈ADT 基于链式存储的实现(4)栈ADT 的应用(表达式求值、递归处理、迷宫问题)(5)队列的特点及队列ADT

的定义(6)队列ADT 基于顺序存储的实现(7)队列ADT 基于链式存储的实现(8)队列ADT 的应用(广度遍历、资源分配问题)(9)字符串特点及串ADT 的定义(10)字符串ADT 基于顺序存储的实现(重点掌握经典的模式匹配算法:BF,KMP)(11)数组的特点及ADT 定义(12)数组ADT 基于顺序存储的实现(重点掌握多维数组的存储结构)(13)特殊矩阵的存储及操作实现(重点掌握分布有规律的特殊矩阵和分布无规律的稀疏矩阵如何高效存储及矩阵典型操作的实现)4.树与二叉树(1)二叉树的特点及ADT 定义(2)二叉树的重要性质及证明(3)二叉树基于顺序存储的实现(4)二叉树基于链式存储的实现(重点掌握重要操作:建立、遍历、求深度、计算叶子等等)(5)线索二叉树的基本概念(为什么加线索?如何记录线索?如何使用线索?)(6)建立(画)线索二叉树(7)树、森林的定义及特点(8)树的存储结构(重点掌握子女-兄弟表示)(9)树、森林与二叉树的相互转换(10)树和森林的遍历(11)哈夫曼(Huffman)树和哈夫曼编码的构造过程(12)二叉排序树的定义及建立(重点掌握结点的插入和删除的思想和过程)(13)平衡二叉树的定义及建立(平衡的目的?如何达到平衡?)(14)堆的定义及建立和调整(堆的构造和调整过程)5.图(1)图的基本概念及ADT 定义(2)图的ADT 的实现(存储方式及基本操作实现)①邻接矩阵存储(无向图、有向图、无向带权图、有向带权图)②邻接表存储(无向图、有向图、无向带权图、有向带权图)③各种存储方式下操作的算法实现(图的建立、遍历、插入边、删除边等)(3)图的遍历及生成树①

东北大学数据结构实验报告

. / 实验报告 课程名称:数据结构班级:实验成绩: 实验名称:顺序表和链表的应用学号:批阅教师签字: 实验编号:实验一:实验日期:2017-11-25 指导教师:组号:实验时间:18:30~22:30 一、实验目的 (1)掌握线性表的基本操作(插入、删除、查找)以及线性表合并等运算在顺序存储结构、链式存储结构上的实现。重点掌握链式存储结构实现的各种操作。 (2)掌握线性表的链式存储结构的应用。 二、实验内容与实验步骤 (1)实验内容: 实现约瑟夫环,约瑟夫环(Joseph)问题的一种描述是:编号为1、2、3……n的n个人按照顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按照顺时针的方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。设计一个程序求出出列顺序。 (2)抽象数据类型和设计的函数描述,说明解决设想。 首先定义一个链表,用其中的data项存储每个人的编号,用password项存储每个人所持有的密码,并且声明一个指针。之后使用CreatList_CL函数来创建一个循环链表,在其中的data和password中存入编号和密码,最后使最后一个节点的next指向L,使其能够形成循环队列。定义了函数Display来显示链表当中的内容,以确定存储的数据没有错误。定义了函数Delete_L来实现约瑟夫环中依次删除的功能,依次比较,如果某个人所持的密码和m值相等,则删除这个结点,并且输出此时该结点的编号和密码,实现出列的功能。 (3)简短明确地写出实验所采用的存储结构,并加以说明。 该实验我主要采用的是线性表的链式存储结构,首先定义了链表的结构,其中包括data 项和password项,分别存储每个人的编号和所持密码,还声明了指向下一个结点的指针,该指针可以连接各个结点,并且将最后一个结点的指针指向第一个结点使之成为一个循环链表。 三、实验环境 操作系统:Windows 7 调试软件名称:Visio Studio2017 上机地点:信息楼B405 四、实验过程与分析 (1)主要的函数或操作内部的主要算法,分析这个算法的时、空复杂度,并说明设计的巧妙之处。

东北石油大学,石油工程,渗流力学复习资料全.

渗流力学复习资料 东北石油大学,石油工程 第一章基础知识 (2) 第二章单相液体的稳定渗流 (4) 第三章多井干扰理论 (5) 第四章弱可压缩液体的不稳定渗流 (6) 第五章油水两相渗流的理论基础 (8) 第六章油气两相渗流(溶解气驱动) (9)

第一章基础知识 1.渗流力学:研究流体在多孔介质中流动规律的一门学科。 2.多孔介质:含有大量任意分布的彼此连通且形状各异、大小不一的孔隙的固体介质。 3.油气储集层:油气储集的场所和油气运移的通道。 4.油气储集层按内部空间结构特点分类:单纯介质、双重介质、多重介质。 5.油气储集层按空间形态特点分类:层状油藏和块状油藏。 6.若背斜构造中同时存在油、气、水,则它们将按重力分异原则分布,即天然气在顶部,油 在其下部,而水则在构造的侧翼(称为边水)或在构造底部(称为底水)。 7.油水(气)分界面:油和水(气)的接触面。 8.油水(气)边界:油水(气)分界面在平面上的投影。 9.供给边界:若油藏有露头,且露头外有水源供应,则露头在平面上的投影称为供给边界。 10.封闭边界:若油藏的边界是封闭的,则油藏边界在平面上的投影称为封闭边界。 11.油气储集层特点:储容性、渗透性、比表面大、结构复杂。 12.储容性:油气储集层储存和容纳流体的能力。(由孔隙度和岩石压缩系数表征) 13.多孔介质渗流特点:渗流速度慢,渗流阻力大。(由比表面大、结构复杂决定) 14.渗流的三种基本几何形式有平面单向流、平面径向流、球形径向流。 15.平面单向流渗流特点:流线相互平行,垂直于渗流方向的截面上各点的渗流速度相等。 16.平面径向流渗流特点:流线呈放射状,越靠近井底其渗流面积越小而渗流速度越大,越 远离井底其渗流面积越大而渗流速度越小。 17.球面径向流渗流特点:渗流面积成球面形,流动呈现三维流动。 18.渗流速度:流体通过单位渗流面积的体积流量。(标量,高压指向低压) 19.真实渗流面积:流体所流过的孔道的横截面的面积。 20.真实渗流速度:流体通过单位孔道面积的体积流量。 21.原始地层压力:油藏投入开发前测得的地层压力。(第一批探井或者压力梯度曲线反演) 22.压力梯度曲线:以第一批探井的原始地层压力与对应地层深度作出的曲线(一般为直线) 23.目前地层压力:油藏开发过程中,不同时期的地层压力。 24.边界压力:油藏边界处的压力。若边界处存在供源,则此压力称为供给边界压力;若边界 是封闭的,则称此压力为封闭边界压力。 25.井底压力:正常生产状态下,在生产井井底所测得的压力。一般指位于油层中部的压力。

中国石油大学远程教育学院《数据结构课程设计》课程设计报告模板

中国石油大学(北京) 远程教育学院 《数据结构》课程设计报告 课程设计题目 学生姓名 学号 专业班级 2019 年月

题目要求:设计一个稀疏矩阵计算器,实现两个稀疏矩阵的加法、减法、乘法以及矩阵的转置运算。采用菜单为应用程序的界面,用户通过对菜单进行选择,分别实现矩阵的相加、相减、相乘以及矩阵转速运算。 1需求分析 1. 稀疏矩阵是指稀疏因子小于等于0.5的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。 2. 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现矩阵转置,以及两个矩阵的加、减、乘的运算。稀疏矩阵的输入形式采用三元组表示,运算结果以阵列形式列出。 3. 演示程序以用户和计算机的对话方式进行,数组的建立方式为边输入边建立。首先输入矩阵的行数和列数,并判别给出的两个矩阵的行列数是否与所要求的运算相匹配。 4. 程序可以对三元组的输入属性不加以限制;根据对矩阵的行列,三元组作之间插入排序,从而进行运算时,不会产生错误。 5. 在用三元组表示稀疏矩阵时,相加、相减和相乘所产生的结果矩阵另外生成。 6. 运行环境:VC6.0++。 2概要设计 稀疏矩阵元素用三元组表示: typedef struct{ int i; //非零元的行下标 int j; //非零元的列下标 int e; //矩阵非零元 }Triple; 稀疏矩阵采用三元组顺序表存储: #define MSXSIZE 12500 //假设非零元个数的最大值为200 #define MAXRC 10 //假定矩阵的最大行数为10 typedef struct { int mu ; //矩阵的行数 int nu ; //矩阵的列数 int tu ; //矩阵的非零元素个数 Triple data[MAXSIZE+1]; //非零元三元组表,data[0]没有用 int rpos[MAXRC+1]; //各行第一个非零元素的位置表 }Tabletype; 系统主要函数及功能如下: Menu( ):主控菜单,接收用户的选项; Input_Matrix( ):输入矩阵; Print_matrix( ):输出矩阵; Cal_matrix( ):计算矩阵每行第一个非零元在三元组中的位序号; TransposeMatrix( ):矩阵转置; Add_Matrix( ):矩阵加法运算;

东北大学大数据结构实践实验报告材料

实用文档 课程编号:B080109010 数据结构课程设计 总结报告 东北大学软件学院

第一章需求分析 1.1 建立主程序应用菜单选项 主程序应用菜单选项包含所实现的所有功能,并且对选项采用数字标识进行选择,对其他错误输入可以进行判别,提示输入错误。 1.2 导游线路图的创建级景区分布图的输出 用邻接链表存储景点分布图的信息,(带权无向)图的邻接链表。输出景区景点分布图(邻接矩阵)。图中边的权值∞用32767表示。 1.3 输出导游线路图 景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出一个入口景点,建立一个导游线路图,导游线路图用有向图表示。 1.4 输出导游线路图中是否有回路 景区旅游信息管理系统中,创建好导游路线图后,判断该图中是否存在回路。 1.5 查找及排序 ●查找功能:可以根据用户输入的关键字进行景点的查找,关键字可以在景点名称 也可以在景点介绍中。查找成功则返回景点的相关简介,如果查找不成功请给予正 确提示。 ●排序功能:按景点欢迎度,景点的岔路数对景点进行排序并打印出来排序顺序。 1.6 输出两个景点之间最短路径和最短距离 求出两个景点间的最短路径和最短距离,并且输出道路修建规划图。算法采用迪杰斯特拉算法。 1.7 输出道路修建规划图 道路建设首先要保证能连通所有景点,但又要花最小的代价。 1.8 输出车辆的进出信息 1.8.1 具体需求: 停车场是一个可以停放n辆汽车,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次排列,若车场内已停满n辆车,后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按

东北石油大学本科生课程设计报告

一、管输工艺课程设计的目的和意义 管输工艺是油气储运专业的一门主要专业课程。主要内容包括:输油管道勘察设计;等温及热油输送管道、顺序输送管道的工艺计算;热油管道的运行管理等内容。其中,等温管道和热油管道的设计是该门课程中的重点问题,但在课堂理论教学的过程中,学生参与实际设计计算的机会很少,为使学生真正掌握等温和热油管道的设计,在学生学习理论知识后,辅以实际问题的设计计算,是十分必要的。 通过课程设计环节的训练,使学生掌握油气储运领域中常规的工程设计的基本内容和方法。通过让学生根据管道实际里程高程、泵和加热炉等资料,综合运用所学的专业知识,进行等温管道和热油管道的设计,以培养学生理论联系实际、分析问题、解决问题和充分利用计算机技术进行工程设计的能力。

二、石油管道概述 (一)石油管道的特点 石油管道(也称管线、管路)是由油管及其附件所组成,并按照工艺流程的需要,配备相应的油泵机组,设计安装成一个完整的管道系统,用以完成油料接卸及转输任务。 管道运输是原油和成品油最主要的运输方式。与铁路运输、公路运输、水运相比,管道运输具有以下特点: (1)运输量大。一条管径720mm管道年输油量约20×106t,1220mm管道年输油量约100×106t,分别相当于一条铁路及两条双轨铁路的年运输量。 (2)管道大部分埋设于地下,占地少,受地形地物的限制少,可以缩短运输距离。 (3)密闭安全,能够长期连续稳定运行。管道输油受恶劣气候的影响小,无噪音,油气损耗小,对环境污染少。 (4)便于管理,易于实现远程集中监控。现代化管道运输系统的自动化程度很高,劳动生产率高。 (5)能耗少,运费低。在美国,管道输油的能耗约为铁路运输的1/3~1/7,是路上运输中输油成本最低。 (6)适用于大量、单项、定点运输石油等流体货物。不如车、船等运输灵活、多样。 (二)石油管道的发展概况 原油及成品油的运输有公路、铁路、水运、和管道输送这四种方式。由于与其他几种相比,管道输送有其特点和突出的优越性,使管道输送成为运输原油及其产品的理想方式。 管道运输的发展与能源工业,特别是石油工业的发展密切相关。现代管道运输始于19世纪中叶。1865年在美国宾夕法尼亚州建成第一条原油管道,直径50mm,管长近10km。20世纪初管道运输才有进一步发展,但真正具有现代规模的长距离输油管道则始于第二次世界大战。当时,美国因战争需要,建设了两条当时管径最大、距离最长的输油管道。一条是原油管道,管径为600mm,全长2158km,日输原油47700m3;另一条是成品油管道,管径500mm,包括支线

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

数据结构试题 一、单选题 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,

东北大学数据结构实践实验报告

课程编号:B080109010 数据结构课程设计 总结报告 东北大学软件学院

第一章需求分析 1.1建立主程序应用菜单选项 主程序应用菜单选项包含所实现的所有功能,并且对选项采用数字标识进行选择,对其他错误输入可以进行判别,提示输入错误。 1.2导游线路图的创建级景区分布图的输出 用邻接链表存储景点分布图的信息,(带权无向)图的邻接链表。输出景区景点分布图(邻接矩阵)。图中边的权值∞用32767表示。 1.3输出导游线路图 景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出一个入口景点,建立一个导游线路图,导游线路图用有向图表示。 1.4输出导游线路图中是否有回路 景区旅游信息管理系统中,创建好导游路线图后,判断该图中是否存在回路。 1.5查找及排序 ●查找功能:可以根据用户输入的关键字进行景点的查找,关键字可以在景点名称也 可以在景点介绍中。查找成功则返回景点的相关简介,如果查找不成功请给予正确 提示。 ●排序功能:按景点欢迎度,景点的岔路数对景点进行排序并打印出来排序顺序。 1.6输出两个景点之间最短路径和最短距离 求出两个景点间的最短路径和最短距离,并且输出道路修建规划图。算法采用迪杰斯特拉算法。 1.7输出道路修建规划图 道路建设首先要保证能连通所有景点,但又要花最小的代价。 1.8输出车辆的进出信息 1.8.1具体需求: 停车场是一个可以停放n辆汽车,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次排列,若车场内已停满n辆车,后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按

相关文档
最新文档