首页 > 软件 > 二维数组邻接矩阵,求代码!超急!

二维数组邻接矩阵,求代码!超急!

软件 2024-04-01

C语言:要这道题的代码,二维数组的。 c语言:(求代码) 描述 给定一个N行N列的整数矩阵(N<

#include

#include

typedef struct DataType

{

int result;

int row,column;

}Data;

typedef struct ListData

{

Data data;

struct ListData *next;

}List;

void Diaohuan(int **a,int **b,int n,int i,int j)

{

int k,l;

if(i>j)

{

k=i;

i=j;

j=k;

}

for(k=0;k

for(l=0;l

b[k][l]=a[k][l];

for(l=0;l

b[i][l]=a[j][l];

for(k=i+1;k

for(l=0;l

b[k][l]=a[k][l];

for(l=0;l

b[j][l]=a[i][l];

for(k=j+1;k

for(l=0;l

b[k][l]=a[k][l];

}

int Cal(int **a,int n)

{

int i,j;

int up=0,down=0;

for(i=0;i

for(j=i+1;j

up+=a[i][j];

for(i=1;i

for(j=0;j

down+=a[i][j];

int result=up-down;

if(result<0)

return -result;

return result;

}

List * CreateList(int result,int i,int j)

{

List *h=(List*)malloc(sizeof(List));

h->data.result=result;

h->data.row=i;

h->data.column=j;

h->next=NULL;

return h;

}

void Add(List *h,int result,int i,int j)

{

List *l=(List*)malloc(sizeof(List));

l->data.result=result;

l->data.row=i;

l->data.column=j;

l->next=NULL;

List *l1=h;

while(l1->next)

l1=l1->next;

l1->next=l;

}

Data Find(List *h)

{

List *p=h;

Data d=p->data;

while(p->next)

{

p=p->next;

if(p->data.result>d.result)

d=p->data;

}

return d;

}

void Free(List *h)

{

List *p=h;

while(h->next)

{

h=h->next;

free(p);

p=h;

}

}

int main()

{

int i,j,n;

int **a,**b;

scanf("%d",&n);

a=(int**)malloc(n*sizeof(int*));

b=(int**)malloc(n*sizeof(int*));

for(i=0;i

{

a[i]=(int*)malloc(n*sizeof(int));

b[i]=(int*)malloc(n*sizeof(int));

}

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

List *h=CreateList(Cal(a,n),0,0);

for(i=0;i

{

for(j=0;j

{

if(i==0&&j==0)

continue;

Diaohuan(a,b,n,i,j);

Add(h,Cal(b,n),i,j);

}

}

Data data=Find(h);

printf("\n\n%d\n\n",data.result);

Diaohuan(a,b,n,data.row,data.column);

printf("提示:\n\n第%d行与第%d行交换。\n\n",data.row+1,data.column+1);

for(i=0;i

{

for(j=i+1;j

{

if(i==0&&j==1)

printf("|%d",b[i][j]);

else printf("+%d",b[i][j]);

}

}

for(i=1;i

for(j=0;j

printf("-%d",b[i][j]);

printf("|=%d\n\n",data.result);

free(a);free(b);

Free(h);

return 0;

}

c++代码,求助!!!!急用!!!

下面是使用 C++ 编写的实现代码: #include #include using namespace std; const int N = 1e5; int n, k, a[N]; int main() { cin >> n >> k; for(int i = 0; i < n; i++) cin >> a[i]; for(int i = 0; i < n;) { int t = min(i + k + 1, n); // 计算操作区间 [i + 1, t) 的右端点 auto it = min_element(a + i, a + t); /

数据结构中无向图的邻接矩阵怎么写

无向邻接矩阵讲究的是对称性,找到初始节点,看它是否有邻边,比如初始节点是1,1与其自身没有边就写0,1与2如果有邻边就写1,按照此方法依次往下进行。最后能得到一个对称矩阵,不是对称矩阵就是错的。望采纳!

c#定义N*N二维数组,求对角线的和

在C#中,定义N*N的二维数组可以使用以下代码: int[,] array = new int[N,N]; 其中,N为数组的大小,可以根据需要进行调整。 接下来,可以使用for循环遍历数组,并累加对角线的元素值,具体代码如下: int sum = 0; for(int i=0; i邻接矩阵的表示法

在图的邻接矩阵表示法中:
① 用邻接矩阵表示顶点间的相邻关系
② 用一个顺序表来存储顶点信息
图的矩阵
设G=(V,E)是具有n个顶点的图,则G的邻接矩阵是具有如下性质的n阶方阵:
【例】
下图中无向图G 5 和有向图G 6 的邻接矩阵分别为A l 和A 2 。
网络矩阵
若G是网络,则邻接矩阵可定义为:
其中:
w ij 表示边上的权值;
∞表示一个计算机允许的、大于所有边上权值的数。
【例】下面带权图的两种邻接矩阵分别为A 3 和A 4 。
图的邻接矩阵存储结构形式说明
#define MaxVertexNum l00 //最大顶点数,应由用户定义
typedef char VertexType; //顶点类型应由用户定义
typedef int EdgeType; //边上的权值类型应由用户定义
typedef struct{
VextexType vexs[MaxVertexNum] //顶点表
EdeType edges[MaxVertexNum][MaxVertexNum];//邻接矩阵,可看作边表
int n,e; //图中当前的顶点数和边数
}MGragh;
注意:
① 在简单应用中,可直接用二维数组作为图的邻接矩阵(顶点表及顶点数等均可省略)。
② 当邻接矩阵中的元素仅表示相应的边是否存在时,EdgeTyPe可定义为值为0和1的枚举类型。
③无向图的邻接矩阵是对称矩阵,对规模特大的邻接矩阵可压缩存储。
④邻接矩阵表示法的空间复杂度S(n)=0(n 2 )。
⑤建立无向网络的算法。
void CreateMGraph(MGraph *G)
{//建立无向网的邻接矩阵表示
int i,j,k,w;
scanf("%d%d",&G->n,&G->e); //输入顶点数和边数
for(i = 0;i < n;i++) //读入顶点信息,建立顶点表
{
G->vexs=getchar();
}
for(i = 0;i < G->n;i++)
{
for(j = 0;j n;j++)
{
G->edges[i][j] = 0; //邻接矩阵初始化
}
}
for(k = 0;k < G->e;k++)
{//读入e条边,建立邻接矩阵
scanf("%d%d%d",&i,&j,&w); //输入边(v i ,v j )上的权w
G->edges[i][j]=w;
G->edges[j][i]=w;
}
}//CreateMGraph
该算法的执行时间是0(n+n 2 +e)。由于e
根据图的定义可知,图的逻辑结构分为两部分:V和E的集合。因此,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,称这个二维数组为邻接矩阵。邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵。
Matlab表达N=4;//图中的节点数目
dag=zeros(N,N);//邻接矩阵初始化,值均为0
C=1;S=2;R=3;
W=4;//制定各节点编号
dag(C,[RS])=1;//有两条有向边:C->R,C->S
dag(R,W)=1;//有向边:R->W
dag(S,W)=1;//有向边:S->W


标签:信息技术 编程 编程语言 理工学科 CC++

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18