资源简介
问题描述:平均路径长度是网络中另一个重要的特征度量,他是网络中所有节点对之间的平均最短距离。这里节点间的距离指的是从一个节点要经历的边的最小数目,其中所有节点之间的最大距离称为网络的直径。平均路径长度和直径衡量的是网络的传输性能与效率。平均路径长度的公式为
,其中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
- 下一篇:操作系统简单二级文件系统
相关资源
- 导线平差计算EXCEL
- cc2592的电路设计参考文档。
- ipAddressControl地址控件
- OLED0.91模组12832 IIC全套显示函数字符显
- 数据结构插队问题代码
- ascii读取及雷达数据的转换
- socket服务端和客户端互相发送消息、
- Idea eclipse完美一致主题
- 基于TDA2030的音频功率放大器附pcb
- Fireworks cs5 破解
- Plupload 上传.net MVC 上传
- PCB特性阻抗计算工具软件TXLine.rar
- CRC16位校验算法源代码
- 秒表程序.doc
- 蓝山BlueHill公司人事管理系统补充数据
- 修改过的caffe编译时用到的build_win.c
- opencv图片读取的路径问题
- TTF16 6.1.6.2 支持win10 x64.zip
- Tcp数据包详细解析
- delphi7 使用socket实现websocket
- doc(10)
- 286exs.doc
- 解析IP数据包程序的设计与实现
- jdk(mac)版1.8
- CentOS 7.4 拨号工具包
- nachos实验二 线程与同步
- 使用CDO和SMTP两种方式发送Email,解决
- SmsProject.zip
- 51单片机结合ADC0808电压采集
- 5秒内破解wordexcel密码
评论
共有 条评论