当前位置:文档之家› 实验10 图的拓扑排序问题,蓝礼巍

实验10 图的拓扑排序问题,蓝礼巍

实验10 图的拓扑排序问题,蓝礼巍
实验10 图的拓扑排序问题,蓝礼巍

浙江大学城市学院实验报告

课程名称数据结构与算法

实验项目名称实验十图的拓扑排序问题

学生姓名蓝礼巍专业班级学号

实验成绩指导老师(签名)日期

一.实验目的和要求

1.掌握拓扑排序概念。

2.理解并能实现拓扑排序算法(采用邻接表表示图)。

二. 实验内容

1、编写用邻接表表示有向无权图时图的基本操作的实现函数,主要包括:

①初始化用邻接表表示的有向无权图void InitAdjoin(adjlist G);②建

立用邻接表表示的有向无权图void CreateAdjoin (adjlist G, int n)(即通过输入图的每条边建立图的邻接表); ③输出用邻接表表示的有向无权图void PrintAdjoin (adjlist G, int n)(即输出图的每条边)。把邻接表的结构定义以及这些基本操作实现函数存放在头文件Graph3.h中。

2、编写拓扑排序算法void Toposort( adjlist G, int n) (输入为图的

邻接表,输出为相应的拓扑序列)。

3、编写测试程序(即主函数),首先建立并输出有向无权图,然后进行拓

扑排序。

要求:把拓扑排序函数Toposort以及主函数存放在文件test10.cpp 中。

4、填写实验报告,实验报告文件取名为report10.doc。

5、上传实验报告文件report10.doc与源程序文件test10.cpp及Graph3.h

到Ftp服务器上自己的文件夹下。

提示:

邻接表边结点结构定义:

typedef struct Node{

int adjvex; //邻接点

struct Node *next; //指向下一个结点的指针

} EdgeNode;

邻接表定义:

typedef EdgeNode *AdjList[MAXVEXNUM];

测试数据如下:

三. 函数的功能说明及算法思路

包括每个函数的功能说明,及一些重要函数的算法实现思路

四. 实验结果与分析

包括运行结果截图等

五. 心得体会

记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。

【附录----源程序】

Cpp

#include

#include

#include

#include

#include

typedef int VertexType;

typedef int WeightType;

const int MaxVertexNum=20;

typedef struct Node{

int adjvex; //邻接点

struct Node *next; //指向下一个结点的指针

} edgenode;

typedef edgenode *adjlist[MaxVertexNum];

#include"test10.h"

void Toposort( adjlist G, int n)//编写拓扑排序算法{

int i,j,k,top,m=0;

edgenode *p;

int *d=new int[n];

for(i=0;i

d[i]=0;

for(i=0;i

{

p=G[i];

while(p!=NULL)

{

j=p->adjvex;

d[j]++;

p=p->next;

}

}

top=-1;

for(i=0;i

if(d[i]==0)

{

d[i]=top;

top=i;

}

while(top!=-1)

{

j=top;

top=d[top];

cout<

m++;

p=G[j];

while(p!=NULL)

{

k=p->adjvex;

d[k]--;

if(d[k]==0)

{

d[k]=top;

top=k;

}

p=p->next;

}

}

cout<

if(m

cout<<"The network has a cycle!"<

delete []d;

}

void main()

{

char

str[100]="{(0,2),(1,2),(1,3),(1,4),(2,3),(2,5),(3,5),(4,5)}";

adjlist g;

InitAdjoin(g);

int n=6;

CreateAdjoin (g, n,str);

cout<<"邻接表表示的有向无权图为:"<

PrintAdjoin (g,n);

cout<<"拓扑排序为:"<

Toposort( g,n);

}

H

/*1、编写用邻接表表示有向无权图时图的基本操作的实现函数,

主要包括:①初始化用邻接表表示的有向无权图 void InitAdjoin(adjlist

G);

②建立用邻接表表示的有向无权图 void CreateAdjoin (adjlist G, int n) (即通过输入图的每条边建立图的邻接表);

③输出用邻接表表示的有向无权图void PrintAdjoin (adjlist G, int n) (即输出图的每条边)。

把邻接表的结构定义以及这些基本操作实现函数存放在头文件Graph3.h中。2、编写拓扑排序算法 void Toposort( adjlist G, int n)

(输入为图的邻接表,输出为相应的拓扑序列)。

3、编写测试程序(即主函数),首先建立并输出有向无权图,然后进行拓扑排序。

要求:把拓扑排序函数Toposort以及主函数存放在文件test10.cpp中。

*/

void InitAdjoin(adjlist G)//初始化用邻接表表示的有向无权图

{

for(int i=0;i

G[i]=NULL;

}

void CreateAdjoin (adjlist G, int n,char *s)// 建立用邻接表表示的有向无权图

{

istrstream sin(s);

char c1,c2,c3;

int i,j;

edgenode *p;

sin>>c1;

do{

sin>>c1>>i>>c2>>j>>c3;

p=new edgenode;

p->adjvex=j;

p->next=G[i];

G[i]=p;

sin>>c1;

}while(c1==',');

}

void PrintAdjoin (adjlist G, int n)//输出用邻接表表示的有向无权图{

int i,j;

edgenode *p;

cout<<"V={";

for(i=0;i

cout<

cout<

cout<<"E={";

for(i=0;i

{

p=G[i];

while(p)

{

j=p->adjvex;

cout<<'<'<'<<',';

p=p->next;

}

}

cout<<'}'<

}

大数据结构拓扑排序实验报告材料

拓扑排序 [基本要求] 用邻接表建立一个有向图的存储结构。利用拓扑排序算法输出该图的拓扑排序序列。 [编程思路] 首先图的创建,采用邻接表建立,逆向插入到单链表中,特别注意有向是不需要对称插入结点,且要把输入的字符在顶点数组中定位(LocateVex(Graph G,char *name),以便后来的遍历操作,几乎和图的创建一样,图的顶点定义时加入int indegree,关键在于indegree 的计算,而最好的就是在创建的时候就算出入度,(没有采用书上的indegree【】数组的方法,那样会增加一个indegree算法,而是在创建的时候假如一句计数的代码(G.vertices[j].indegree)++;)最后调用拓扑排序的算法,得出拓扑序列。 [程序代码] 头文件: #define MAX_VERTEX_NUM 30 #define STACKSIZE 30 #define STACKINCREMENT 10 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define TRUE 1 #define FALSE 0 typedef int Status; typedef int InfoType; typedef int Status; typedef int SElemType; /* 定义弧的结构*/ typedef struct ArcNode{ int adjvex; /*该边所指向的顶点的位置*/ struct ArcNode *nextarc; /*指向下一条边的指针*/ InfoType info; /*该弧相关信息的指针*/

网络拓扑实验报告

《计算机网络》 网络拓扑结构 学院名称:计算机与信息工程学院 专业名称:计算机科学与技术 年级班级: 姓名: 学号: 计算机与信息技术学院综合性、设计性实验报告

专业:计算机科学与技术 一、实验目的 通过对网络设备的连通和对拓扑的分析,加深对常见典型局域网拓扑的理解;通过路由建立起网络之间的连接,熟悉交换机、路由器的基本操作命令,了解网络路由的设计与配置。 二、实验仪器或设备 二层交换机五台、三层交换机一台,路由器两台,学生实验主机五台及一台服务器。 三、总体设计(设计原理、设计方案及流程等) 假设某校园网通过1台三层交换机连到校园网出口路由器,路由器再和校园外的 一台路由器相接,现做适当配置,实现校园网内部主机与校园网外部主机的相互通信。 实验拓扑图:

四、实验步骤(包括主要步骤、代码分析等) 三层交换机上配置vlan及IP地址,进行端口划分:Switch(config)#vlan 2 exit vlan 3 exit vlan 4 exit vlan 5 exit Switch(config)#int vlan 2 ip add no sh exit int vlan 3 ip add no sh

exit int vlan 4 ip add no sh exit int (f0/2) sw mod acc sw acc vlan 2 exit int (f0/3) sw mod acc sw acc vlan 3 exit int range(f0/4-5) sw mod acc sw acc vlan 4 exit int (f0/1) sw mod acc sw acc vlan 5 exit int vlan 5 ip add no sh exit 配置DHCP: Switch(config)#ip dhcp pool jinghua2 Switch(dhcp-config)#network dhcp pool jinghua3 Switch(dhcp-config)#net dhcp pool jinghua4

插入排序算法实验报告

算法设计与分析基础 实验报告 应用数学学院 二零一六年六月

实验一插入排序算法 一、实验性质设计 二、实验学时14学时 三、实验目的 1、掌握插入排序的方法和原理。 2、掌握java语言实现该算法的一般流程。 四、实验内容 1、数组的输入。 2、输入、输出的异常处理。 3、插入排序的算法流程。 4、运行结果的输出。 五、实验报告 Ⅰ、算法原理 从左到右扫描有序的子数组,直到遇到一个大于(或小于)等于A[n-1]的元素,然后就把A[n-1]插在该元素的前面(或后面)。 插入排序基于递归思想。 Ⅱ、书中源代码 算法InsertionSort(A[0..n-1]) //用插入排序对给定数组A[0..n-1]排序 //输入:n个可排序元素构成的一个数组A[0..n-1] //输出:非降序排列的数组A[0..n-1] for i ←1 to n-1 do v ← A[i] j ← i-1 while j ≥0and A[j] > v do A[j+1] ← A[j] j ← j-1 A[j+1] ← v

Ⅲ、Java算法代码: import java.util.*; public class Charu { public static void main(String[] args) { int n = 5; int a[] = new int[n]; int s = a.length; int i = 0, j = 0, v = 0; System.out.println("请输入若干个数字:"); Scanner sc = new Scanner(System.in); try { while (i < s) { a[i] = sc.nextInt(); i++; } for (i = 1; i = 0 && a[j] > v) { a[j + 1] = a[j]; j--; } a[j + 1] = v; } System.out.println("插入排序结果显示:"); for (i = 0; i < s; i++) { System.out.println(a[i]); } } catch (Exception es) { System.out.println(es); } } } Ⅳ、运行结果显示:

实验报告

算法与数据结构 实验报告 系(院):计算机科学学院 专业班级:软工11102 姓名:潘香杰 学号: 201104449 班级序号: 18 指导教师:詹泽梅老师 实验时间:2013.6.17 - 2013.6.29 实验地点:4号楼5楼机房

目录 1、课程设计目的...................................... 2、设计任务.......................................... 3、设计方案.......................................... 4、实现过程.......................................... 5、测试.............................................. 6、使用说明.......................................... 7、难点与收获........................................ 8、实现代码.......................................... 9、可改进的地方.....................................

算法与数据结构课程设计是在学完数据结构课程之后的实践教学环节。本实践教学是培养学生数据抽象能力,进行复杂程序设计的训练过程。要求学生能对所涉及问题选择合适的数据结构、存储结构及算法,并编写出结构清楚且正确易读的程序,提高程序设计基本技能和技巧。 一.设计目的 1.提高数据抽象能力。根据实际问题,能利用数据结构理论课中所学到的知识选择合适的逻辑结构以及存储结构,并设计出有效解决问题的算法。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。 3.初步了解开发过程中问题分析、整体设计、程序编码、测试等基本方法和技能。二.设计任务 设计一个基于DOS菜单的应用程序。要利用多级菜单实现各种功能。内容如下: ①创建无向图的邻接表 ②无向图的深度优先遍历 ③无向创建无向图的邻接矩阵 ④无向图的基本操作及应用 ⑤图的广度优先遍历 1.有向图的基本操作及应用 ①创建有向图的邻接矩阵 ②创建有向图的邻接表 ③拓扑排序 2.无向网的基本操作及应用 ①创建无向网的邻接矩阵 ②创建无向网的邻接表 ③求最小生成树 3.有向网的基本操作及应用 ①创建有向网的邻接矩阵 ②创建有向网的邻接表 ③关键路径 ④单源最短路径 三.设计方案 第一步:根据设计任务,设计DOS菜单,菜单运行成果如图所示:

《数据结构》实验报告——排序.docx

《数据结构》实验报告排序实验题目: 输入十个数,从插入排序,快速排序,选择排序三类算法中各选一种编程实现。 实验所使用的数据结构内容及编程思路: 1. 插入排序:直接插入排序的基本操作是,将一个记录到已排好序的有序表中,从而得到一个新的,记录增一得有序表。 一般情况下,第i 趟直接插入排序的操作为:在含有i-1 个记录的有序子序列r[1..i-1 ]中插入一个记录r[i ]后,变成含有i 个记录的有序子序列r[1..i ];并且,和顺序查找类似,为了在查找插入位置的过程中避免数组下标出界,在r [0]处设置哨兵。在自i-1 起往前搜索的过程中,可以同时后移记录。整个排序过程为进行n-1 趟插入,即:先将序列中的第一个记录看成是一个有序的子序列,然后从第2 个记录起逐个进行插入,直至整个序列变成按关键字非递减有序序列为止。 2. 快速排序:基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 假设待排序的序列为{L.r[s] ,L.r[s+1],…L.r[t]}, 首先任意选取一个记录 (通常可选第一个记录L.r[s])作为枢轴(或支点)(PiVOt ),然后按下述原则重新排列其余记录:将所有关键字较它小的记录都安置在它的位置之前,将所有关键字较大的记录都安置在它的位置之后。由此可以该“枢轴”记录最后所罗的位置i 作为界线,将序列{L.r[s] ,… ,L.r[t]} 分割成两个子序列{L.r[i+1],L.[i+2], …,L.r[t]}。这个过程称为一趟快速排序,或一次划分。 一趟快速排序的具体做法是:附设两个指针lOw 和high ,他们的初值分别为lOw 和high ,设枢轴记录的关键字为PiVOtkey ,则首先从high 所指位置起向前搜索找到第一个关键字小于PiVOtkey 的记录和枢轴记录互相交换,然后从lOw 所指位置起向后搜索,找到第一个关键字大于PiVOtkey 的记录和枢轴记录互相 交换,重复这两不直至low=high 为止。 具体实现上述算法是,每交换一对记录需进行3 次记录移动(赋值)的操作。而实际上,

离散数学实验报告四个实验

《离散数学》 课程设计 学院计算机学院 学生姓名 学号 指导教师 评阅意见

提交日期 2011 年 11 月 25 日 引言 《离散数学》是现代数学的一个重要分支,也是计算机科学与技术,电子信息技术,生物技术等的核心基础课程。它是研究离散量(如整数、有理数、有限字母表等)的数学结构、性质及关系的学问。它一方面充分地描述了计算机科学离散性的特点,为学生进一步学习算法与数据结构、程序设计语言、操作系统、编译原理、电路设计、软件工程与方法学、数据库与信息检索系统、人工智能、网络、计算机图形学等专业课打好数学基础;另一方面,通过学习离散数学课程,学生在获得离散问题建模、离散数学理论、计算机求解方法和技术知识的同时,还可以培养和提高抽象思维能力和严密的逻辑推理能力,为今后爱念族皮及用计算机处理大量的日常事务和科研项目、从事计算机科学和应用打下坚实基础。特别是对于那些从事计算机科学与理论研究的高层次计算机人员来说,离散数学更是必不可少的基础理论工具。 实验一、编程判断一个二元关系的性质(是否具有自反性、反自反性、对称性、反对称性和传递性) 一、前言引语:二元关系是离散数学中重要的内容。因为事物之间总是可以根据需要确定相应的关系。从数学的角度来看,这类联系就是某个集合中元素之

间存在的关系。 二、数学原理:自反、对称、传递关系 设A和B都是已知的集合,R是A到B的一个确定的二元关系,那么集合R 就是A×B的一个合于{()∈A×}的子集合 设R是集合A上的二元关系: 自反关系:对任意的x∈A,都满足<>∈R,则称R是自反的,或称R具有自反性,即R在A上是自反的?(?x)((x∈A)→(<>∈R))=1 对称关系:对任意的∈A,如果<>∈R,那么<>∈R,则称关系R是对称的,或称R具有对称性,即R在A上是对称的? (?x)(?y)((x∈A)∧(y∈A)∧(<>∈R)→(<>∈R))=1 传递关系:对任意的∈A,如果<>∈R且<>∈R,那么<>∈R,则称关系R是传递的,或称R具有传递性,即R在A上是传递的? (?x)(?y)(?z)[(x∈A)∧(y∈A)∧(z ∈A)∧((<>∈R)∧(<>∈R)→(<>∈R))]=1 三、实验原理:通过二元关系与关系矩阵的联系,可以引入N维数组,以数组的运算来实现二元关系的判断。 图示:

拓扑建立及配置实验报告

拓扑建立及配置实验报告 一、实验目的 1、掌握本仿真软件中软交换拓扑结构的搭建和配置方法。 2、掌握本仿真软件中终端注册的配置方法并在软交换上进行注册。 二、实验器材 机房 软交换中心设备 二层交换机 PC IP电话 三、实验原理 软交换是一种功能实体,为下一代网络NGN提供具有实时性要求的业务的呼叫控制和连接控制功能,是下一代网络呼叫与控制的核心。 简单地看,软交换是实现传统程控交换机的“呼叫控制”功能的实体,但传统的“呼叫控制”功能是和业务结合在一起的,不同的业务所需要的呼叫控制功能不同,而软交换是与业务无关的,这要求软交换提供的呼叫控制功能是各种业务的基本呼叫控制。 软交换技术独立于传送网络,主要完成呼叫控制、资源分配、协议处理、路由、认证、计费等主要功能,同时可以向用户提供现有电路交换机所能提供的所有业务,并向第三方提供可编程能力。 软交换技术区别于其它技术的最显著特征,也是其核心思想的三个基本要素是: a、生成接口 软交换提供业务的主要方式是通过API与“应用服务器”配合以提供新的综合网络业务。与此同时,为了更好地兼顾现有通信网络,它还能够通过INAP与IN中已有的SCP配合以提供传统的智能业务。 b、接入能力 软交换可以支持众多的协议,以便对各种各样的接入设备进行控制,最大限度地保护用户投资并充分发挥现有通信网络的作用。 c、支持系统 软交换采用了一种与传统OAM系统完全不同的、基于策略(Policy-based)的实现方式来完成运行支持系统的功能,按照一定的策略对网络特性进行实时、智能、集中式的调整和干预,以保证整个系统的稳定性和可靠性。 作为分组交换网络与传统PSTN网络融合的全新解决方案,软交换将PSTN的可靠性和数据网

算法排序问题实验报告

《排序问题求解》实验报告 一、算法的基本思想 1、直接插入排序算法思想 直接插入排序的基本思想是将一个记录插入到已排好序的序列中,从而得到一个新的,记录数增1 的有序序列。 直接插入排序算法的伪代码称为InsertionSort,它的参数是一个数组A[1..n],包含了n 个待排序的数。用伪代码表示直接插入排序算法如下: InsertionSort (A) for i←2 to n do key←A[i] //key 表示待插入数 //Insert A[i] into the sorted sequence A[1..i-1] j←i-1 while j>0 and A[j]>key do A[j+1]←A[j] j←j-1 A[j+1]←key 2、快速排序算法思想 快速排序算法的基本思想是,通过一趟排序将待排序序列分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可对这两部分记录继续进行排序,以达到整个序列有序。 假设待排序序列为数组A[1..n],首先选取第一个数A[0],作为枢轴(pivot),然后按照下述原则重新排列其余数:将所有比A[0]大的数都排在它的位置之前,将所有比A[0] 小的数都排在它的位置之后,由此以A[0]最后所在的位置i 作为分界线,将数组A[1..n]分成两个子数组A[1..i-1]和A[i+1..n]。这个过程称作一趟快速排序。通过递归调用快速排序,对子数组A[1..i-1]和A[i+1..n]排序。 一趟快速排序算法的伪代码称为Partition,它的参数是一个数组A[1..n]和两个指针low、high,设枢轴为pivotkey,则首先从high 所指位置起向前搜索,找到第一个小于pivotkey 的数,并将其移到低端,然后从low 所指位置起向后搜索,找到第一个大于pivotkey 的数,并将其移到高端,重复这两步直至low=high。最后,将枢轴移到正确的位置上。用伪代码表示一趟快速排序算法如下: Partition ( A, low, high) A[0]←A[low] //用数组的第一个记录做枢轴记录 privotkey←A[low] //枢轴记录关键字 while low=privotkey do high←high-1 A[low]←A[high] //将比枢轴记录小的记录移到低端 while low

计算机网络实验报告

计算机网络实验报告 专业班级 学号 姓名 指导教师

试验一以太网帧的构成 练习一:领略真实的MAC帧 各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。 本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。 1. 主机B启动协议分析器,新建捕获窗口进行数据捕获并设置过滤条件(提取ICMP协议)。 2. 主机A ping 主机B,察看主机B协议分析器捕获的数据包,分析MAC帧格式。 3. 将主机B的过滤器恢复为默认状态。 实验截图: 练习二:理解MAC地址的作用

1. 主机B、D、E、F启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(源MAC地址为主机A的MAC地址)。 2. 主机A ping 主机C。 3. 主机B、D、E、F上停止捕获数据,在捕获的数据中查找主机A所发送的ICMP数据帧,并分析该帧内容。 ●记录实验结果 表1-3实验结果 实验截图: 练习三:编辑并发送MAC广播帧

1. 主机E启动协议编辑器。 2. 主机E编辑一个MAC帧: 目的MAC地址:FFFFFF-FFFFFF 源MAC地址:主机E的MAC地址 协议类型或数据长度:大于0x0600 数据字段:编辑长度在46—1500字节之间的数据 3. 主机A、B、C、D、F启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(源MAC地址为主机E的MAC地址)。 4. 主机E发送已编辑好的数据帧。 5. 主机A、B、C、D、F停止捕获数据,察看捕获到的数据中是否含有主机E所发送的数据帧。 ●结合练习三的实验结果,简述FFFFFF-FFFFFF作为目的MAC地址的作用。 答:该地址为广播地址,作用是完成一对多的通信方式,即一个数据帧可发送给同一网段内的所有节点。 实验截图: 练习四:编辑并发送LLC帧 本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机 A、B所在组为例,其它组的操作参考主机A、B所在组的操作。 1. 主机A启动协议编辑器,并编写一个LLC帧。 目的MAC地址:主机B的MAC地址 源MAC地址:主机A的MAC地址 协议类型和数据长度:001F

数据结构实验报告-排序

本章共8道实验题目。 一、直接插入排序 1. 定义顺序表的存储结构 2. 初始化顺序表为空表 3. 输入10个元素创建含有10个元素的顺序表 4. 输出顺序表 5. 对顺序表进行直接插入排序(InsertSort) 6. 输出排序后的顺序表 例如: 11 938 669 507 117 261 708 343 300 602 11 938 669 507 117 261 708 343 300 602 11 117 261 300 343 507 602 669 708 938 程序: #include #include using namespace std; #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status; #define MAXSIZE 100 typedef int KeyType; typedef char InfoType[256]; typedef struct { KeyType key; InfoType otherinfo; }RedType; typedef struct { RedType r[MAXSIZE+1]; int length; }SqList; //此处定义直接插入排序函数 int a[20]; int main()

{ int InsertSort; for (int i = 0; i < 10; ++i) { cin >> a[i]; cout << a[i] << " "; } cout << endl; sort(a, a+10); for (int i = 0; i < 10; ++i) cout << a[i] << " "; return 0; } 二、折半插入排序 1. 定义顺序表的存储结构 2. 初始化顺序表为空表 3. 输入10个元素创建含有10个元素的顺序表 4. 输出顺序表 5. 对顺序表进行折半插入排序(BInsertSort) 6. 输出排序后的顺序表 例如: 11 938 669 507 117 261 708 343 300 602 11 938 669 507 117 261 708 343 300 602 11 117 261 300 343 507 602 669 708 938 程序: #include #include using namespace std; #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status; #define MAXSIZE 100 typedef int KeyType; typedef char InfoType[256];

图的应用的实验报告

实验六图的应用及其实现 一、实验目的 1.进一步功固图常用的存储结构。 2.熟练掌握在图的邻接表实现图的基本操作。 3.理解掌握AOV网、AOE网在邻接表上的实现以及解决简单的应用问题。 二、实验内容 [题目一]:从键盘上输入AOV网的顶点和有向边的信息,建立其邻接表存储结构,然后对该图拓扑排序,并输出拓扑序列. 试设计程序实现上述AOV网的类型定义和基本操作,完成上述功能。 测试数据:教材图7.28 [题目二]:从键盘上输入AOE网的顶点和有向边的信息,建立其邻接表存储结构,输出其关键路径和关键路径长度。试设计程序实现上述AOE网类型定义和基本操作,完成上述功能。 测试数据:教材图7.29 三、实验步骤 ㈠、数据结构与核心算法的设计描述 基本数据结构: #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 typedef int Status; /* Status 是函数的类型,其值是函数结果状态代码,如OK 等*/ #define INFINITY INT_MAX //定义无穷大∞ #define MAX_VERTEX_NUM 20 typedef int V ertexType; typedef int InfoType; typedef struct ArcNode // 表结点定义 { InfoType info; int adjvex; //邻接点域,存放与V i邻接的点在表头数组中的位置ArcNode *nextarc; //链域,指示依附于vi的下一条边或弧的结点, }ArcNode; typedef struct VNode //表头结点 { int data; //存放顶点信息 struct ArcNode *firstarc; //指示第一个邻接点 }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct { //图的结构定义

计算机网络技术实验报告

重庆交通大学 学生实验报告 实验课程名称《计算机网络技术》课程实验 开课实验室软件与通信实验中心 学院国际学院年级2012 专业班(1)班 学生姓名吴双彪学号6312260030115 开课时间2014 至2015 学年第二学期 实验2简单的局域网配置与资源共享 实验目的: 1、掌握将两台PC联网的技能与方法 2、掌握将几台PC连接成LAN的技能与方法 3、掌握局域网内资源共享的技能与方法 实验内容和要求: 1、选用百兆交换机连接PC若干台; 2、在上述两种情况下分别为PC配置TCP/IP协议,使他们实现互联和资源共享实验环境:(画出实验网络拓图) 实验步骤: 1、选择两台计算机; 选PC0与PC1. 2、设置两台计算机IP地址为C类内部地址; 两台PC机的IP分别设置为:、202.202.242.47、202.202.243.48; 两台PC机的掩码分别设置为:、255.255.255.0、255.255.255.0; 3、用一台计算机Ping另一台计算机,是否能Ping通?

4、我的电脑→工具→文件夹选项→查看→去掉“使用简单文件共享(推荐)”前 的勾;设置共享文件夹。 5、控制面板→管理工具→本地安全策略→本地策略→安全选项里,把“网络访 问:本地帐户的共享和安全模式”设为“仅来宾-本地用户以来宾的身份验证” (可选,此项设置可去除访问时要求输入密码的对话框,也可视情况设为“经典-本地用户以自己的身份验证”); 6、通过网络邻居或在运行窗口输入“\\对方IP地址”实现资源共享。 1)指定IP地址,连通网络 A.设置IP地址 在保留专用IP地址范围中(192.168.X.X),任选IP地址指定给主机。 注意:同一实验分组的主机IP地址的网络ID应相同 ..。 ..,主机ID应不同 ..,子网掩码需相同B.测试网络连通性 (1)用PING 命令PING 127.0.0.0 –t,检测本机网卡连通性。 解决方法:检查网线是否连接好,或者网卡是否完好 (2)分别“ping”同一实验组的计算机名;“ping”同一实验组的计算机IP地址,并记录结 果。答:能。结果同步骤3 (3)接在同一交换机上的不同实验分组的计算机,从“网上邻居”中能看到吗?能ping通 吗?记录结果。 2) 自动获取IP地址,连通网络 Windows主机能从微软专用B类保留地址(网络ID为169.254)中自动获取IP地址。 A.设置IP地址 把指定IP地址改为“自动获取IP地址”。 B.在DOS命令提示符下键入“ipconfig”,查看本机自动获取的IP地址,并记录结果。 C.测试网络的连通性 1.在“网上邻居”中察看能找到哪些主机,并记录结果。 2.在命令提示符下试试能“ping”通哪些主机,并记录结果。 答:能ping通的主机有KOREYOSHI ,WSB ,ST ,LBO ,CL 。思考并回答 测试两台PC机连通性时有哪些方法? 实验小结:(要求写出实验中的体会)

网络安全攻防实验室实施方案

网络安全攻防实验室 建设方案 XXXX信息科学与工程学院 2020/2/28

目录 第一章网络安全人才需求 (3) 1.1网络安全现状 (3) 1.2国家正式颁布五级安全等级保护制度 (3) 1.3网络安全技术人才需求猛增 (4) 第二章网络安全技术教学存在的问题 (4) 2.1网络安全实验室的建设误区 (4) 2.2缺乏网络安全的师资力量 (4) 2.3缺乏实用性强的安全教材 (5) 第三章安全攻防实验室特点 (5) 3.1安全攻防实验室简介 (5) 第四章安全攻防实验室方案 (6) 4.1安全攻防实验室设备选型 (6) 4.1.1 传统安全设备 (6) 4.1.2 安全沙盒——使实验室具有攻防教学功能的独特产品 (6) 4.2安全攻防实验室拓扑图 (8) 4.3安全攻防实验室课程体系 (9) 4.3.1 初级DCNSA网络安全管理员课程 (9) 4.3.2 中级DCNSE网络安全工程师课程 (10) 4.4高级安全攻防实验室实验项目 (12) 4.4.1基本实验 (12) 4.4.1扩展实验 (14) 第七章网络实验室布局设计 (25) 7.1 实验室布局平面图 (25) 7.2 实验室布局效果图 (25) 7.3 机柜摆放位置的选择 (26)

第一章网络安全人才需求 1.1网络安全现状 信息技术飞速发展,各行各业对信息系统的依赖程度越来越高,建立持续、稳定、安全的网络是保障用户业务发展的前提。 近年来,安全问题却日益严重:病毒、木马、黑客攻击、网络钓鱼、DDOS 等安全威胁层出不穷,而且技术越来越复杂,病毒、木马及黑客技术等融合造成了网络安全的巨大危机。 用户都已经认识到了安全的重要性。纷纷采用防火墙、加密、身份认证、访问控制,备份等保护手段来保护信息系统的安全。 但是网络安全的技术支持以及安全管理人才极度缺乏。 1.2国家正式颁布五级安全等级保护制度 2007年7月24日,公安部、国家保密局、国家密码管理局、国务院信息工作办公室正式上线颁布了信息安全等级保护规定,信息安全等级保护管理办法及实施指南,颁布了《信息安全等级保护管理办法》、《信息系统安全等级保护定级指南》、《信息安全技术信息系统安全等级保护实施指南》、《信息安全技术信息系统安全等级保护基本要求》等办法。 办法明确规定,信息系统的安全保护等级分为五级,不同等级的信息系统应具备的基本安全保护能力如下: 第一级安全保护能力:应能够防护系统免受来自个人的、拥有很少资源的威胁源发起的恶意攻击、一般的自然灾难、以及其他相当危害程度的威胁所造成的关键资源损害,在系统遭到损害后,能够恢复部分功能。 第二级安全保护能力:应能够防护系统免受来自外部小型组织的、拥有少量资源的威胁源发起的恶意攻击、一般的自然灾难、以及其他相当危害程度的威胁所造成的重要资源损害,能够发现重要的安全漏洞和安全事件,在系统遭到损害后,能够在一段时间内恢复部分功能。 第三级安全保护能力:应能够在统一安全策略下防护系统免受来自外部有组织的团体、拥有较为丰富资源的威胁源发起的恶意攻击、较为严重的自然灾难、以及其他相当危害程度的威胁所造成的主要资源损害,能够发现安全漏洞和安全事件,在系统遭到损害后,能够较快恢复绝大部分功能。 第四级安全保护能力:应能够在统一安全策略下防护系统免受来自国家级别的、敌对组织的、拥有丰富资源的威胁源发起的恶意攻击、严重的自然灾难、以及其他相当危害程度

排序问题实验报告

2010级数据结构实验报告 实验名称:排序 姓名:袁彬 班级: 2009211120 班内序号: 09 学号: 09210552 日期: 2010 年12 月19 日 1.实验要求 试验目的: 通过选择试验内容中的两个题目之一,学习、实现、对比各种排序的算法,掌握各种排序算法的优缺点,以及各种算法使用的情况。 试验内容: 题目一: 使用简单数组实现下面各种排序算法,并进行比较。 排序算法如下: ①插入排序; ②希尔排序 ③冒泡排序; ④快速排序; ⑤简单选择排序; ⑥堆排序 ⑦归并排序 ⑧基数排序 ⑨其他。 具体要求如下: ①测试数据分为三类:正序,逆序,随机数据。 ②对于这三类数据,比较上述排序算法中关键字的比较次数和移动次数(其中关键字交换记为三次移动)。 ③对于这三类数据,比较上述排序算法中不同算法的执行时间,精确到微妙。 ④对②和③的结果进行分析,验证上述各种算法的时间复杂度。 ⑤编写main()函数测试各种排序算法的正确性。 题目二: 使用链表实现下面各种排序算法,并进行比较。 排序算法如下: ①插入排序; ②冒泡排序; ③快速排序;

④简单选择排序; ⑤其他。 具体要求如下: ①测试数据分为三类:正序,逆序,随机数据。 ②对于这三类数据,比较上述排序算法中关键字的比较次数和移动次数(其中关键字交换记为三次移动)。 ③对于这三类数据,比较上述排序算法中不同算法的执行时间,精确到微妙(选作) ④对②和③的结果进行分析,验证上述各种算法的时间复杂度。 ⑤编写main()函数测试各种排序算法的正确性。 2. 程序分析 2.1 存储结构 程序中每一个算法均是用一个类来表示的,类中有自己的构造函数、排序函数。 程序的储存结构采用数组。数组的第一个位置不存储数据。数据从第二个位置开始。数组中的相对位置为数组的下标。 2.2 关键算法分析 ㈠、关键算法: 1、插入排序函数:Insert s ort(int n) ①、从2开始做循环,依次和前面的数进行比较:for(int i=2;i<=n;i++) ②、如果后面的比前面的小,则进行前移:if(number[i]=1;d=d/2) ②、在自己的间隔中进行简单插入排序,进行循环:for(int i=d+1;i<=n;i++) ③、如果后面的数据比前面的小,进行前移:if(number[i]0;j=j-d) ⑥、大的数据后移:number[j+d]=number[j]; ⑦、哨兵归位:number[j+d]=number[0]; 3、冒泡排序函数:Bubble s ort(int n) ①、设置有序无序的边界点:int pos=n; ②、当边界点不为空进行循环:while(pos!=0) ③、边界点传递给bound:int bound=pos; ④、从开始到边界点进行循环:for(int i=1;inumber[i+1]) ⑥、交换:number[0]=number[i];number[i]=number[i+1];number[i+1]=number[0]; ⑦、从小设置边界点:pos=i; 4、一趟快速排序函数:partion(int first,int end) ①、传递设置整个数据的起点和终点:int i=first;int j=end; ②、设置中轴:number[0]=number[i]; ③、当end大于first进行循环:while(i

复杂网络实验报告

复杂网络实验报告 姓名:韦亚勇 学号:152311 专业:计算机技术 时间:2016年1月6日

实验一 【名称】:规则网络 【数据来源】:教研室网络拓扑 【可视工具】:Gephi 【作品简介】:自然界中存在的大量复杂系统都可以通过形形色色的网络加以描述。例如,计算机网络可以看做是计算机通过通信介质如光缆、双绞线、同轴电缆等相互连接形成的网络;神经系统可以看做是大量神经细胞通过神经纤维相互连接形成的网络。类似的还有电力网络社会关系网络,交通网络等。 对社会网络最早研究的是数学界,其基本的理论是图伦。在网络中,两点之间的距离被定义为连接两点的最短路径所包含的边的数目,把所有节点对的距离求平均,就得到了网络的平均距离。 从网络的拓扑结构来看,常见的规则网络模型有邻近耦合网络,星型网络,以及完全网络。下面我将以星型网络进行分析。 星型网络中中心节点代表的是交换机,其余节点代表的是主机。边代表的是双绞线。 星型网络具有以下优点:容易实现、节点扩展、移动方便、维护容易、采用广播信息传送方式、网络传输数据快。 【研究目的】:进一步了解星型网络结构的特点,加深对规则网络的认识,利用网络分析工具分析规则网络特点。

星型网络图: 由网络分析工具统计出以下结果:

实验二 【名称】:随机网络 【数据来源】:数据堂:【可视工具】:Gephi 【作品简介】:一个客观系统的动态运行过程,可以看做是系统之间的转移过程,当系统从一种状态转移到另一种或多种状态去时,可以取不通的概率。对网络系统来说,可以理解为从某一节点转移到其他可节点时具有不同的概率。具有这个特征的网络,我们称之为随机网络。 传统的随机网络(如ER模型),尽管连接是随机设置的,但大部分节点的连接数目会大致相同,即节点的分布方式遵循钟形的泊松分布,有一个特征性的“平均数”。连接数目比平均数高许多或低许多的节点都极少,随着连接数的增大,其概率呈指数式迅速递减。故随机网络亦称指数网络。 该网络中,每个节点代表了参加美国2000年橄榄球赛季的高校代表队,连接两个节点之间的边则表示相应的两支球队之间至少曾有过一场比赛。粗边表示两队有两场比赛,也就是半决赛或者决赛时两队又进行了一场比赛。 【研究目的】:了解随机网络在社会领域中的应用,利用网络分析工具分析随机网络特点。

大数据结构实验四题目一排序实验报告材料

数据结构实验报告 实验名称:实验四——排序 学生姓名:XX 班级: 班内序号: 学号: 日期: 1.实验要求 实验目的: 通过选择实验内容中的两个题目之一,学习、实现、对比、各种排序的算法,掌握各种排序算法的优劣,以及各种算法使用的情况。 题目1: 使用简单数组实现下面各种排序算法,并进行比较。 排序算法如下: 1、插入排序; 2、希尔排序; 3、冒泡排序; 4、快速排序; 5、简单选择排序; 6、堆排序; 7、归并排序; 8、基数排序(选作); 9、其他。 具体要求如下: 1、测试数据分成三类:正序、逆序、随机数据。 2、对于这三类数据,比较上述排序算法中关键字的比较次数和移动次数(其中关 键字交换记为3次移动)。 3、对于这三类数据,比较上述排序算法中不同算法的执行时间,精确到微妙。 4、对2和3的结果进行分析,验证上述各种算法的时间复杂度。 5、编写main()函数测试各种排序算法的正确性。 2. 程序分析 2.1 存储结构

存储结构:数组 2.2 关键算法分析 一、关键算法: 1、插入排序 a、取排序的第二个数据与前一个比较 b、若比前一个小,则赋值给哨兵 c、从后向前比较,将其插入在比其小的元素后 d、循环排序 2、希尔排序 a、将数组分成两份 b、将第一份数组的元素与哨兵比较 c、若其大与哨兵,其值赋给哨兵 d、哨兵与第二份数组元素比较,将较大的值赋给第二份数组 e、循环进行数组拆分 3、对数据进行编码 a、取数组元素与下一个元素比较 b、若比下一个元素大,则与其交换 c、后移,重复 d、改变总元素值,并重复上述代码 4、快速排序 a、选取标准值 b、比较高低指针指向元素,若指针保持前后顺序,且后指针元素大于标准值,后 指针前移,重新比较 c、否则后面元素赋给前面元素 d、若后指针元素小于标准值,前指针后移,重新比较 e、否则前面元素赋给后面元素 5、简单选择排序 a、从数组中选择出最小元素 b、若不为当前元素,则交换 c、后移将当前元素设为下一个元素 6、堆排序 a、生成小顶堆 b、将堆的根节点移至数组的最后 c、去掉已做过根节点的元素继续生成小顶堆

计算机网络实验报告

计算机网络实验报告 实验时间 参加人员 一、实验名称 简单以太网的组建 二、实验内容 1、观察教学机房,了解计算机网络结构,并画出计算机网络拓扑结构图。 2、了解计算机网络中的网络设备,并了解每台计算机上使用的网络标识、网络协议。 3、制作2根直通双绞线和2根交叉线,并测试。 4、分别用制作好的直通线、交叉线以及串口线、并口线,连接两台计算机。 三、实验步骤

1、教学机房网络拓扑结构观察计算机教学机房的计算机网络的组成,并画出网络拓扑结构图。 (1)记录联网计算机的数量、配置、使用的操作系统、网络拓扑结构、网络建成的时间等数据。 (2)了解教学机房设备是如何互联的。 (3)认识并记录网络中使用的其他硬件设备的名称、用途和连接的方法。 (4)根据以上数据及观察结果画出拓扑结构图。。 (5)分析网络使用的结构及其所属类型。 (6)打开计算机进入系统,查看计算机的网络参数,记录主要网络配置参数。 2、直通线的制作按照EIA/TIA568B的标准,制作两段直通线。 (1)利用双绞线拨线器将双绞线的外皮除去2~3cm。有些双绞线电缆内含有一条柔软的尼龙绳,若在剥除双绞线的外皮时,裸露出部分太短,可紧握双绞线外皮,再捏住尼龙线的下方剥开。

(2)将裸露的双绞线中的橙色对线拨向自己的前方,棕色对线拨向自己的方向,绿色对线拨向自己的左方,蓝色对线拨向右方。 (3)将绿色对线和蓝色对线放在中间位置,橙色对线和棕色对线保持不动,即放在靠外的位置。 (4)小心拨开每一对线,而不必剥开各对线的外皮。特别注意的是,绿色条线应跨越蓝色对线。正确的线序是:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕。这里最容易犯错的是将白绿线与绿线相邻放在--起(5)将裸露出的双绞线用剪刀或斜口钳剪下只剩下约14mm的长度。最后再将双绞线的每一根线依序放入RJ-45接头的引脚内,第一一只引脚内应该放白橙色的线,其余类推。 (6)确定双绞线的每根线已经正确放置后,就可以用RJ-45压线钳压接RJ-45接头了,要确保每一根线与接头的引脚充分接触。 (7)按照相同的方法制作另外--端。 (8)用测线仪测试做好的网线,看看自己做的网线是否合格。打开测线仪电源,将网线插头分别插入主测试器和远程测试器,主机指示灯从1~8逐个顺序闪亮,如远程测试器也按1~8的顺序依次闪亮则合格。如果接线不正常,则按下述情况显示。

相关主题
文本预览
相关文档 最新文档