• 大小: 13KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签: C  网络直径  

资源简介

问题描述:平均路径长度是网络中另一个重要的特征度量,他是网络中所有节点对之间的平均最短距离。这里节点间的距离指的是从一个节点要经历的边的最小数目,其中所有节点之间的最大距离称为网络的直径。平均路径长度和直径衡量的是网络的传输性能与效率。平均路径长度的公式为 ,其中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  程序_图的平均路径长度\linkList.c

     文件       2579  2011-06-17 09:51  程序_图的平均路径长度\linkList.h

     文件       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


评论

共有 条评论