数据结构实验五实验报告记录

数据结构实验五实验报告记录
数据结构实验五实验报告记录

数据结构实验五实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

数据结构实验报告

实验五

图子系统

实验题目:图的遍历问题

专业班级:网络工程 1002班

组长:王星(2010100230)组员:郭坤铭(2010100243)

张磊(2010100244)

2012年 5月 18日

实验报告

实验类型__综合__实验室_软件实验室二__

一、实验题目

图的遍历问题

二、实验目的和要求

1、掌握图的存储思想及其存储实现

2、掌握图的深度、广度优先遍历算法思想及其程序实现

3、掌握图的常见应用算法的思想及其程序实现

三、需求分析

本演示程序用c++6.0编写,完成用户用键盘输入以下结点数据:太原、成都、北京、上海、天津、大连、河北。(1)建立一个有向图或无向图(自定)的邻接表并输出该邻接表。(2)在图的邻接表的基础上计算各顶点的度,并输出。(3)以有向图的邻接表为基础实现输出它的拓扑排序序列。(4)采用邻接表存储实现无向图的深度优先遍历。(5)采用邻接表存储实现无向图的广度优先遍历。(6)采用邻接矩阵存储实现无向图的最小生成树的 PRIM 算法。最后,在主函数中设计一个简单的菜单,分别调试上述算法。

四、概要设计

为了实现上述程序功能,需要定义如下内容

基本数据类型定义如下:

typedef struct node{ //边表结点

int adj; //边表结点数据域

struct node *next;

}node;

typedef struct vnode //顶点表结点

{ char name[20];

node *fnext;

}vnode,AList[20];

typedef struct

{ AList List; //邻接表

int v,e; //顶点树和边数

}*Graph;

Graph CreatDG(){ } //建立无向邻接表

Graph CreatAG(){ } //有向邻接图

void Print(Graph G){} //输出图的邻接表

void CreateAN(AGraph *G1){} //构造邻接矩阵结构的图G void Du(Graph G){} //输出各顶点的度数

void DFSTravel(Graph G){} //深度优先遍历

void BFSTravel(Graph G){} //广度优先遍历

五、详细设计

#include

#include

#include

typedef struct node{//边表结点

int adj;//边表结点数据域

struct node *next;

}node;

typedef struct vnode{//顶点表结点

char name[20];

node *fnext;

}vnode,AList[20];

typedef struct{

AList List;//邻接表

int v,e;//顶点树和边数

}*Graph;

//建立无向邻接表

Graph CreatDG(){

Graph G;

int i,j,k;

node *s;

G=malloc(20*sizeof(vnode));

printf("请输入图的顶点数和边数(空格隔开):");

scanf("%d%d",&G->v,&G->e);//读入顶点数和边数

for(i=0;iv;i++){

printf("请输入图中第%d元素:",i+1);

scanf("%s",G->List[i].name);//读入顶点信息

G->List[i].fnext=NULL;//边表置为空表

}

for(k=0;ke;k++){

printf("请请输入第%d条边的两顶点序号(空格隔开):",k+1);

scanf("%d%d",&i,&j);//读入边(Vi,Vj)的顶点对序号;

s=(node *)malloc(sizeof(node));//生成边表结点

s->adj=j;

s->next=G->List[i].fnext;

G->List[i].fnext=s;//将新结点*s插入顶点Vi的边表头部

s=(node *)malloc(sizeof(node));

s->adj=i;//邻接点序号为i

s->next=G->List[j].fnext;

G->List[j].fnext=s;// 将新结点*s插入顶点Vj的边表头部

}

return G;

}

//有向邻接图

Graph CreatAG(){

Graph G;

int i,j,k;

node *q;

G=malloc(20*sizeof(vnode));

printf("请输入图的顶点数和边数【空格隔开】:");

scanf("%d%d",&G->v,&G->e);

for (i=0;iv;i++){

printf("请输入图中第%d元素:",i+1);

scanf("%s",&G->List[i].name); //读入顶点信息

G->List[i].fnext=NULL;

}

for (k=0;ke;k++){

printf("请请输入第%d边的两顶点序号【空格隔开】:",k+1);

scanf("%d%d",&i,&j);

q=(node *)malloc(sizeof(node)); //生成新边表结点s

q->adj=j; //邻接点序号为j

q->next=G->List[i].fnext;

G->List[i].fnext=q;

}

return G;

}

//输出图的邻接表

void Print(Graph G){

int i;

node *p;

printf("\t=======邻接表========\n");

for(i=0;iv;i++){

p=G->List[i].fnext;

printf("%d | %3s",i,G->List[i].name);

while(p){

printf("->%3s",G->List[p->adj].name);

printf("->%d",p->adj);

p=p->next;

}

printf("\n");

}

}

typedef struct {

char vex[20];

}Lists[20];

typedef struct{

Lists l;

int edge[20][20];//邻接矩阵

int v1,e1;//顶点数和弧数

}AGraph;

typedef struct{

int data; /* 某顶点与已构造好的部分生成树的顶点之间权值最小的顶点 */

int lowcost; /* 某顶点与已构造好的部分生成树的顶点之间的最小权值 */

}ClosEdge[20]; /* 用普里姆算法求最小生成树时的辅助数组 */ void CreateAN(AGraph *G1){

/* 构造邻接矩阵结构的图G */

int i,j,k,w;

printf("请输入图的顶点数和边数(空格隔开):");

scanf("%d%d",&G1->v1,&G1->e1);//读入顶点数和边数

for(i=1;i<=G1->v1;i++){

printf("请输入图%d号元素:",i);

scanf("%s",&G1->l[i].vex);//读入顶点信息

}

for(i=1;i<=G1->v1;i++)//初始化邻接矩阵

for(j=1;j<=G1->v1;j++)

G1->edge[i][j] = 9;

for(k=1;k<=G1->e1;k++){

printf("请输入两顶点及边的权值(空格隔开):");

scanf("%d%d%d",&i,&j,&w);

G1->edge[i][j]=w;

G1->edge[j][i]=w;

}

}

void PrintAN(AGraph *G1){

int i,j;

printf("\t=======邻接矩阵========\n");

for(i=1;i<=G1->v1;i++){

for(j=1;j<=G1->v1;j++)

printf("%3d",G1->edge[i][j]);

printf("\n");

}

}

//输出各顶点的度数

void Du(Graph G){

int i,j;

printf("\n<----各点度数---->\n");

for(i=0;iv;i++){

p=G->List[i].fnext;

printf("顶点%2s的度为:",G->List[i].name);

j=0;

while(p){

j++;

p=p->next;

}

printf("%d\n",j);

}

}

//栈

typedef struct stack{

int x;

struct stack *next;

}stack;

int push(stack *s,int i){

stack *p;

p=(stack *)malloc(sizeof(stack));

p->x=i;

p->next=s->next;

s->next=p;

return 1;

}

int pop(stack *s,int j){

stack *p=s->next;//保存栈顶指针

j=p->x;

s->next=p->next; //将栈顶元素摘下

free(p);//释放栈顶空间

return j;

}

//拓扑排序

void Topo(Graph G,stack *s){

int i,k, count;

int j=0;

int indegree[20]={0};

for(i=0;iv;i++){

p=G->List[i].fnext;;

while(p!=NULL){

indegree[p->adj]++;

p=p->next;

}

}

for(i=0;iv;i++)

if(indegree[i]==0)

push(s,i);

count=0;

while(s->next!=NULL){

i=pop(s,j);

printf("%2s ",G->List[i].name);

++count;

for(p=G->List[i].fnext;p!=NULL;p=p->next){ k=p->adj;

if(!(--indegree[k]))

push(s,k);

}

}

if(countv) printf("有回路!");

}

void DFS(Graph G,int i,int flag[]){

node *p;

printf("%2s ",G->List[i].name);

flag[i]=1;

p=G->List[i].fnext;

while(p){

if(!flag[p->adj])

DFS(G,p->adj,flag);

p=p->next;

}

}

//深度优先遍历

void DFSTravel(Graph G){

int i;

int flag[20];//标志数组

for(i=0;iv;i++)

flag[i]=0;

for(i=0;iv;i++)

if(!flag[i])

DFS(G,i,flag);

}

//建立队列

typedef struct{

int *elem;

int front, rear;

}*Queue;

//队列初始化

void InitQueue(Queue Q){

Q->elem=(int *)malloc(20*sizeof(int));

if(!Q->elem)

exit(0);

Q->front=Q->rear=0;

}

//入队

void Enter(Queue Q, int e){

if((Q->rear + 1)%20!= Q->front)

Q->elem[Q->rear ]=e;

else

printf("队列满!\n");

Q->rear=(Q->rear+1)%20;

}

//出队

void Leave(Queue Q, int e){

if(Q->rear != Q->front)

e=Q->elem[Q->front];

else

printf("队列空!\n");

Q->front=(Q->front+1)%20;

}

//广度优先遍历

void BFSTravel(Graph G){

Queue Q;

node *p;

int i,j=0;

int flag[20];//标志数组

Q=malloc(sizeof(20));

InitQueue(Q);

for(i=0;iv;i++)

flag[i]=0;

for(i=0;iv;i++)

if(flag[i]==0){

flag[i]=1;

printf("%2s",G->List[i].name);

Enter(Q,i);

while(Q->front!=Q->rear){

Leave(Q,j);//队头元素出队并置为j

p=G->List[j].fnext;

while(p!=NULL){

if(flag[p->adj]==0){

printf("%2s ",G->List[p->adj].name);

flag[p->adj]=1;

Enter(Q,p->adj);

}

p=p->next;

}

}

}

}

int minimum(ClosEdge cl,int vnum){

int i;

int w,p;

w=1000;

for(i=1;i<=vnum;i++)

if(cl[i].lowcost!=0&&cl[i].lowcost

w=cl[i].lowcost;p=i;

}

return p;

}

void Prim(AGraph *G1,int u){

ClosEdge closedge;

int i,j,k;

for(j=1;j<=G1->v1;j++) /* 辅助数组初始化 */

if(j!=u){

closedge[j].data=u;

closedge[j].lowcost=G1->edge[u][j];

}

closedge[u].lowcost=0; /* 初始,U={u} */

for(i=1;iv1;i++){

k=minimum(closedge,G1->v1); /* 求出生成树的下一个顶点*/

printf("%d-----%d\n",closedge[k].data,k); /* 输出生成树的边 */

closedge[k].lowcost=0; /* 第k顶点并入U集 */

for(j=1;j<=G1->v1;j++) /* 新顶点并入U后,修改辅助数组*/

if(G1->edge[k][j]

closedge[j].data=k;

closedge[j].lowcost=G1->edge[k][j];

}

}

}

//菜单列表

void menu(){

printf("\t**********************图的遍历问题**********************\n");

printf("\t\t------- 1.建立无向邻接图---------\n");

printf("\t\t------- 2.建立有向邻接图---------\n");

printf("\t\t------- 3.建立无向邻接矩阵---------\n");

printf("\t\t------- 4.输出各顶点的度---------\n");

printf("\t\t------- 5.拓扑排序---------\n");

printf("\t\t------- 6.深度优先遍历---------\n");

printf("\t\t------- 7.广度优先遍历---------\n");

printf("\t\t------- 8.prim算法生成最小生成树---------\n");

printf("\t\t------- 9-退出---------\n");

printf("\t********************************************** **********\n");

}

//主函数

void main(){

Graph G;

AGraph G1;

int choice,u;

stack *s=(stack *)malloc(sizeof(stack));

s->next =NULL;

while(1){

menu();

printf("请输入选择:");

scanf("%d",&choice);

switch(choice)

{

case1:G=CreatDG();Print(G);printf("\n\n");break;

case2:G=CreatAG();Print(G);printf("\n\n");break;

case3:CreateAN(&G1);PrintAN(&G1);printf("\n\n");break; case4:Du(G);printf("\n\n");break;

case5:printf("拓扑排序:");Topo(G,s);printf("\n\n");break;

case6:printf("深度优先遍历:");DFSTravel(G);printf("\n\n");break;

case7:printf("广度优先遍历:");BFSTravel(G);printf("\n\n");break;

case 8:

printf("请输入起点序号:");

scanf("%d",&u);

printf("Prim算法:\n");

Prim(&G1,u);printf("\n");

break;

case 9: exit(0);

default: printf("输入错误,请重新输入:\n\n ");

}

}

}

六、使用说明

1、程序名为实验5.exe,运行坏境为DOS.程序执行后显示如图所示:

2、建立无向邻接图

3、输出各顶点的度

4、进行深度优先遍历

5、进行广度优先遍历

6、建立有向邻接图

7、拓扑排序

8、建立无向邻接矩阵

9、prim算法生成最小生成树

七、实验总结

本次实验对我们来说有不小的难度,花费了很长的时间,在大家的商量讨论和共同努力下,最终完成了实验的内容,组长在此过程中很认真负责,使组员一步一步前进。同时,这使我们在图这方面的知识更加全面,通过实验进一步增强了我们的实际运用知识的能力,对我们很有帮助。

烘焙实验报告撰写具体内容及要求

实验一:面包制作 1. 实验目的 通过实验进一步熟悉面包生产工艺,掌握面包制作技术及相关原理。 2. 面团形成和发酵的基本原理 【补充】 3.面包的配方 4. 实验仪器 和面机、醒发箱、烤箱、冰箱、台称及其他食品制作小工具。 5.制作工艺及操作步骤 面包一次发酵法制作工艺流程:【补充】 操作步骤如下: (1)称料(按配方百分比计量称重) (2)调整加水水温。“水温=3×面团理想温度-室温-面粉温度-和面摩擦升温”(测定室温、面粉温度,确定面团理想温度,和面升温,计算出加水水温)(3)投料:粉→酵母→干搅匀→糖、面包改良剂→干搅匀→加水(边加水边搅拌)(4)搅拌:慢速搅拌,至无粉粒(约2min),加入融化的黄油慢速搅拌lmin,快速搅拌(约10~12min),面团受拉,形成薄膜。 (5)切割:切割成450g重面团。注意:称重时加减面团要切,不应拉面团,以免破坏已形成的面筋网络。 (6)搓团:将切好的面团搓成圆形。表面要形成光滑,无接口,接口放在底部。 (7)舒缓:将搓圆后的面团放在工作台上,用塑料布盖住,静止约15min。 (8)成型:将舒缓好的面团放入成型机内(压片→卷折→成型);或将面团用杆面

仗压成面片状,将面片卷折2.5圈以上,再顺搓,成长型面包坯。 (9)装模:将做好的面包坯装入模盒内。 (10)醒发:将模盒放在烤盘内,一起送入醒发箱。醒发时间约1h,箱内温度:约35℃。醒发后的面团两边与模盒相平。 (11)焙烤:将醒发后的面团送入烤箱。上火:180℃,下火:210℃,时间:25min 6.面包评分【附产品外观和切面组织图片】 按面包评分标准,逐一评述。如: 面包表皮色泽为棕黄,有斑点且无光泽,4分; …….. 7.结果分析分析影响面包品质的因素。 结合评分结果分析影响面包品质的因素【参考《食品工艺学》】 附:面包评分标准 1.表皮色泽(5分) (1) 棕黄、金黄、红棕、浅棕色; 5分 若有斑点、无光泽、不均匀扣0.5分。 (2) 棕黄、棕色、浅褐色; 4分 若有斑点、无光泽、不均匀扣0.5分。 (3) 棕灰、褐灰。 3分 (4) 灰白或焦黑色 2分 (5) 灰白或焦黑色并呈塌陷状 1分 2.表皮质地与面包形状(5分) (1) 冠大,预极明显,无裂纹,平滑无斑 5分 不平滑,厚而硬,有裂纹扣0.5分。 (2) 冠中等,颈短,表皮光洁平滑无斑点。 4分 (3) 冠小,颈短,表皮光洁平滑无斑点。 3分 表皮不光洁,不平滑扣0.5分。 (4) 冠不显示,无颈,塌陷。 2分 (5) 无冠,无颈,塌陷。 1分 3.面包心色泽(5分) (1) 洁白、乳白并有丝样光泽; 5分 无丝样光泽扣除0.5分。

数据结构实验答案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");

上机实验内容及实验报告要求

上机实验内容及实验报告要求 本文从网络收集而来,上传到平台为了帮到更多的人,如果您需要使用本文档,请点击下载按钮下载本文档(有偿下载),另外祝您生活愉快,工作顺利,万事如意! 上机实验内容及实验报告要求 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10M硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.C文件、.OBJ 文件和.EXE文件)。 3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用A4纸打印) 1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的:

③算法描述(可用文字描述,也可用流程图): ④源代码:(.C的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对C文件的要求: 程序应具有以下特点:A可读性:有注释。 B交互性:有输入提示。 C结构化程序设计风格:分层缩进、隔行书写。 3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。 1.顺序表的删除。 2.带头结点的单链表的插入。 3.带头结点的单链表的删除。 注意:1.每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。 例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。 2.实验报告中的源代码应是通过编译链接即可运

数据结构实验

实验2 查找算法的实现和应用?实验目的 1. 熟练掌握静态查找表的查找方法; 2. 熟练掌握动态查找表的查找方法; 3. 掌握hash表的技术. ?实验内容 1.用二分查找法对查找表进行查找; 2.建立二叉排序树并对该树进行查找; 3.确定hash函数及冲突处理方法,建立一个hash表并实现查找。 程序代码 #include using namespace std; int main() { int arraay[10]={1,2,3,4,5,6,7,8,9,10}; int binary_search(int a[10],int t); cout<<"Enter the target:"; int target; cin>>target; binary_search(arraay,target); return 0; } int binary_search(int a[10],int t) { int bottom=0,top=9; while(bottom

cout<<"Not present!"; } return 0; } 结果 二叉排序树 #include #include #include using namespace std; typedef int keyType; typedef struct Node { keyType key; struct Node* left; struct Node* right; struct Node* parent; }Node,*PNode; void inseart(PNode* root, keyType key) { PNode p = (PNode)malloc(sizeof(Node)); p -> key = key;

数据结构实验五-查找与排序的实现

实验报告 课程名称数据结构实验名称查找与排序的实现 系别专业班级指导教师11 学号实验日期实验成绩 一、实验目的 (1)掌握交换排序算法(冒泡排序)的基本思想; (2)掌握交换排序算法(冒泡排序)的实现方法; (3)掌握折半查找算法的基本思想; (4)掌握折半查找算法的实现方法; 二、实验内容 1.对同一组数据分别进行冒泡排序,输出排序结果。要求: 1)设计三种输入数据序列:正序、反序、无序 2)修改程序: a)将序列采用手工输入的方式输入 b)增加记录比较次数、移动次数的变量并输出其值,分析三种序列状态的算法时间复杂 性 2.对给定的有序查找集合,通过折半查找与给定值k相等的元素。 3.在冒泡算法中若设置一个变量lastExchangeIndex来标记每趟排序时经过交换的最后位置, 算法如何改进? 三、设计与编码 1.本实验用到的理论知识 2.算法设计

3.编码 package sort_search; import java.util.Scanner; public class Sort_Search { //冒泡排序算法 public void BubbleSort(int r[]){ int temp; int count=0,move=0; boolean flag=true; for(int i=1;ir[j+1]){ temp=r[j]; r[j]=r[j+1]; r[j+1]=temp; move++; flag=true; } } } System.out.println("排序后的数组为:"); for(int i=0;i

《数据结构》实验报告

苏州科技学院 数据结构(C语言版) 实验报告 专业班级测绘1011 学号10201151 姓名XX 实习地点C1 机房 指导教师史守正

目录 封面 (1) 目录 (2) 实验一线性表 (3) 一、程序设计的基本思想,原理和算法描述 (3) 二、源程序及注释(打包上传) (3) 三、运行输出结果 (4) 四、调试和运行程序过程中产生的问题及采取的措施 (6) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (6) 实验二栈和队列 (7) 一、程序设计的基本思想,原理和算法描述 (8) 二、源程序及注释(打包上传) (8) 三、运行输出结果 (8) 四、调试和运行程序过程中产生的问题及采取的措施 (10) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (10) 实验三树和二叉树 (11) 一、程序设计的基本思想,原理和算法描述 (11) 二、源程序及注释(打包上传) (12) 三、运行输出结果 (12) 四、调试和运行程序过程中产生的问题及采取的措施 (12) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (12) 实验四图 (13) 一、程序设计的基本思想,原理和算法描述 (13) 二、源程序及注释(打包上传) (14) 三、运行输出结果 (14) 四、调试和运行程序过程中产生的问题及采取的措施 (15) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (16) 实验五查找 (17) 一、程序设计的基本思想,原理和算法描述 (17)

二、源程序及注释(打包上传) (18) 三、运行输出结果 (18) 四、调试和运行程序过程中产生的问题及采取的措施 (19) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (19) 实验六排序 (20) 一、程序设计的基本思想,原理和算法描述 (20) 二、源程序及注释(打包上传) (21) 三、运行输出结果 (21) 四、调试和运行程序过程中产生的问题及采取的措施 (24) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (24) 实验一线性表 一、程序设计的基本思想,原理和算法描述: 程序的主要分为自定义函数、主函数。自定义函数有 InitList_Sq、Out_List、ListInsert_Sq、ListDelete_Sq、LocateElem_Sq 、compare。主函数在运行中调用上述的自定义函数,每个自定义函数实现程序的每部分的小功能。 1.程序设计基本思想 用c语言编译程序,利用顺序存储方式实现下列功能:根据键盘输入数据建立一个线性表,并输出该线性表;然后根据屏幕菜单的选择,可以进行数据的插入、删除、查找,并在插入或删除数据后,再输出线性表;最后在屏幕菜单中选择结束按钮,即可结束程序的运行。 2.原理 线性表通过顺序表现,链式表示,一元多项式表示,其中链式表示又分为静态链表,双向链表,循环链表等,在不同的情况下各不相同,他可以是一个数字,也可以是一个符号,通过符号或数字来实现程序的运行。 3.算法描述

计算机上机实验内容及实验报告要求

计算机上机实验内容及实验报告要求 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10m硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj文件和.exe文件)。 3. 截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用a4纸打印) 1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的: ③算法描述(可用文字描述,也可用流程图): ④源代码:(.c的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对c文件的要求: 程序应具有以下特点:a 可读性:有注释。 b 交互性:有输入提示。 c 结构化程序设计风格:分层缩进、隔行书写。 3. 上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。

1. 顺序表的删除。 2.带头结点的单链表的插入。 3. 带头结点的单链表的删除。 注意:1. 每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。 例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。 2. 实验报告中的源代码应是通过编译链接即可运行的。 3. 提交到个人空间中的内容应是上机实验中的全部内容。

数据结构实验报告

数据结构实验报告 一.题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二.解决方案 对于前三个题目要求,我们用一个程序实现代码如下 #include #include #include #include "Stack.h"//栈的头文件,没有用上 typedefintElemType; //数据类型 typedefint Status; //返回值类型 //定义二叉树结构 typedefstructBiTNode{ ElemType data; //数据域 structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree; intInsertBST(BiTree&T,int key){//插入二叉树函数 if(T==NULL) { T = (BiTree)malloc(sizeof(BiTNode)); T->data=key; T->lChild=T->rChild=NULL; return 1; } else if(keydata){ InsertBST(T->lChild,key); } else if(key>T->data){ InsertBST(T->rChild,key); } else return 0; } BiTreeCreateBST(int a[],int n){//创建二叉树函数 BiTreebst=NULL; inti=0; while(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;} ∥

计算机上机实验内容及实验报告要求(完整版)

报告编号:YT-FS-1915-76 计算机上机实验内容及实验报告要求(完整版) After Completing The T ask According To The Original Plan, A Report Will Be Formed T o Reflect The Basic Situation Encountered, Reveal The Existing Problems And Put Forward Future Ideas. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity

计算机上机实验内容及实验报告要 求(完整版) 备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10m硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj 文件和.exe文件)。 3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用a4纸打印)

1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的: ③算法描述(可用文字描述,也可用流程图): ④源代码:(.c的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对c文件的要求: 程序应具有以下特点:a 可读性:有注释。 b 交互性:有输入提示。 c 结构化程序设计风格:分层缩进、隔行书写。 3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。 1.顺序表的删除。

数据结构实验报告

姓名: 学号: 班级: 2010年12月15日

实验一线性表的应用 【实验目的】 1、熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。、; 2、以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点; 3、掌握线性表的动态分配顺序存储结构的定义和基本操作的实现; 4、通过本章实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的 应用和链表的建立等各种基本操作)。 【实验内容】 约瑟夫问题的实现:n只猴子要选猴王,所有的猴子按1,2,…,n编号围坐一圈,从第一号开始按1,2…,m报数,凡报到m号的猴子退出圈外,如此次循环报数,知道圈内剩下一只猴子时,这个猴子就是猴王。编写一个程序实现上述过程,n和m由键盘输入。【实验要求】 1、要求用顺序表和链表分别实现约瑟夫问题。 2、独立完成,严禁抄袭。 3、上的实验报告有如下部分组成: ①实验名称 ②实验目的 ③实验内容:问题描述:数据描述:算法描述:程序清单:测试数据 算法: #include #include typedef struct LPeople { int num; struct LPeople *next; }peo; void Joseph(int n,int m) //用循环链表实现 { int i,j; peo *p,*q,*head; head=p=q=(peo *)malloc(sizeof(peo)); p->num=0;p->next=head; for(i=1;inum=i;q->next=p;p->next=head; } q=p;p=p->next; i=0;j=1; while(i

数据结构实验五

1. 实验步骤: 先定义顺序表的结点: typedef struct { KeyType key; InfoType otherinfo; }ElemType; typedef struct { ElemType *R; int length; }SqList; 然后定义一个随机取数的函数,存到顺序表中: void CreateList(SqList &L,int n) 然后定义一个显示顺序表的函数,将顺序表中的数据显示出来: void ListTraverse(SqList L) 然后通过排序函数,将所有的数据按照从大到小的顺序排列: void BubbleSort(SqList &L) 实验结果: 测试数据: 38 86 9 88 29 18 58 27 排序后: 9 18 27 29 38 58 86 88 BubbleSort排序方法中数据的比较次数为:27 疑难小结: 这个程序的难点在于排序函数,总是把从第几个数开始排序以及怎样循环弄错。 源代码: #include using namespace std; #include typedef int KeyType; typedef char * InfoType; typedef struct { KeyType key; InfoType otherinfo; }ElemType; typedef struct { ElemType *R; int length; }SqList; int CmpNum; void CreateList(SqList &L,int n) { int 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] 留在原位

实验报告格式与要求

作业格式要求 一、作业题目 围绕如何学习信息安全专业课程,掌握专业知识等内容自拟题目并进行论述。 二、用纸、页面设置要求 作业应按规定格式用计算机打印,纸张大小一律使用A4复印纸,单面打印。 页面设置:每一面的上方(天头)和下方(地脚)应留边25mm左右,左侧(订口)和右侧(切口)应分别留边317mm左右。页码设置为:插入页码,居中。 三、作业内容打印要求 作业中所有标点符号必须是中文全角逗号、句号。 (一)目录 采用四号字,其中每章题目用黑体字,每节题目用宋体字,并注明各章节起始页码,题目和页码用“……”相连,如下所示: 目录(黑体小3号) (自然空一行) 第一章 XXXXXXXX ……………………………………………1 (黑体小4号) 1.1 XXXXXX ………………………………………………2 (宋体小4号) 1.1.1 XXXXX …………………………………………6 (宋体小4号) 第二章 XXXXXXXXXX ………………………………………40(黑体小4号)(二)正文字体要求 每章题目居中、黑体小三号;每节题目左顶边、宋体四号加黑;每小节题目左顶边、宋体小四号加黑。正文文字用宋体小四号汉字和小四号“Times New Roman”英文字体,每自然段首行缩进2个字符。 (三)行间距要求 每章题目与每节题目之间的行距设置:每章题目后设单倍行距,段后0.5 行。

每节题目与小节题目之间的行距设置:每节题目后设单倍行距,段后0.5 行。 正文行距设置:设多倍行距,设置值为1.25。 (四)正文章节序号编制 章,编写为:第一章,第二章…。 节,编写为:1. 1、1. 2…,2. 1、2. 2…。 小节,编写为:1. 1. 1, 1. 1. 2…。 小节以下层次,先以括号为序,如(1),(2)…;再以圈圈为序,如①, ②…。层次采用如下格式: 例如: 第一章 XXXXXXXX(黑体小三号)(单倍行距,段后0.5行) 1. 1 XXXXXXXX(宋体四号加黑)(单倍行距,段后0.5行) 1.1. 1 xxxxxx(宋体小四号加黑) (首行缩进2个字符)(1)xxxxx(小四号宋体) (首行缩进2个字符)① xxxxxx(小四号宋体) (下一章另起一页) 第二章 XXXXXXXX(黑体小三号)(单倍行距,段后0.5行) 2. 1 XXXXXXXX(宋体四号加黑)(单倍行距,段后0.5行) 2.1. 1 xxxxxx(宋体小四号加黑) (首行缩进2个字符)(1)xxxxx(宋体小四号) (首行缩进2个字符)① xxxxxx(宋体小四号) (五)报告的公式、图与表 公式号以章分组编号,如(2-4)表示第二章的第4个公式。 公式尽量采用公式编辑应用程序输入,选择默认格式,公式号右对齐,公式调整至基本居中。 图与表中的文字小于正文中的文字字号。 图与表以章分组编序号,如图3-5表示第三章的第5幅图。

数据结构实验

长春大学计算机学院网络工程专业 数据结构实验报告 实验名称:实验二栈和队列的操作与应用 班级:网络14406 姓名:李奎学号:041440624 实验地点:日期: 一、实验目的: 1.熟练掌握栈和队列的特点。 2.掌握栈的定义和基本操作,熟练掌握顺序栈的操作及应用。 3.掌握链队的入队和出队等基本操作。 4.加深对栈结构和队列结构的理解,逐步培养解决实际问题的编程能力。 二、实验内容、要求和环境: 注:将完成的实验报告重命名为:班级+学号+姓名+(实验二),(如:041340538张三(实验二)),发邮件到:ccujsjzl@https://www.360docs.net/doc/42483632.html,。提交时限:本次实验后24小时之内。 阅读程序,完成填空,并上机运行调试。 1、顺序栈,对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数 (1)文件SqStackDef. h 中实现了栈的顺序存储表示 #define STACK_INIT_SIZE 10 /* 存储空间初始分配量*/ #define STACKINCREMENT 2 /* 存储空间分配增量*/ typedef struct SqStack { SElemType *base; /* 在栈构造之前和销毁之后,base 的值为NULL */ SElemType *top; /* 栈顶指针*/ int stacksize; /* 当前已分配的存储空间,以元素为单位*/ }SqStack; /* 顺序栈*/ (2)文件SqStackAlgo.h 中实现顺序栈的基本操作(存储结构由SqStackDef.h 定义) Status InitStack(SqStack &S) { /* 构造一个空栈S */ S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!S.base) exit(OVERFLOW); /* 存储分配失败*/ S.top=S.base; S.stacksize=STACK_INIT_SIZE; return OK; } int StackLength(SqStack S) { // 返回S 的元素个数,即栈的长度, 编写此函数

数据结构实验五A

《数据结构与算法分析》 实验报告书 学期:2014 - 2015 学年第 2 学期 班级:信息管理与信息系统2班 学号: 1310030217 姓名:田洪斌 实验类别:(★)基础型()设计型 实验时间: 成绩: 信息管理系

一、实验内容 实现程序,按满二叉树给元素编号并输入的方式构造二叉树。 二、实验目的 1、掌握二叉树的静态及操作特点; 2、掌握二叉树的各种遍历方法; 3、掌握二叉树的存储、线索化等在C语言环境中的实现方法; 4、掌握哈夫曼树的构造方法及编码方法。 三、需求分析 用二叉树结构表示来完成输入、编辑、调试、运行的全过程。并规定: a.手动输入数字建立二叉树 b.程序可以输入、调试、运行、显示、遍历 c.测试数据:用户手动输入的数据 四、系统设计 1.数据结构设计 在本程序中对二叉树的存储主要用的是顺序存储结构,将二叉树存储在一个一维数组中。数据的输入输出都是采用整型数据进行。在主函数中只是定义数据类型,程序的实现功能化主要是在主函数中通过给要调用的函数参数来实现程序要求的功能。 2.程序结构设计 (1)程序中主要函数功能: main()/////////////////////////////////////////////主函数 menu()/////////////////////////////////////////////菜单 BiTree CreateBiTree()///////////////////////先序建立二叉树 (2)函数调用关系 见图4-1。

图4-1 函数关系图 五、 调试分析 1.算法和函数中出现了一些系统无法识别的变量,照成程序出现了错 误。原因是没有注意算法与源程序的区别。算法是简单的对源程序进行描述 的,是给人阅读的,所以有些变量没有定义我们就能看懂。而程序中的变量一定要先定义才能够被引用,才能被计算机识别。 2.在调试过程中遇到问题是利用C++程序进行调试的,找出错误并改正。 3.数据输出函数运行不正常,经检查程序,发现是定义错误,更改后错误排除; 六、 测试结果 1.运行时输入正确密码进入主界面,系统根据输入的数字选项来调用相应的函数。主要实现“功能选择”的界面,在这个界面里有显示系统的五大功能,根据每个功能前面的序号进行选择。以下为该界面: main BiTree CreateB iTree() meun()

数据结构实验报告-答案.doc

数据结构实验报告-答案 数据结构(C语言版)实验报告专业班级学号姓名实验1实验题目:单链表的插入和删除实验目的:了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求:建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤:1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序:(1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码:#include“stdio.h“#include“string.h“#include“stdlib.h“#include“ctype. h“typedefstructnode//定义结点{chardata[10];//结点的数据域为字符串structnode*next;//结点的指针域}ListNode;typedefListNode*LinkList;//自定义LinkList单链表类型LinkListCreatListR1();//函数,用尾插入法建立带头结点的单链表LinkListCreatList(void);//函数,用头插入法建立带头结点的单链表ListNode*LocateNode();//函数,按值查找结点voidDeleteList();//函数,删除指定值的结点voidprintlist();//函数,打印链表中的所有值voidDeleteAll();//函数,删除所有结点,释放内存

实验报告撰写要求正式版

For the things that have been done in a certain period, the general inspection of the system is also a specific general analysis to find out the shortcomings and deficiencies 实验报告撰写要求正式版

实验报告撰写要求正式版 下载提示:此报告资料适用于某一时期已经做过的事情,进行一次全面系统的总检查、总评价,同时也是一次具体的总分析、总研究,找出成绩、缺点和不足,并找出可提升点和教训记录成文,为以后遇到同类事项提供借鉴的经验。文档可以直接使用,也可根据实际需要修订后使用。 1. 实验报告和实验预习报告使用同一份实验报告纸,是在预习报告的基础上继续补充相关内容就可以完成的,不作重复劳动,因此需要首先把预习报告做的规范、全面。 2. 根据实验要求,在实验时间内到实验室进行实验时,一边测量,一边记录实验数据。但是为了使报告准确、美观,此时应该把实验测量数据先记录在草稿纸上。等到整理报告时再抄写到实验报告纸上,以避免错填了数据,造成修改,把报告写得很乱。

3. 在实验中,如果发生实验测量数据与事先的计算数值不符,甚至相差过大,此时应该找出原因,是原来的计算错误,还是测量中有问题,不能不了了之,这样只能算是未完成本次实验。 4. 实验报告不是简单的实验数据记录纸,应该有实验情况分析,要把通过实验所测量的数据与计算值加以比较,如果误差很小(一般5%以下)就可以认为是基本吻合的。如果误差较大就应该有误差分析,找出原因。 5. 在实验报告上应该有每一项的实验结论,要通过具体实验内容和具体实验数据分析作出结论(不能笼统的说验证了某某定理)。

数据结构-实验五-图

数据结构与算法课程实验报告实验五:图的相关算法应用 姓名:cll 班级: 学号:

【程序运行效果】 一、实验内容: 求有向网络中任意两点之间的最短路 实验目的: 掌握图和网络的定义,掌握图的邻接矩阵、邻接表和十字链表等存储表示。掌握图的深度和广度遍历算法,掌握求网络的最短路的标号法和floyd算法。 二、问题描述: 对于下面一张若干个城市以及城市间距离的地图,从地图中所有可能的路径中求出任意两个城市间的最短距离及路径,给出任意两个城市间的最短距离值及途径的各个城市。 三、问题的实现: 3.1数据类型的定义 #define MAXVEX 50 //最大的顶点个数 #define MAX 100000 typedef struct{ char name[5]; //城市的名称

}DataType; //数据结构类型 typedef struct{ int arcs[MAXVEX][MAXVEX]; //临接矩阵 DataType data[MAXVEX]; //顶点信息 int vexs; //顶点数 }MGraph,*AdjMetrix; //邻接矩阵表示图 3.2主要的实现思路: 用邻接矩阵的方法表示各城市直接路线的图,之后用Floyd算法求解两点直接的最短距离,并用递归的方法求出途经的城市。 主要源程序代码: #include #include #define MAXVEX 50 #define MAX 100000 typedef struct{ char name[5]; //城市的名称 }DataType; //数据结构类型 typedef struct{ int arcs[MAXVEX][MAXVEX]; //临接矩阵 DataType data[MAXVEX]; //顶点信息 int vexs; //顶点数 }MGraph,*AdjMetrix; //创建临接矩阵 void CreatGraph(AdjMetrix g,int m[][MAXVEX],DataType d[],int n){ /*g表示邻接矩阵,m[][MAXVEX]表示输入的邻接矩阵,d[]表示各城市的名称,n表示城市数目*/ int i,j; g->vexs = n; for(i=0;i < g->vexs;i++){ g->data[i] = d[i]; for(j=0;jvexs;j++){ g->arcs[i][j] = m[i][j]; } } } //求最短路径 void Floyd(AdjMetrix g,int F[][10],int path[][10]){ int i,j,k; for(i=0;ivexs;i++){ for(j=0;jvexs;j++){

数据结构实验报告图实验

邻接矩阵的实现 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; } }

相关文档
最新文档