树形结构练习题

树形结构练习题
树形结构练习题

选择题答案:1.C 3.B 4.B

5.A

6.B

7.B

8.B

9.D 12.D 14.C 15.B 17.C 18.A 19C 20 A 21.C 22 D 23C 26 C 27 C

7.1选择题

2.设无向图的顶点个数为n,则该图最多有( B )条边。

A)n-1 B)n(n-1)/2 C)n(n+1)/2 D)n2

3.连通分量指的是(B )

A)无向图中的极小连通子图

B)无向图中的极大连通子图

C)有向图中的极小连通子图

D)有向图中的极大连通子图

4.n个结点的完全有向图含有边的数目(D )

A)n*n B)n(n+1)C)n/2 D)n*(n-1)

6.有向图中一个顶点的度是该顶点的( C )

A)入度B)出度C)入度与出度之和D)(入度+出度)/2

7.有e条边的无向图,若用邻接表存储,表中有(B )边结点。

A)e B)2e C)e-1 D)2(e-1)

8.实现图的广度优先搜索算法需使用的辅助数据结构为(B )

A)栈B)队列C)二叉树D)树

10.存储无向图的邻接矩阵一定是一个( C )

A)上三角矩阵B)稀疏矩阵C)对称矩阵D)对角矩阵

11.在一个有向图中所有顶点的入度之和等于出度之和的(B)倍

A)1/2 B)1 C)2 D)4

12.在图采用邻接表存储时,求最小生成树的Prim 算法的时间复杂度为(B )

A)O(n) B)O(n+e) C)O(n2) D)O(n3)

14.具有10个顶点的无向图至少有多少条边才能保证连通(A )

A)9 B)10 C)11 D)12

15.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( D )

A)e B)2e C)n2-e D)n2-2e

7.2填空题

1.无向图中所有顶点的度数之和等于所有边数的______2_______倍。

2.具有n个顶点的无向完全图中包含有__n(n-1)/2___________条边,具有n个顶点的有向完全图中包含有___n(n-1)__________条边。

3.一个具有n个顶点的无向图中,要连通所有顶点则至少需要___n-1____________条边。

4.假定一个图具有n个顶点和e条边,则采用邻接矩阵、邻接表表示时,其相应的空间复杂度分别为______ O(n2)______和___O(n+e) __________。

5.对用邻接矩阵表示的图进行任一种遍历时,其时间复杂度为____ O(n2) ____________,对用邻接表表示的图进行任一种遍历时,其时间复杂度为_______ O(e _______。

6.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别为_____ e ________和______2 e _______条。

7.在有向图的邻接表和逆邻接表表示中,每个顶点的边链表中分别链接着该顶点的所有___出边__________和___入边__________结点。

9.对于一个具有n个顶点和e条边的连通图,其生成树中的顶点数和边数分别为____ n _________和_________ n -1____。

11.针对下图所示的连通网络,试按如下格式给出在Kruscal算法构造最小生成树过程中顺序选出的各条边。

【答案】设边的信息表示为(始点,终点,权值),则在Kruscal算法构造最小生成树过程中顺序选出的各条边为:(3 ,5,1),(2,4,2),(1,5,3),(1,2,3)。

7.3判断题

1.图是一种非线性结构,所以只能用链式存储。(×)

2.图的最小生成树是唯一的。(×)

3.如果一个图有n个顶点和小于n-1 条边,则一定是非连通图。(√)

4.有n-1 条边的图一定是生成树。(×)

5.用邻接矩阵表示图时,矩阵元素的个数与顶点个数相关,与边数无关。(√)

7.逆邻接表只能用于有向图,邻接表对于有向图和无向图的存储都适用。(√)

11.图的邻接矩阵存储是唯一的,邻接表存储也是唯一的。(×)

13.任意一个图都是其自身的子图。(√)

14.一个无向连通图的生成树是含有该连通图的全部顶点的极大连通子图。(×)

7.4应用题

1.设有一有向图为G=(V,E)。其中,V={ v1, v2, v3, v4, v5},E={, , , , , , },请画出该有向图并判断是否是强连通图。

答:该有向图是强连通图,表示如下

2.画出1个顶点、2个顶点、3个顶点、4个顶点和5个顶点的无向完全图。并说明在n个顶点的无向完全图中,边的条数为n(n-1)/2。

3.对n个顶点的无向图G,采用邻接矩阵表示,如何判别下列有关问题:

(1)图中有多少条边?

答:无向图的邻接矩阵是对称的,故它的边数应是上三角或下三角的非0元个数

(2)任意两个顶点i和j是否有边相连?

答:邻接矩阵中如果第i行第j列的元素非0则表示顶点i与顶点j相连。

(3)任意一个顶点的度是多少?

答:任意一个顶点vi的度是第i行或第i列上非0元的个数。

4.熟悉图的存储结构,画出下面有向图的邻接矩阵、邻接表、逆邻接表、十字链表。写出邻接表表示的图从顶点A出发的深度优先遍历序列和广度优先遍历序列。

邻接矩阵如下:

,邻接表如下:

,逆邻接表如下:

,十字链表如下:

5.已知下面是某无向图的邻接表,画出该无向图,并分别给出从A出发的深度优先搜索生成树和广度优先搜索生成树。

答:该无向图如下所示:

6.请分别用Prim算法和Kruskal算法构造以下网络的最小生成树。

9.给定带权有向图G和源点v1,利用迪杰斯特拉(Dijkstra)算法求从v1到其余各顶点的最短路径。

10.利用Floyd算法求下图中各对顶点之间的路径。

数据结构实验答案1

重庆文理学院软件工程学院实验报告册 专业:_____软件工程__ _ 班级:_____软件工程2班__ _ 学号:_____201258014054 ___ 姓名:_____周贵宇___________ 课程名称:___ 数据结构 _ 指导教师:_____胡章平__________ 2013年 06 月 25 日

实验序号 1 实验名称实验一线性表基本操作实验地点S-C1303 实验日期2013年04月22日 实验内容1.编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。 2.编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。 3.编程序实现将单链表的数据逆置,即将原表的数据(a1,a2….an)变成 (an,…..a2,a1)。(单链表的数据域数据类型为一结构体,包括学生的部分信息:学号,姓名,年龄) 实验过程及步骤1. #include #include #include #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define ElemType int #define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/ typedef struct

{ ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/ int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/ }SeqList; #include "common.h" #include "seqlist.h" void px(SeqList *A,int j); void main() { SeqList *l; int p,q,r; int i; l=(SeqList*)malloc(sizeof(SeqList)); printf("请输入线性表的长度:"); scanf("%d",&r); l->last = r-1; printf("请输入线性表的各元素值:\n"); for(i=0; i<=l->last; i++) { scanf("%d",&l->elem[i]); } px(l,i); printf("请输入要插入的值:\n");

数据结构实验报告七查找、

云南大学软件学院数据结构实验报告 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 学期:2010秋季学期 任课教师: 实验题目: 查找算法设计与实现 姓名: 王辉 学号: 20091120154 电子邮件: 完成提交时间: 2010 年 12 月 27 日

云南大学软件学院2010学年秋季学期 《数据结构实验》成绩考核表 学号:姓名:本人承担角色: 综合得分:(满分100分) 指导教师:年月日(注:此表在难度为C时使用,每个成员一份。)

(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) 1 哈希表查找。根据全年级学生的姓名,构造一个哈希表,选择适当的哈希函数和解决冲突的方法,设计并实现插入、删除和查找算法。 熟悉各种查找算法的思想。 2、掌握查找的实现过程。 3、学会在不同情况下运用不同结构和算法求解问题。 4 把每个学生的信息放在结构体中: typedef struct //记录 { NA name; NA tel; NA add; }Record; 5 void getin(Record* a)函数依次输入学生信息 6 人名折叠处理,先将用户名进行折叠处理折叠处理后的数,用除留余数法构造哈希函数,并返回模值。并采用二次探测再散列法解决冲突。 7姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。将初始班级的通讯录信息存入文件。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 1抽象数据类型的功能规格说明和结构体: #include

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 6.0上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>//头文件 #include//库头文件-----动态分配内存空间 typedef int elemtype;//定义数据域的类型 typedef struct linknode//定义结点类型 { elemtype data;//定义数据域 struct linknode *next;//定义结点指针 }nodetype; 2)创建单链表

nodetype *create()//建立单链表,由用户输入各结点data域之值,//以0表示输入结束 { elemtype d;//定义数据元素d nodetype *h=NULL,*s,*t;//定义结点指针 int i=1; cout<<"建立一个单链表"<> d; if(d==0) break;//以0表示输入结束 if(i==1)//建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));//表示指针h h->data=d;h->next=NULL;t=h;//h是头指针 } else//建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t始终指向生成的单链表的最后一个节点

数据结构实验七图的创建与遍历

实验七图的创建与遍历 实验目的: 通过上机实验进一步掌握图的存储结构及基本操作的实现。 实验内容与要求: 要求: ⑴能根据输入的顶点、边/弧的信息建立图; ⑵实现图中顶点、边/弧的插入、删除; ⑶实现对该图的深度优先遍历; ⑷实现对该图的广度优先遍历。 备注:单号基于邻接矩阵,双号基于邻接表存储结构实现上述操作。算法设计: #include #include #define INFINITY 32767 #define MAX_VEX 20 //最大顶点个数 #define QUEUE_SIZE (MAX_VEX+1) //队列长度 using namespace std; bool *visited; //访问标志数组 //图的邻接矩阵存储结构 typedef struct{ char *vexs; //顶点向量 int arcs[MAX_VEX][MAX_VEX]; //邻接矩阵 int vexnum,arcnum; //图的当前顶点数和弧数 }Graph; //队列类 class Queue{ public: void InitQueue() { base=(int *)malloc(QUEUE_SIZE*sizeof(int)); front=rear=0;

. } void EnQueue(int e) { base[rear]=e; rear=(rear+1)%QUEUE_SIZE; } void DeQueue(int &e) { e=base[front]; front=(front+1)%QUEUE_SIZE; } public: int *base; int front; int rear; }; //图G中查找元素c的位置 int Locate(Graph G,char c) { for(int i=0;i

数据结构实验报告-答案

数据结构(C语言版) 实验报告

专业班级学号姓名 实验1 实验题目:单链表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤: 1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测 试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序: (1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码: #include"" #include"" #include"" #include"" typedef struct node . . 示意图:

head head head 心得体会: 本次实验使我们对链表的实质了解更加明确了,对链表的一些基本操作也更加熟练了。另外实验指导书上给出的代码是有一些问题的,这使我们认识到实验过程中不能想当然的直接编译执行,应当在阅读并完全理解代码的基础上再执行,这才是实验的意义所在。

实验2 实验题目:二叉树操作设计和实现 实验目的: 掌握二叉树的定义、性质及存储方式,各种遍历算法。 实验要求: 采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历 的操作,求所有叶子及结点总数的操作。 实验主要步骤: 1、分析、理解程序。 2、调试程序,设计一棵二叉树,输入完全二叉树的先序序列,用#代表虚结点(空指针), 如ABD###CE##F##,建立二叉树,求出先序、中序和后序以及按层次遍历序列,求 所有叶子及结点总数。 实验代码 #include"" #include"" #include"" #define Max 20 ertex=a; irstedge=NULL; irstedge; G->adjlist[i].firstedge=s; irstedge; R[i] 留在原位

公司部门岗位职责和组织机构树

公司部门岗位职责和组织机构树 一、公司的组织结构 董事长(总经理)工作职责 一、董事长对董事会负责。 二、召集和组织召开董事会会议,决定聘用各部门以及各二级机构高管人员。对 认为不能胜任本岗位工作的高管建议行政人事部解聘,换岗直至解除劳动合同。 三、召集和组织召开董事会会议,审议和批准各部门副总提交的工作计划、工作 总结。 四、召集和组织召开董事会会议,决定公司投资、增资、减资等重大事项;审议 和批准总经理提交的重大经营决策、方案、资金借款等。批准年度财务报表、收支预算、年度利润分配方案;研究和决定各部门以及各二级机构总经理和副总提出的其他重大问题。

五、对公司的经营活动、内部管理及执行董事会决议的落实和执行情况进行监 督、检查。 六、对危害公司形象、利益,失职、营私舞弊等行为及时进行处理,对造成重大 损失的进行责任认定,进行处理和处罚。 七、对公司的日常经营活动、管理措施提供参考意见。 八、对公司的资金、财产进行有效管理,保证公司财产安全。 九、签署对外上报、印发的各种重要报表、文件、资料。 十、拥有设立和拆除公司分支机构的决定权。 各部门副总经理工作职责 一、副总经理在公司董事长安排下工作,具体负责公司分配的本部门相关业务工 作的执行和实施及处理日常工作。 二、负责组织编制、完善本部门各项管理制度,加强公司员工队伍建设工作。 三、认真执行分管业务,并且及时回报事情办理的结果和执行状况。 四、严格执行公司规章制度,对分管业务范围内工作人员进行管理,督促工作人 员办理事务,对自己不能处理或不能及时处理的事项及时向董事长汇报。 五、负责公司本部门管理规范化工作、管理得失的总结及经验推广; 六、参与选聘、任用主管部门各岗位人选;负责考核下属各部门及岗位的工作绩 效;审核员工的奖、惩标准及方案。 七、对内负责处理下属部门与公司其他部门之间的协作关系,对外做好相关外联 工作。 八、参与公司重大投资决策,拟订公司相关计划、制度等。 九、定期或不定期向董事长汇报业务工作。

数据结构实验报告(2015级)及答案

数据结构实验报告(2015级)及答案

《数据结构》实验报告 专业__信息管理学院______ 年级__2015级___________ 学号___ _______ 学生姓名___ _ _______ 指导老师____________ 华中师范大学信息管理系编

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。 II 实验内容 实验一线性表 【实验目的】 1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。 2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。 3.熟练掌握线性表的综合应用问题。 【实验内容】 1.一个线性表有n个元素(n

的顺序不变。设计程序实现。要求:采用顺序存储表示实现;采用链式存储表示方法实现;比较两种方法的优劣。 2. 从单链表中删除指定的元素x,若x在单链表中不存在,给出提示信息。 要求: ①指定的值x由键盘输入; ②程序能处理空链表的情况。 3.设有头结点的单链表,编程对表中的任意值只保留一个结点,删除其余值相同的结点。 要求: ①该算法用函数(非主函数)实现; ②在主函数中调用创建链表的函数创建一个单链表, 并调用该函数,验证算法的正确性。 LinkedList Exchange(LinkedList HEAD,p)∥HEAD是单链表头结点的指针,p是链表中的一个结点。本算法将p所指结点与其后 继结点交换。 {q=head->next;∥q是工作指针,指向链表中当前待处理结点。 pre=head;∥pre是前驱结点指针,指向q的前驱。 while(q!=null && q!=p){pre=q;q=q->next;} ∥

B+ 树的组织结构

B+ 树的组织结构 1、B+树索引的总体结构 ①B+树索引是一个多级索引,但是其结构不同于多级顺序索引; ②B+树索引采用平衡树结构,即每个叶结点到根的路径长度都相同; ③每个非叶结点有到n个子女,n对特定的树是固定的; ④B+树的所有结点结构都相同,它最多包含n-1个搜索码值K1、K2、…、Kn-1,以及n个指针P1、P2、…、Pn,每个结点中的搜索码值按次序存放,即如果i

数据结构集中上机实验报告

XX大学 信息与计算科学专业 2008级《数据结构》集中上机 设计题目:迷宫求解(非递归求解)设计时间:2010-2011学年第一学期

目录 一、实验内容 (2) 二、需求分析 (2) 三、总体设计 (2) (一)存储结构 (2) (二)流程图 (3) 四、详细设计 (3) (一)基本算法解析 (3) (二)为实现算法,需要的象的数据类型 (4) (三)函数的调用关系 (5) (四)算法时间、空间复杂度 (5) 五、代码 (5) 六、运行结果分析 (10) (一)迷宫路径探索成功 (10) (二)迷宫路径未找到的情况 (13) (三)程序的优缺点与改进 (13) 七、参考文献 (14) 八、心得体会 (14)

一、实验内容 任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出。 二、需求分析 1、可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;要求使用非递归算法。 2、用户可以根据自己的需求进行输入所需的迷宫,其中1表示迷宫的墙壁,0表示迷宫的通路,从而建立迷宫。 3、可以自行输入迷宫的入口和出口坐标。 4、程序执行的命令包括: (1)构造栈函数。其中包括了构造空栈InitStack;压入新数据元素Push;栈顶元素出栈Pop。 (2)构造求迷宫路径函数。其中定义了二维数组maze[M][N]存取迷宫数据;输出找到的通路MazePath。 (3)建立一个迷宫initmaze。其中包括输入迷宫行数列数以及各行各列;加一圈围墙并输出迷宫。 三、总体设计 (一)存储结构: 首先用二维数组存储迷宫数据,迷宫数据由用户输入。 一个以链表结构作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)形式输出,其中(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向(东南西北所用代表数字,自行定义)。 1.从入口出发,顺着某一个方向进行探索,若能走通,继续往前走,否则沿原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到但没能到达出口,则所设置的迷宫没有通路。 迷宫的入口点的下标(a,b),出口点的下标(m,n)。为方便,可在迷宫周围加一周障碍。对于迷宫的任意位置,均可约定有东西南北4个方向可以走通。经过的位置把0变成-1,输出迷宫路径。 2本程序有三个模块; (1)主程序模块 (2)三个模块即其对象,实现栈链表抽象数据类型 (3)迷宫存储迷宫,寻路径,输出迷宫。

数据结构实验报告图实验

邻接矩阵的实现 1. 实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现2. 实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历3.设计与编码MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; }

int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: " cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } }

《数据结构》2012级实验报告模板..

实验报告(一) 一、实验目的: 1.掌握VC6.0开发环境下C/C++程序的编辑、编译和运行。 2.通过实验回顾复习C语言中关于结构体、指针等知识的应用。 3.了解学习数据结构的主要方法和课程的主要知识框架。 二、实验环境: 个人电脑、Windows XP、VC6.0或以上版本。 三、实验内容、程序代码、程序测试运行界面 1.设计一个程序,输出所有小于等于n(n为一个大于2的正整数)的素数。要求:(1)每行输出10个素数;(2)尽可能采用较优的算法。 2.编写一个程序,计算任一输入的正整数的各位数字之和,并分析算法的时间复杂度。

3.编写一个程序,判断一个字符串是否为“回文”(顺读和倒读都一样的字符串称为“回文”),并分析算法的时间复杂度。 四、心得体会与建议

实验报告(二) 一、实验目的: 1.熟练掌握线性表的顺序存储结构的概念及各种基本操作的C语言实现。 2.熟练掌握线性表的链式存储结构中的单链表的概念及各种基本操作的C 语言实现。 3.了解双向链表及循环链表的基本操作。 二、实验环境: 个人电脑、Windows XP、VC6.0或以上版本。 三、实验内容、程序代码、程序测试运行界面 1.编写一个程序,实现顺序表的各种基本运算(假设顺序表的元素类型为char),并在此基础上设计一个程序完成如下功能: (1)初始化顺序表L; (2)采用尾插法依次插入元素a,b,c,d,e; (3)输出顺序表L; (4)输出顺序表L长度; (5)判断顺序表L是否为空; (6)输出顺序表L的第3个元素; (7)输出元素a的位置; (8)在第4个位置上插入元素f; (9)输出顺序表L; (10)删除L的第3个元素; (11)输出顺序表L; (12)释放顺序表L。 程序代码如下:

数据结构实验报告及心得体会

2011~2012第一学期数据结构实验报告 班级:信管一班 学号:201051018 姓名:史孟晨

实验报告题目及要求 一、实验题目 设某班级有M(6)名学生,本学期共开设N(3)门课程,要求实现并修改如下程序(算法)。 1. 输入学生的学号、姓名和 N 门课程的成绩(输入提示和输出显示使用汉字系统), 输出实验结果。(15分) 2. 计算每个学生本学期 N 门课程的总分,输出总分和N门课程成绩排在前 3 名学 生的学号、姓名和成绩。 3. 按学生总分和 N 门课程成绩关键字升序排列名次,总分相同者同名次。 二、实验要求 1.修改算法。将奇偶排序算法升序改为降序。(15分) 2.用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)) 3.编译、链接以上算法,按要求写出实验报告(25)。 4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。 5.用A4纸打印输出实验报告。 三、实验报告说明 实验数据可自定义,每种排序算法数据要求均不重复。 (1) 实验题目:《N门课程学生成绩名次排序算法实现》; (2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性; (3) 实验要求:对算法进行上机编译、链接、运行; (4) 实验环境(Windows XP-sp3,Visual c++); (5) 实验算法(给出四种排序算法修改后的全部清单); (6) 实验结果(四种排序算法模拟运行后的实验结果); (7) 实验体会(文字说明本实验成功或不足之处)。

三、实验源程序(算法) Score.c #include "stdio.h" #include "string.h" #define M 6 #define N 3 struct student { char name[10]; int number; int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/ }stu[M]; void changesort(struct student a[],int n,int j) {int flag=1,i; struct student temp; while(flag) { flag=0; for(i=1;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1; } for(i=0;ia[i+1].score[j]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; flag=1;

安全生产管理组织机构树状图

安全生产管理组织机构树状图 安全管理组织机构职能分配 项目经理的安全生产职责 1、项目经理是本工程项目安全生产的第一责任人,对本工程项目的劳动保护和安全生产负全面领导责任。认真执行“安全第一,预防为主”的方针。严格按安全生产规章制度和单位工程安全技术措施执行。 2、支持贯彻落实国家、地方、行业的安全生产方针、政策、法规、标准和各项规章制度;主持贯彻执行上级有关按目前生产文件、通知的工作。加强对项目部职工的安全意识教育和遵章守纪教育,组织对

新工人的进场三级安全教育,提高职工的自我防护能力。 3、支持建立工程项目的安全生产保证体系和主持制定相应的各项安全生产管理标准、制度、办法和实施细则,并主持监督其实施。 4、主持制定月安全生产计划,组织各有关人员解决实施安全生产计划的有关问题,并主持监督其实施。 5、支持定期的安全生产检查和研究解决存在的问题。 6、主持安全生产领导小组的工作。支持、督促项目部有关人员执行安全生产责任制,及时听取安全人员的意见。制止违章指挥和违章作业。 7、定期召开安全会议,研究解决当前安全生产中的问题和改进措施,组织领导经常性的安全检查和对安全设施使用前的检查、验收。及时消除事故隐患。 8、主持对重大安全伤亡事故的及时上报、调查、处理、善后、制定和落实整改措施的工种,不得有任何的隐瞒、虚报和拖延不报情况发生。 项目技术负责人的安全生产职责 1、对本工程项目的劳动保护和安全生产的技术工作负全面领导责任。 2、支持贯彻国家、地方和行业有关的安全技术法规和标准,支持本工程项目安全技术标准的编制和审定工作。 3、支持重大项目的安全技术和改善劳动条件问题的研究并审定安全生产决策中的技术可靠性。 4、在主持组织编制和审定施工方案、技术措施以及采用新技术、新工艺、新设备的同时,主持组织并参与编制和审定相应的安全生产技术措施。 5、主持对职工进行安全教育和培训的工作,主持重要项目的安全技术交底工作。 6、负责提出安全技术项目和实施措施,并检查其实施情况,组织定期检查并及时解决安全生产工作中所存在的技术问题。

数据结构上机实验答案

《数据结构实验指导书》答案 实验一: 1、请编写函数int fun(int *a, int *b),函数的功能是判断两个指针a和b所指存储单元的值 的符号是否相同;若相同函数返回1,否则返回0。这两个存储单元中的值都不为0。在主函数中输入2个整数、调用函数fun、输出结果。 #include int fun(int *a, int *b) { if (*a*(*b)>0) return(1); else return(0); } main() { int x,y; scanf("%d%d",&x,&y); if (fun(&x,&y)) printf("yes\n"); else printf("no"); } 2、计算1+2+3+……+100,要求用指针进行设计。即设计函数int fun(int *n)实现求 1+2+3+……+*n,在主函数中输入、调用、输出结果。 #include int fun(int *n) { int i,sum=0; for (i=1;i<=*n;i++) sum+=i; return(sum); } main() { int x,sum; scanf("%d",&x); printf("the sum is %d\n",fun(&x)); } 3、函数的功能是求数组a中最大数的位置(位序号)。在主函数中输入10个整数、调用函

数fun、输出结果。 #define N 10 #include void input(int *a,int n) { int i; for (i=0;i*max) max=a+i; return(max-a); } main() {int a[N],maxi; input(a,N); maxi=fun(a,N); printf("\n the max position is %d\n",maxi); } 4、请编写函数fun(int *a,int n, int *odd, int *even),函数的功能是分别求出数组a中所有奇数之和和所有偶数之和。形参n给出数组中数据的个数;利用指针odd和even分别返回奇数之和和偶数之和。在主函数中输入10个整数、调用函数fun、输出结果。 #define N 10 #include void input(int *a,int n) { int i; for (i=0;i

安全生产管理组织机构树状图

会理县虫元水库等13座病险水库除险加固工程(第二批)(会理县槽子田水库) 安全生产管理机构及职能 分配文件 编制人: 审核人: 编制单位:四川省华龙建筑工程有限责任公司 编制时间:2019年03月10日

安全生产管理组织机构树状图

安全管理组织机构职能分配 项目经理的安全生产职责 1、项目经理是本工程项目安全生产的第一责任人,对本工程项目的劳动保护和安全生产负全面领导责任。认真执行“安全第一,预防为主”的方针。严格按安全生产规章制度和单位工程安全技术措施执行。 2、支持贯彻落实国家、地方、行业的安全生产方针、政策、法规、标准和各项规章制度;主持贯彻执行上级有关按目前生产文件、通知的工作。加强对项目部职工的安全意识教育和遵章守纪教育,组织对新工人的进场三级安全教育,提高职工的自我防护能力。 3、支持建立工程项目的安全生产保证体系和主持制定相应的各项安全生产管理标准、制度、办法和实施细则,并主持监督其实施。 4、主持制定月安全生产计划,组织各有关人员解决实施安全生产计划的有关问题,并主持监督其实施。 5、支持定期的安全生产检查和研究解决存在的问题。 6、主持安全生产领导小组的工作。支持、督促项目部有关人员执行安全生产责任制,及时听取安全人员的意见。制止违章指挥和违章作业。 7、定期召开安全会议,研究解决当前安全生产中的问题和改进措施,组织领导经常性的安全检查和对安全设施使用前的检查、验收。及时消除事故隐患。 8、主持对重大安全伤亡事故的及时上报、调查、处理、善后、制定和落实整改措施的工种,不得有任何的隐瞒、虚报和拖延不报情况发生。 项目技术负责人的安全生产职责 1、对本工程项目的劳动保护和安全生产的技术工作负全面领导责任。

《数据结构》实验一

华北水利水电大学数据结构实验报告 2017~2018学年第二学期2017级计算机科学与技术(专升本)专业班级:学号:姓名: 实验一线性表及其应用 一、实验目的: 1.掌握用C/C++语言调试程序的基本方法。 2.掌握线性表的基本运算,如插入、删除等。 二、实验内容: 1.编写一个程序,实现顺序表的各种基本运算,在此基础上完成如下功能: (1)初始化顺序表L。 (2)依次在顺序表L中插入元素a、b、c、e。 (3)输出顺序表L。 (4)输出顺序表L的长度。 (5)输出顺序表L的第3个元素。 (6)输出元素a的位置。 (7)在第4个元素之前插入元素f。 (8)输出顺序表L。 (9)删除第3个元素。 (10)输出顺序表L。 2.编写一个程序,实现以下功能,L1=(x1,x2,…,x n),L2=(y1,y2,…,y m),它们是两个线性表(L1和L2中的值都不重复),采用带头结点的单链表存储,设计一个算法合并L1和L2,结果存放在线性表L3中,要求如下: L3=(x1,y1,x2,y2,…,x m,y m,x m+1,…,x n) 当m n时 L3=(x1,y1,x2,y2,…,x n,y n,y n+1,…,y m) 当m>n时 L3仍采用单链表存储,算法的空间复杂度为O(1)。 (1)建立两个单链表L1和L2并输出。 (2)将合并L1和L2为L3。 (3)输出单链表L3。 三、实验要求: 1.完成程序设计并上机调试通过。 2.撰写实验报告,提供实验结果和数据。 3.写出算法设计小结和心得。 四、程序源代码: 五、程序运行情况(采用截图方式给出运行结果)

六、小结(包括收获、心得体会、存在的问题及解决问题的方法、建议等) 注:内容一律使用宋体五号字,单倍行间距

组织结构图

WORD中插入组织结构图 在WORD中可能会用到组织图,也就是我们平时所见的树形结构。WORD中可以简单插入。 最简单的结构如下图 其中包括同事,下属,助手三种关系:副总裁为执行官的下属,之间互为同事;职能职员为执行官的助手。 下面开始制作一个关系图。 ★添加组织结构图 1.在“绘图”工具栏上,单击“插入组织结构图或其他图示”的图标(或单击菜单栏的“插入”——“图示”),弹出“图示库”窗口,选择“组织结构图”,再单击“确定”按钮,则在文档中光标所定位的位置上将自动插入默认的组织结构图,并弹出“组织结构图”工具栏。 2.若要向一个形状中添加文字,请用鼠标右键单击该形状,单击“编辑文字”并键入文字,但无法向组织结构图中的线段或连接符添加文字。 3.若要添加形状,请选择要在其下方或旁边添加新形状的形状,单击“组织结构图”工具栏上“插入形状”按钮上的箭头,再单击下列一个或多个选项: ●助手:使用肘形连接符将新的形状放置在所选形状之下。 ●同事:将形状放置在所选形状的旁边并连接到同一个上级 (上级形状:该形状在组织结构图中处于上层,并与职员(下属或合作者形状)或助理形状等任一其他形状相连。)形状上。 ●下属:将新的形状放置在下一层并将其连接到所选形状上。

4.若要添加预设的设计方案,请单击“组织结构图”工具栏上的“自动套用格式”,再从“组织结构图样式库”中选择一种样式。 ★组织结构图的修改 ●选择要修改的组织结构图,右单击并选择“设置组织结构图格式”(或点击菜单栏的“格式”——“组织结构图”),打开“设置组织结构图格式”窗口,可以设置组织结构图的颜色与线条、大小、环绕方式等 ●点击“组织结构图”工具栏上的“版式”,或以设置组织结构图的悬挂方式。 ★删除组织结构图 单击要删除的组织结构图或图示,单击该图形的边界,再按Delete。 ★横向组织结构图 网上找了半天也没找到有关横向组织结构图的做法,自己总结了一点,有点麻烦,希望对大家有点用 实战说明吧,做如下图的组织结构图 1.先按纵向的做好 向下添加的时候,先指定级别(方框),然后依次添加下属。或者点某一级下属添加同事是一样的效果,可以一试同事、助手、下属的关系和区别。此时应注意,版式--自动版式应该处于选中状态,有利于看清楚关系

数据结构实验报告图实验

图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ } void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; int vertexNum, arcNum; }; #endif #include using namespace std; #include "" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0;

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

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

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

数据结构实验报告(2012级)

《数据结构》实验报告 专业_____________ 年级_____________ 学号_____________ 学生姓名_____________ 指导老师_____________ 华中师范大学信息管理系编

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。 II 实验内容 实验一线性表 【实验目的】 1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。 2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。 3.熟练掌握线性表的综合应用问题。 【实验内容】 1.一个线性表有n个元素(n

相关文档
最新文档