资源简介
问题描述:平均路径长度是网络中另一个重要的特征度量,他是网络中所有节点对之间的平均最短距离。这里节点间的距离指的是从一个节点要经历的边的最小数目,其中所有节点之间的最大距离称为网络的直径。平均路径长度和直径衡量的是网络的传输性能与效率。平均路径长度的公式为
,其中dij表示点i和j之间的最短距离(若dij不存在时,dij就不能加入,且分母要相应减1)
要求:输入邻接矩阵表示的图,计算其平均路径长度
代码片段和文件信息
/****************** DArray.c *****************/
/* This is file is about Dynamic-array *******/
#include
#include
#include “DArray.h“
// Allocate the empty DArray by rows and cols
int DACreate(DArray *DA int rows int cols){
int i;
// This is function just for array2D is NULL
if (DA->array2D != NULL)
return DARRAY_FAIL;
// Invalid rows or cols
if (rows<=0 || cols<=0)
return DARRAY_FAIL;
// Allocate the rows
DA->array2D = (DADataType**) calloc(rows sizeof(DADataType*));
if (DA->array2D == NULL)
return DARRAY_FAIL;
// Allocate the cols
for (i=0; i DA->array2D[i] = (DADataType*)calloc(cols sizeof(DADataType));
if (DA->array2D[i] == NULL){// Allocate fail
while(--i >= 0)// free the previous rows
free(DA->array2D[i]);
return DARRAY_FAIL;
}
}
return DARRAY_DONE;
}
// Initial the dynamic-array
int DAInitial(DArray *DA){
DA->array2D = NULL;
DA->cols = 0;
DA->rows = 0;
DA->size = 0;
DA->curRow = 0;
DA->curCol = 0;
// Create some memoroy
if (DACreate(DA DEF_DARRAY_ROWS DEF_DARRAY_COLS) != DARRAY_FAIL){
DA->maxRows = DEF_DARRAY_ROWS;
DA->maxCols = DEF_DARRAY_COLS;
DA->capacity = DEF_DARRAY_CAP;
}else
return DARRAY_FAIL;
return DARRAY_DONE;
}
// Destory the DArray
void DADestroy(DArray *DA){
DADataType *temp;
int end;
// Invalid argument or have alread destroy
if (DA==NULL || DA->array2D==NULL)
return;
DARestore(DA); // move the curRow to first
end = DA->maxRows;
while (end--){
temp = DA->array2D[DA->curRow];
DA->curRow++;
free(temp); // free every row
}
free(DA->array2D); // free all row poitor
DA->array2D = NULL;
// No element
DA->cols = DA->rows = DA->size = 0;
// current poitor
DA->curRow = 0;
DA->curCol = 0;
// default capacity
DA->capacity = 0;
DA->maxCols = DA->maxRows = 0;
}
// copy from DASrc to DADest
int DACopy(DArray *DADest DArray *DASrc){
// Invalid argument
if (DADest==NULL || DASrc==NULL)
return DARRAY_FAIL;
// if the source is empty
if (DAEmpty(DASrc) == DARRAY_EMPTY){
if (DAEmpty(DADest) != DARRAY_EMPTY)
DADestroy(DADest);
return DARRAY_DONE;
}
// DASrc is not empty then free dest‘s memory first
if (DAEmpty(DADest) != DARRAY_EMPTY)
DADestroy(DADest); // this operate destroy all memory
// Create the same memory as src
if (DAReCreate(DADest DASrc->maxRows DASrc->maxCols) == DARRAY_FAIL)
return DARRAY_FAIL;
// copy some argument
DADest->rows = DASrc->rows;
DADest->cols = DASrc->cols;
DADest->size = DASrc->size;
DADest->capacity = DASrc->capacity;
DARestore(DADest);
DARestore(DASrc);
// copy all data
do {
DAGet(DADest) = DAGet(DASrc);
DANext(DADest);
}while (DANext(DASrc) != DARRAY_END);
return DARRAY_DONE;
}
// reallocate the maximum element in DArray
int DAReCreate(DArray *DA int rows int cols){
int i j;
int maxRows maxCols;
DADataType **newArr;
if (rows<0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5949 2011-06-17 09:54 程序_图的平均路径长度\DArray.c
文件 3122 2011-06-17 09:53 程序_图的平均路径长度\DArray.h
文件 8816 2011-06-23 11:20 程序_图的平均路径长度\li
文件 2579 2011-06-17 09:51 程序_图的平均路径长度\li
文件 1327 2011-06-23 11:51 程序_图的平均路径长度\main.c
文件 12671 2007-06-22 15:50 程序_图的平均路径长度\MatrixGraph.c
文件 3392 2011-06-17 09:54 程序_图的平均路径长度\MatrixGraph.h
文件 290 2011-06-23 11:53 程序_图的平均路径长度\readme.txt
目录 0 2011-07-09 14:41 程序_图的平均路径长度
----------- --------- ---------- ----- ----
38146 9
- 上一篇:导线平差计算EXCEL
- 下一篇:操作系统简单二级文件系统
相关资源
- AutoCAD永久去教育版破解补丁
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- 欧姆龙CP1系列单轴定位PLC程序.cxp
- 用Beckhoff(倍福)PLC读写巴鲁夫RFID
- CVSNT 完整覆盖版防TortoiseCVS中文乱码
- pfc 使用说明.doc
- Scratch 飞机大战.sb3
- STC8951系列单片机中方指南
- 《Visual Prolog 基础类》 中文参考.chm
- Omron ETN21模块进行modbustcp通讯
- 基于ACCESS的生产管理信息系统.mdb
- CANopen使用手册_埃斯顿
- Scratch 吃豆人追踪者.sb3
- Scratch 变脸(将人物图片变成各种各样
- oracle数据迁移项目实施方案
- CanuMobiSim
- 易语言:一键cf基址源码
- 恒压力供水(DBW-DQ-1.s7p)
- ACCESS财务报表(带数据).accdb
- The Secret Path 3D 3D魔方迷宫[源码][scra
- scratch垃圾分类源码(最终版本).sb
-
Actionsc
ript 1.0实现能跟随鼠标运动的 - 右键属性文件校验插件可同时生成十
- ccs官方软件及安装
-
st
yles 引文样式语言( CSL ) 引文样 - CCS中如何生成LIB文件-并在另外CCS项目
- concept2.6无需安装1
- CCS5.05.1可使用的license
评论
共有 条评论