下载此文档

数据结构实验报告实验.doc


文档分类:高等教育 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
本科实验报告
课程名称: 数据结构
实验项目: 图结构
实验地点: 迎西校区逸夫楼302
专业班级:软件1109 学号:
学生姓名: 栗永春
指导教师: 牛之贤

年 月 日
图结构
一、实验目的和要求
目的与要求
二、实验内容和原理
三、主要仪器设备
四、操作方法与实验步骤
列出调试通过的源程序。/****************************************************************
* 采用邻接表存储结构,编写一个求无向图的连通分量个数的算法。 *
* xiaojinglingfen *
****************************************************************/
#include <>
#include <>
#include <>
int n; //定义全局变量,表示所构造的图中的总的顶点个数
//用于构造结点之间联系关系的弧结点
typedef struct arcNode
{
int position; //用来存放节点的标号
struct arcNode *next; //用来存放结点的下一个弧的信息
}ArcNode, *ArcNode_;
//定义用来构造元素的结点
typedef struct vNode
{
int mark; //在程序中用来标识是否被访问过
ArcNode *first;//存储连接到该结点的第一个弧信息的地址
}VNode, *VNode_;
//函数声明部分
VNode_ Structure();//构造一个图
void DFS(VNode_ Chart, int t);//递归方法实现链表深度探索
void Initialize(VNode_ Chart);//初始化所构造的顶点信息
void End(VNode_ Chart);//收尾工作,释放由malloc申请的空间
void main()
{
int i=0;
int count=0;
VNode_ Chart = Structure();//创建图
while(Chart[i].mark == 0)
{
DFS(Chart, i);
++count;
i = 0;
while((Chart[i].mark != 0)&&i<5)
{
++i;
}
}
printf("该图的连通分量的个数是%d.", count);
End(Chart);
}
//构造一个图的过程
VNode_ Structure()
{
VNode_ Chart;
int i, j, k;
ArcNode_ p, q;
printf("下面进行构造图的过程,请按照提示输入信息完成构造图的过程!\n");
printf("\n请输入要构造的图的顶点总数.\n");

scanf("%d", &n);//将用户输入的总的顶点数保存
//对输入数据进行判断
while(n<1)
{
printf("录入的数据有误!请重新输入。\n");
scanf("%d", &n);
}
Chart = (VNode_)malloc(n*sizeof(VNode));
Initialize(Chart);//初始化申请出来的空间
printf("请按照下面的提示构造图。\n\n");
for(i=0; i<n; ++i)
{
printf("请输入指向‘V%d’顶点的所有顶点,结束请输入 0 \n", i+1);
scanf("%d", &k);
if(k != 0)
{
q = (ArcNode_)malloc(sizeof(ArcNode));
q->position = k-1;
(Chart+i)->first = q;
p = q;
scanf("%d", &k);
while(k

数据结构实验报告实验 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wwlgqnh
  • 文件大小123 KB
  • 时间2021-04-04