建立图的邻接矩阵问题 5C

抄的一段代码,但是有问题,main函数调用CreateMGraph函数出现问题。不知道问题出在哪,诚求解答。图片说明图片说明图片说明

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数据结构 图 邻接矩阵的建立 运行到最后一步会自动退出

``` void creatematrix(graph *g)//邻接矩阵 { int x,t,i,j; vertextype e1,e2; cout<<"输入顶点和边数"<<endl; cin>>g->numnodes>>g->numedges; cout<<"输入各个顶点数据"<<endl; for(i=0;i<g->numnodes;i++) cin>>g->vexs[i];//输入每个节点的字符数据到顶点表 vexs[0]=A for(i=0;i<g->numnodes;i++) { for(int j=0;i<g->numnodes;j++) g->arc[i][j]=0; }//邻接矩阵初始化 cout<<"请输入每条边的两个顶点结点"<<endl; for(int k=0;k<g->numedges;k++)//输入边数 { cin>>e1>>e2; for(i=0;i<g->numnodes;i++)//根据顶点表查找第一个结点 { if(g->vexs[i]==e1) break; } for(j=0;j<g->numnodes;j++)//根据顶点表查找第二个结点 { if(g->vexs[j]==e2) break; } g->arc[i][j]=1; g->arc[j][i]=g->arc[i][j];//无向图的邻接矩阵对称 } cout<<"邻接矩阵建立完成"<<endl; }![图片说明](https://img-ask.csdn.net/upload/201712/06/1512547025_862927.jpg) ``` 只能运行到如图部分,按回车之后程序会自动退出

数据结构 图 根据邻接矩阵求两点间的所有路径 用栈的方法程序运行时无反应

``` #define maxvex 10 #include <iostream> #include <stack> using namespace std; int visit[maxvex]; typedef char vertextype;//结点数据 typedef struct { vertextype vexs[maxvex];//顶点表 int arc[maxvex][maxvex];//邻接矩阵 int numnodes,numedges,direction;//顶点数,边数,方向 }graph; void creatematrix(graph *g)//邻接矩阵 { int i,j; vertextype e1,e2; cout<<"输入顶点和边数"<<endl; cin>>g->numnodes>>g->numedges; cout<<"是否为有向图?有向图输入1,无向图输入0"<<endl; cin>>g->direction; cout<<"输入各个顶点数据"<<endl; for(i=0;i<g->numnodes;i++) cin>>g->vexs[i];//输入每个节点的字符数据到顶点表 vexs[0]=A for(i=0;i<g->numnodes;i++) { for(int j=0;j<g->numnodes;j++) g->arc[i][j]=0; }//邻接矩阵初始化 cout<<"请输入每条边的两个顶点结点"<<endl; for(int k=0;k<g->numedges;k++)//输入边数 { cin>>e1>>e2; for(i=0;i<g->numnodes;i++)//根据顶点表查找第一个结点 { if(g->vexs[i]==e1) break; } for(j=0;j<g->numnodes;j++)//根据顶点表查找第二个结点 { if(g->vexs[j]==e2) break; } g->arc[i][j]=1; if(g->direction==0) g->arc[j][i]=g->arc[i][j];//无向图的邻接矩阵对称 } cout<<"邻接矩阵建立完成"<<endl; cout<<"邻接矩阵如下"<<endl; for(i=0;i<g->numnodes;i++) { for(j=0;j<g->numnodes;j++) cout<<g->arc[i][j]; cout<<endl; } } void matrixoutput(graph g) { cout<<"邻接矩阵如下"<<endl; for(int i=0;i<g.numnodes;i++) { for(int j=0;j<g.numnodes;j++) cout<<g.arc[i][j]; cout<<endl; } } void DFS1(graph g,int i) { visit[i]=true; cout<<g.vexs[i]<<" ";//打印顶点 for(int j=0;j<g.numnodes;j++)//一个连通分量的遍历 if(g.arc[i][j]==1 && !visit[j]) DFS1(g,j); } //邻接矩阵的深度遍历 void DFS(graph g) { for(int i=0;i<g.numnodes;i++) visit[i]=0;//初始所有顶点状态都是未访问过状态 for(int i=0;i<g.numnodes;i++)//若是连通图,只会执行一次 if(!visit[i])//对未访问过的顶点调用DFS DFS1(g,i); } void output(stack<int> s)//打印栈内元素 { stack<int> out; int e; while(!s.empty()) { e=s.top(); s.pop(); out.push(e); } while(!out.empty()) { char b=char(out.top())+65; cout<<b<<" "; out.pop(); } cout<<endl; } void way(graph g,vertextype e1,vertextype e2) { int visit[g.numnodes]; for(int i=0;i<g.numnodes;i++) visit[i]=0; stack<int> s;//栈内为顶点数据的整型 int a=int(e1)-65;//起点 int b=int(e2)-65;//终点 s.push(a); while(s.top()!=b){ for(int i=0;i<g.numnodes;i++){ if(visit[i]=0 && g.arc[s.top()][i]==1){ s.push(i); } } } output(s); while(!s.empty()){ int temp1=s.top(); s.pop(); for(int i=0;i<g.numnodes;i++){ if(visit[i]=0 && g.arc[s.top()][i]==1){ s.push(i); } } if(s.top()==b) output(s); visit[temp1]=0; } } main() { graph g; vertextype e1,e2; creatematrix(&g); cout<<"对邻接矩阵进行深度优先遍历"<<endl; DFS(g); cout<<endl; cout<<"请输入起点和终点"<<endl; cin>>e1>>e2; way(g,e1,e2); system("pause"); } ``` ![图片说明](https://img-ask.csdn.net/upload/201712/07/1512653961_537149.jpg)

给一个图G的邻接矩阵,请你判断是否连通。用语言表示出来?

给一个图G的邻接矩阵,请你判断是否连通。用语言表示。请问用深度优先遍历的话怎么描述出来呢?麻烦大佬了谢谢

MatlAB中如何将CSV数据文件用邻接矩阵表示出来

MatlAB中如何将CSV数据文件用邻接矩阵表示出来,可以转化为稀疏矩阵。

C#语言中如何用邻接矩阵法表示图,并且遍历图?数据结构中图的遍历用C#的实现?

C#语言中如何用邻接矩阵法表示图,并且遍历图?数据结构中图的遍历用C#的实现?

这是一个C++的无向图邻接矩阵,深度优先和广度优先遍历,实在不知道哪里不对,求大神解答

``` #include<iostream> using namespace std; const int MaxSize=10;//图中的最多顶点个数 template <class T> classMGraph { public: MGraph(T a[],int n,int e);//构造函数,建立具有n个顶点e条边的图 ~MGraph(){} //析构函数为空 void DFSTraverse(int v); //深度优先遍历图 void BFSTraverse(int v); //广度优先遍历图 void Setvisited(); // private: T vertex[MaxSize]; //存放图中顶点的数组 int arc[MaxSize][MaxSize]; //存放图中边的数组 int vertexNum,arcNum; //图的顶点数和边数 int visited[MaxSize]; // }; template<class T> void MGraph<T>::Setvisited() { for(int i=0;i<vertexNum;i++) visited[i]=0; } template<class T> MGraph<T>::MGraph(T a[],int n,int e) { int i,j,k; vertexNum=n;arcNum=e; for(i=0;i<vertexNum;i++) vertex[i]=a[i]; for(i=0;i<vertexNum;i++) //初始化邻阶矩阵 for(j=0;j<vertexNum;j++) arc[i][j]=0; for(k=0;k<arcNum;k++) //依次输入每一条边 { cout<<"putin bianhao"; cin>>i>>j; //输入边依附的两个顶点的编号 arc[i][j]=1;arc[j][i]=1;//置有边标志 } } template<class T> void MGraph<T>::DFSTraverse(int v) { int j; cout<<vertex[v];visited[v]=1; for(j=0;j<vertexNum;j++) if(arc[v][j]==1&&visited[j]==0) DFSTraverse(j); } template<class T> void MGraph<T>::BFSTraverse(int v) { int j,front,rear; int Q[MaxSize]; front=rear=-1;//初始化队列,假设队列采用顺序存储且不会发溢出 cout<<vertex[v];visited[v]=1;Q[++rear]=v;//当访问顶点入队 while(front!=rear) //当队列非空时 { v=Q[++front]; for(j=0;j<vertexNum;j++) //将队头元素出队并送到v中 if(arc[v][j]==1&&visited[j]==0) { cout<<vertex[j];visited[j]=1;Q[++rear]=j; } } } int main() { int n,e; cout <<"putin dian:"; cin>>n; cout<<"putin edge:"; cin>>e; char a[MaxSize]; cin>>a; MGraph<char> m(a,n,e); m.Setvisited(); cout<<"DFST:"; m.DFSTraverse(1); cout<<endl; m.Setvisited(); cout<<"BFST:"; m.BFSTraverse(1); cout<<endl; return 0; } ```

c语言 把邻接矩阵的相关数据存入文件中

MGraph CreatMG(MGraph g) { int i,j,k,n; cout<<"输入顶点数和边数"; cin>>g.n>>g.e; for(i=0;i<g.n;i++) { cout<<"序号为"<<i<<"的值"; cin>>g.vexs[i].data; g.vexs[i].no=i; } for(i=0;i<g.n;i++) { for(j=0;j<g.n;j++) { g.edges[i][j]=0; } } for(k=0;k<g.e;k++) { cout<<"输入该边的始点与终点以及权值"; cin>>i>>j>>n; g.edges[i][j]=n; } return g; }这是邻接矩阵的建立

关于数据结构的简单问题完整算法 C语言 假设用邻接矩阵存储无向图,设计算法,求出度数最大的顶点编号

假设用邻接矩阵存储无向图,设计算法,求出度数最大的顶点编号 急急急紧急急急急急急急急急急急急急急急急急急急急急急

无向图以邻接矩阵存储,请算法描述深度优先遍历该图的非递归算法

无向图以邻接矩阵存储,请算法描述深度优先遍历该图的非递归算法。哪位大神可以帮忙写具体点用栈怎么实现?谢谢了!![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/1.gif)

建立图的邻接表的问题,不知道问题出在哪,求解答

#define MaxVertexNum 20 /* 最大顶点数设为20 */ #define INFINITY 32767 /* ∞设为双字节无符号整数的最大值32767*/ typedef char VertexType; /* 顶点类型设为字符型 */ typedef int EdgeType; /* 边的权值设为整型 */ enum GraphType { DG, UG, DN, UN }; /* 有向图,无向图,有向网图,无向网图*/ typedef struct { VertexType Vertices[ MaxVertexNum ]; /* 顶点表 */ EdgeType Edges[ MaxVertexNum ][ MaxVertexNum ]; /* 邻接矩阵,即边表 */ int n, e; /* 顶点数n和边数e */ enum GraphType GType; /* 图的类型分4种:UG、DG、UN、DN */ } MGraph; /* MGragh是以邻接矩阵存储的图类型 */ void CreateMGraph ( MGraph *G ) { int i, j, k, w; G-> GType = UN; /* Undirected Network 无向网图 */ printf( "请输入顶点数和边数(输入格式为:顶点数, 边数):\n" ); scanf( "%d, %d",&(G->n), &(G->e) ); /* 输入顶点数和边数 */ printf("请输入顶点信息(输入格式为:顶点号<CR>):\n"); for ( i = 0; i < G->n; i++ ) scanf( "%c",&(G-> Vertices[i]) ); /* 输入顶点信息,建立顶点表 */ for ( i = 0; i < G->n; i++ ) for ( j = 0; j < G->n; j++ ) G->Edges[i][j] = INFINITY; /* 初始化邻接矩阵 */ printf( "请输入每条边对应的两个顶点的序号和权值,输入格式为:i, j, w:\n" ); for ( k = 0; k < G->e; k++ ) { scanf("%d,%d,%d ",&i, &j, &w); /* 输入e条边上的权,建立邻接矩阵 */ G->Edges[i][j] = w; G->Edges[j][i] = w; /* 因为无向网图的邻接矩阵是对称的 */ } }![图片说明](https://img-ask.csdn.net/upload/201611/20/1479642113_25182.png)

图的BFS遍历的输出问题

正确的输入输出: ``` 9 15 ABCDEFGHI 0 1 1 0 5 1 1 6 1 5 6 1 2 1 1 1 8 1 2 8 1 6 7 1 2 3 1 3 8 1 3 7 1 3 4 1 4 7 1 4 5 1 3 6 1 A B F C G I E D H ``` 输出: ![图片说明](https://img-ask.csdn.net/upload/202005/25/1590408177_256045.png) 正确的输出: 我的代码: 单步调试发现,输入没有问题:问题应该出在BFS的输出中, 前三个输出相同 A B F 第四个标准答案为 C 但在此时的 B 出队对应的第一个入队的元素为 号元素 G; 是我的代码有问题还是答案有问题? ``` #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include<string.h> #define MAX_VERTEX 10 //无边界时的值; #define inf 65535 //表示两点之间没有边相连 //访问标识函数; int visit[MAX_VERTEX]; //标记顶点是否被访问 /**图的邻接矩阵的建立**/ //邻接矩阵数据结构定义 typedef struct Martrix_Graph { char vertex[MAX_VERTEX]; //存储顶点信息 int edge[MAX_VERTEX][MAX_VERTEX]; //存储边信息 int vertex_number, edge_number;//存储顶点数和边数 }Martrix_Graph; /**BFS会用到队列这个数据结构**/ /**循环队列**/ typedef struct { char data[MAX_VERTEX]; //存储信息; int front; //头指针 int rear; //尾指针,队列非空则指向队尾最后一个元素后一个位置 }SqQueue; /* TODO:以邻接矩阵为存储结构建立无向图 功能描述:创建以邻接矩阵为存储结构的无向图 参数描述:Martrix_Graph型指针G为主要操作参数 提示:在输入无向图顶点信息时提示printf("请输入无向图顶点信息(如ABCDEF....):\n"); 在输入无向图邻接矩阵相连的边信息时提示printf("请输入无向图邻接矩阵相连的边信息,相连标记为1\n"); */ void Create_non_direction_martrix_Graph(Martrix_Graph *G) { int i, k, j ,number; scanf_s("%d", &G->vertex_number); //输入顶点的数目,和边的总数; scanf_s("%d", &G->edge_number); getchar(); // 获取 '\n' ,防止其对之后的字符输入造成影响; printf("请输入无向图顶点信息(如ABCDEF....):\n"); for (i = 0; i < G->vertex_number; i++) scanf_s("%c", &G->vertex[i]); // 输入顶点的信息; // 初始化邻阶矩阵 /*for (i = 0; i < G->edge_number; i++) for (j = 0; j < G->edge_number; j++) G->edge[i][j] = 0; */ printf("请输入无向图邻接矩阵相连的边信息,相连标记为1\n"); for (k = 0; k < G->edge_number; k++) { getchar(); scanf_s("%d %d %d", &i, &j, &number); G->edge[i][j] = number; } } //队列初始化 void InitQueue(SqQueue *Q) { Q->front = 0; Q->rear = 0; } //入队 bool EnQueue(SqQueue *Q, char e) { //采用留一个空间的方式; //判断队列是否满 if ((Q->rear + 1) % MAX_VERTEX == Q->front) return false; Q->data[Q->rear] = e; //队尾移动; Q->rear = (Q->rear + 1) % MAX_VERTEX; return true; } //出队---删除队首元素,并赋给e void DeQueue(SqQueue *Q, char *e) //e 也为 char 型的指针; { *e = Q->data[Q->front]; //取出元素; //将对应的位置++; Q->front = (Q->front + 1) % MAX_VERTEX; } //队列判空 bool isEmptyQueue(SqQueue *Q) { return Q->front == Q->rear ? true : false; //返回 0 1; } /*找到顶点v的对应下标*/ int LocateVex(Martrix_Graph *G, char v) { int i; for (i = 0; i < G->vertex_number; i++) { if (G->vertex[i] == v) break; } return i; } /* TODO:对整个图进行广度优先遍历 功能描述:对整张无向图进行广度优先遍历 参数描述:Martrix_Graph型参数G 提示:遍历图的顶点时提示printf("此邻接矩阵无向图BFS的结果为:\n"); 队首顶点出队,并赋值给data时输出printf("%c ",data); */ void BFS_Travel(Martrix_Graph G) //为变量; { SqQueue queue; int i, j ,w; char data ,e; // 初始化; memset(visit, 0, MAX_VERTEX); InitQueue(&queue); // bfs 输出; for (i = 0; i < G.vertex_number; i++) { if (visit[i] == 0) { visit[i] = 1; data = G.vertex[i]; printf("%c ", data); //输出遍历; EnQueue(&queue, data); while ( !isEmptyQueue(&queue)) //当队列不为空时; { // 取出队首元素找到它的对应位置; DeQueue(&queue, &e); //通过e带出元素; w = LocateVex(&G, e); //取出与该元素相连接的元素; for (j = 0; j < G.vertex_number; j++) { //当未访问和有为该元素的连接元素时; if (visit[j] == 0 && G.edge[w][j] == 1) { visit[j] = 1; data = G.vertex[j]; printf("%c ", data); EnQueue(&queue, data); } } } } } } int main() { printf("创建邻接矩阵无向图并进行广度遍历\n"); printf("请输入构造的无向图的顶点数和边数:\n"); //输入顶点数和边数; Martrix_Graph G; //申请一个图的空间; Create_non_direction_martrix_Graph(&G); //创建图; BFS_Travel(G); return 0; } ```

关于邻接表的建立与输出

``` #include<stdio.h> #include<malloc.h> #define max 10000 int edge[1000000][2]={0}; typedef struct _enode { //int dis; int vex; struct _enode* nextedge; }enode; typedef struct _vnode { int vex; enode* firstedge; }vnode; typedef struct _pic { int vex_num; int edge_num; vnode node[max]; }pic; void find_insert(enode* edge,enode* temp) { enode* p; p=edge; while(p->nextedge!=NULL) p=p->nextedge; p->nextedge=temp; } pic* create_pic() { int i=0,c1,c2; enode* node_temp; pic* picture; picture=(pic*)malloc(sizeof(pic)); picture->edge_num=5; picture->vex_num=3; for(i=1;i<=picture->vex_num;i++) //you are sb。I just say to you { picture->node[i].vex=i; picture->node[i].firstedge=NULL; c1=edge[i][0]; c2=edge[i][1]; node_temp=(enode*)malloc(sizeof(struct _enode)); node_temp->vex=c2; if(picture->node[c1].firstedge==NULL) { picture->node[c1].firstedge=node_temp; } else { find_insert(picture->node[c1].firstedge,node_temp); } } return picture; } int main(void) { int i=0; pic* picture; for(i=1;i<=5;i++) { scanf("%d",&edge[i][0]); scanf("%d",&edge[i][1]); } picture=create_pic(); for(i=1;i<=picture->vex_num;i++) { enode* p; p=(enode*)malloc(sizeof(enode)); if(picture->node[i].firstedge==NULL) printf("error"); else { p=picture->node[i].firstedge; printf("%d ",picture->node[i].vex); while(p!=NULL) { printf("%d ",p->vex); p=p->nextedge; } } printf("\n"); } } ``` 一个邻接表的建立与输出的程序,求大神看看为啥输入5个边的信息没有反应 ![图片说明](https://img-ask.csdn.net/upload/201703/08/1488960146_731655.png)

无向图的存储结构,求大神求大神

Description 给出一个有n个顶点的无向图,顶点编号从0到n-1。给出每一条边,输出该图的邻接矩阵和邻接表。 Input 输入的第一行是顶点数n和边数 e 。 1 ≤ n ≤ 300 ,1 ≤ e ≤ 1000 接下来是 e 行,每行2个整数 i , j ( 0 ≤ i, j < n ) ,表示顶点 i 和 j 之间有一条边。 Output 输出该图的邻接矩阵。邻接表按顶点编号每行从小到大,每列也是从小到大。 然后输出一个空行。 接着输出该图的邻接表。 为了使得答案唯一,邻接表每行的第一个数字是顶点编号,然后按照顶点的下标编号从小到大输出各邻接顶点。 Sample Input 6 7 0 1 1 5 0 4 2 5 1 4 2 3 3 5 Sample Output 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 4 1 0 4 5 2 3 5 3 2 5 4 0 1 5 1 2 3

要求自定10个教学目标和局部关系,建立邻接矩阵,计算可达矩阵,进而确定教学目标的层级。(通过c语言实现)

我的代码不知道哪出了问题,希望大佬指正一下。 #include<stdio.h> #include<math.h> void main() { int i,j,n; int a[5][5],b[5][5],c[5][5]; int d[5]={0}; int k=0; printf("plz input A+E:\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { scanf("%d",&c[i][j]); b[i][j]=c[i][j]; a[i][j]=0; } } while(k==0) { for(i=0;i<5;i++) for(j=0;j<5;j++) { for(n=0;n<5;n++) a[i][j]+=b[i][n]*c[n][j]; if(a[i][j]!=0) a[i][j]=1; } for(i=0;i<5;i++) { for(j=0;j<5;j++) if(a[i][j]=c[i][j]) k=1; else { k=0; for(i=0;i<5;i++) for(j=0;j<5;j++) b[i][j]=a[i][j]; break; } if(k==0) break; } } printf("可达矩阵为:"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("%3d,a[i][j]="); if(j==4) printf("\n"); d[i]+=a[j][i]; } } printf("层次为:"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(d[j]==i) printf("%3d,j+1"); } } }

【数据结构】用邻接表存储图的简单问题

``` #include<stdio.h> #define MAX_VERTEX_NUM 20//最多顶点个数 #define ERROR -1 typedef char VertexData; //边表节点类型定义 typedef struct ArcNode{ int adj;//该弧指向顶点的位置 struct ArcNode *nextarc;//指向下一条弧的指针 }ArcNode; //表头节点类型定义 typedef struct VertexNode{ VertexData data; ArcNode *firstarc;//指向该顶点第一条弧的指针; int order; }VertexNode; typedef struct{ VertexNode vertex[MAX_VERTEX_NUM]; int vexnum,arcnum; }AdjList; int LocateVertex(AdjList *G,VertexData v) { int j=ERROR,k; for(k=0;k<G->vexnum;k++) { if(G->vertex[k].data==v) { j=G->vertex[k].order; break; } } return(j); } void CreateGraph(AdjList *G) { printf("请输入图的顶点数和弧数(最多不超过20):"); scanf("%d %d",&G->vexnum,&G->arcnum); printf("请输入顶点:"); int i,j,k; char v1,v2; for(i=0;i<G->vexnum;i++) { scanf("%c",&(G->vertex[i].data)); G->vertex[i].order=i+1; G->vertex[i].firstarc=NULL; } printf("请输入一条弧的两个顶点(例如AB):\n"); for(k=0;k<G->vexnum;k++) { scanf("%c %c",&v1,&v2); ArcNode *p,*q; p=(ArcNode*)malloc(sizeof(ArcNode)); q=(ArcNode*)malloc(sizeof(ArcNode)); i=LocateVertex(G,v1); j=LocateVertex(G,v2); p->adj=j; q->adj=i; p->nextarc=G->vertex[i].firstarc; q->nextarc=G->vertex[j].firstarc; G->vertex[i].firstarc=p; G->vertex[j].firstarc=q; fflush(stdin); } } void print(AdjList *G) { int i,j; for(i=0;i<G->vexnum;i++) { printf("%c ",G->vertex[i].data); ArcNode *p; p=G->vertex[i].firstarc; while(p!=NULL) { printf("%d ",p->adj); p=p->nextarc; } printf("\n"); } } void main() { AdjList G; CreateGraph(&G); print(&G); } ``` 用邻接表存储图,但是测试(将所建的邻接表打印在屏幕上)时出现以下非正常结果 求大佬指点迷津 ![图片说明](https://img-ask.csdn.net/upload/201812/25/1545744676_78069.jpg)

在Windows7 64位+VS2015上运行求解AOE网关键路径的算法,邻接表表示的AOE网提示网中有回路,邻接矩阵表示的AOE网显示正确的信息?使用的算法是一样的,两种方法的相关类的接口函数也一致,为什么会出现这种问题?

[百度云盘上的相关工程链接](https://pan.baidu.com/s/1R8DHKU6d851fBdcf_DXehQ "没有提取码")![图片说明](https://img-ask.csdn.net/upload/201912/13/1576240272_388536.png)

数据结构图(用C语言)当中为什么邻接表用结构体变量报错,用邻接矩阵不报错?

我写的一个邻接表代码 ``` #include<stdio.h> #include<stdlib.h> #define MAXSIZE 10 struct ArcNode { int adjvex; ArcNode *next; }; struct VertexNode { int vertex; ArcNode *firstedge; }; int visited[MAXSIZE]; typedef struct Graph { VertexNode adjlist[MAXSIZE]; int vertexNum, arcNum; }ALGraph ; \\初始化邻接表 void InitALGraph(ALGraph g, int a[ ], int n, int e) { g.vertexNum=n; g.arcNum=e; int i,j; for (j=0; j<MAXSIZE; j++) g.adjlist[j].firstedge=NULL; for (i=0; i<g.vertexNum; i++) //输入顶点信息,初始化边表 { g.adjlist[i].vertex=a[i]; } int k; for (k=0; k<g.arcNum; k++) //输入边的信息存储在边表中 { int j; scanf("%d%d",&i,&j); ArcNode* s=(ArcNode*)malloc(sizeof(ArcNode)); s->adjvex=j; s->next=g.adjlist[i].firstedge; g.adjlist[i].firstedge=s; } } \\深度优先遍历 void DFSTraverse(ALGraph g , int v) { printf("%d\n",g.adjlist[v].vertex); visited[v]=1; ArcNode * p=g.adjlist[v].firstedge; int i; for(i=0;i<g.vertexNum;i++){ while(p){ if(p->adjvex==i&&visited[i]==0) DFSTraverse(g,i); else p=p->next; } } } int main(){ ALGraph g; int a[10]={1,2,3,4}; InitALGraph(g,a, 4, 4); DFSTraverse(g , 0); } ``` 编译没问题,运行说The variable 'g' is being used without being inititalized 但是这个邻接矩阵代码 ``` #include<stdio.h> #include<stdlib.h> #define MAX_VER_NUM 50 int visited[MAX_VER_NUM]={0}; typedef char VertexType; VertexType Q[MAX_VER_NUM]; typedef enum { DG,UDG }GraphType; typedef struct { VertexType vexs[MAX_VER_NUM]; //顶点向量 int arcs[MAX_VER_NUM][MAX_VER_NUM]; //邻接矩阵 int vexnum,arcnum; //图的当前顶点数和弧数 GraphType type; //图的种类标志 }MGraph; //1. 根据名称得到指定顶点在顶点集合中的下标 //vex 顶点 //return 如果找到,则返回下标,否则,返回0 int getIndexOfVexs(char vex,MGraph *MG) { int i; for(i=1;i<=MG->vexnum;i++) { if(MG->vexs[i]==vex) { return i; } } return 0; } //2. 创建邻接矩阵 void create_MG(MGraph *MG) { int i,j,k; int v1,v2,type; char c1,c2; printf("Please input graph type DG(1) or UDG(0):"); scanf("%d",&type); if(type==1) { MG->type=DG; } else if(type==0) { MG->type=UDG; } else { printf("Please input correct graph type DG(1) or UDG(0)!"); return; } printf("Please input vexnum:"); scanf("%d",&MG->vexnum); printf("Please input arcnum:"); scanf("%d",&MG->arcnum); getchar(); for(i=1;i<=MG->vexnum;i++) { printf("Please input %dth vex(char):",i); scanf("%c",&MG->vexs[i]); getchar(); } //初始化邻接矩阵 for(i=1;i<=MG->vexnum;i++) { for (j=1;j<=MG->vexnum;j++) { MG->arcs[i][j]=0; } } //输入边的信息,建立邻接矩阵 for(k=1;k<=MG->arcnum;k++) { printf("Please input %dth arc v1(char) v2(char):",k); scanf("%c %c",&c1,&c2); v1=getIndexOfVexs(c1,MG); v2=getIndexOfVexs(c2,MG); if(MG->type==DG) { MG->arcs[v1][v2]=1; } else { MG->arcs[v1][v2]=MG->arcs[v2][v1]=1; } getchar(); } } //3. 打印邻接矩阵和顶点信息 void print_MG(MGraph MG) { int i,j; if(MG.type==DG) { printf("Graph type: Direct graph\n"); } else { printf("Graph type: Undirect graph\n"); } printf("Graph vertex number: %d\n",MG.vexnum); printf("Graph arc number: %d\n",MG.arcnum); printf("Vertex set:"); for(i=1;i<=MG.vexnum;i++) { printf("%c",MG.vexs[i]); } printf("\nAdjacency Matrix:\n"); for(i=1;i<=MG.vexnum;i++) { for(j=1;j<=MG.vexnum;j++) { printf("%d",MG.arcs[i][j]); } printf("\n"); } } //4. 从顶点V出发深度优先遍历图MG void DFSMG(MGraph MG, VertexType V) { printf("%c",V); int v,j; v=getIndexOfVexs(V,&MG); visited[v]=1; for (j=1; j<=MG.vexnum; j++) if (MG.arcs[v][j]==1 && visited[j]==0) DFSMG(MG, MG.vexs[j]); } //5. 从顶点V出发广度优先遍历图MG void BFSMG(MGraph MG, VertexType V) { int v,j; int front=0, rear=0; //假设采用顺序队列且不会发生溢出 printf("%c",V); v=getIndexOfVexs(V,&MG); visited[v]=1; Q[++rear]=V; while (front!=rear) { VertexType c=Q[++front]; v=getIndexOfVexs(c,&MG); for (j=1; j<=MG.vexnum; j++) if (MG.arcs[v][j]==1 && visited[j]==0 ) { printf("%c",MG.vexs[j]); visited[j]=1; Q[++rear]=MG.vexs[j]; } } } //主函数 int main(void) { MGraph MG; create_MG(&MG); print_MG(MG); //printf("深度优先遍历序列为:\n"); //DFSMG(MG,'A'); //visited[MAX_VER_NUM]={0}; printf("\n广度优先遍历序列为:\n"); BFSMG(MG,'A'); return 0; } ``` 上面的邻接矩阵代码用的也是结构体变量,为什么又可以执行,是因为邻接表图的结构体中有指针吗,但是以下代码 ``` #include<stdio.h> struct MyStruct{ int a; int *b; MyStruct *c; }; int main(){ MyStruct ms; ms.a=5; printf("%d\n",ms.a); return 0; } ``` 结构体里也有指针,为什么可以执行?

关于数据结构的邻接表的创建

在创建完表头之后,怎么把该顶点链接的顶点插到表后面?代表有些看不懂,求助。万分感谢。

c语言,建立无向图进行广度优先遍历产生问题

c语言,建立无向图进行广度优先遍历但是不论从哪个头开始,都只输出起始结点A的邻接结点,查了好久没发现错误,请大神帮忙 ```![图片说明](https://img-ask.csdn.net/upload/201906/30/1561863698_680440.png) #include<stdio.h> #include<malloc.h> #include<stdlib.h> #define x 10 typedef struct Head{//构建结点 struct Head *next; int num;//头结点编号,如A-0,B-1,...... int weight;//边权重 }Head; typedef struct Node{//构建头 struct Head *head; char name;//name代表头结点的名字 }good,Adj[x]; typedef struct{//构建单链表 Adj Adjlist; int m,n;//m边个数为17,n结点个数为10 }undigraph; Head* Creat(){//创建一个结点 Head *node = (Head *)malloc(sizeof(Head));//为结 点分配空间 return node; } int readfile(char *file_name_path)//读取文件数据,file_name_path为文件路径。 { //这里因为无向图不是特别复杂,我打算用列表读入数据 char b[100]; FILE *fp; fp = fopen(file_name_path,"r"); fscanf(fp,"%[^\n]", b);//利用正则表达式以换行符为结尾读取数据 printf("内容为:\n%s\n",b); fclose(fp); } void creatUndigraph(undigraph *L){//创建无向图 int n = 10;//结点个数为10 int m = 17;//边个数为17 // 也可利用scanf进行人机交互 ,则下方n和m都要替换为L->n和L->m // printf("输入结点个数“); // scanf("%d",&L->n); // printf("输入边个数“); // scanf("%d",&L->m); //建立头表 char head_name[] = "ABCDEFGHIJ";//头结点名称 char edges_relationship[]= "0102060512192627233435363845567889";//为两个相邻结点的下标集合,2个为一组代表一对有邻接关系的结点 int weight[] = {2,5,1,3,2,5,3,3,4,2,3,5,6,3,1,4,7};//为与边相对应的权重 //printf("输入头结点名字:\n"); for(int i = 0;i<n;i++) { L->Adjlist[i].name = head_name[i]; //scanf(" %c",&L->Adjlist[i].name);//(若采用人机交互)%c前要加一个空格,来输入n个字符,否则只能输入n/2个字符 L->Adjlist[i].head = NULL; } //建立边关系 for(int j = 1;j<1+m;j++) { //printf("输入两个邻接结点的2个下标:\n"); Head *node_head; Head *node_end; node_head = Creat(); node_end = Creat();//创建头尾结点 node_head->num = int(edges_relationship[2*j-2]-48); node_end->num = int(edges_relationship[2*j-1]-48);//输入两个邻接结点的2个下标 node_end->weight = weight[j-1]; node_head->weight = weight[j-1];//输入边权重 //scanf("%d",&node_head->num);//若采用人机交互)输入开始结点编号 //scanf("%d",&node_end->num);//若采用人机交互)输入结尾结点编号 node_head->next = L->Adjlist[node_end->num].head; L->Adjlist[node_end->num].head = node_head; node_end->next = L->Adjlist[node_head->num].head; L->Adjlist[node_head->num].head = node_end; } //打印 printf("邻接表为:\n"); for(int y = 0;y<n;y++){ Head *p; p=Creat(); p = L->Adjlist[y].head; while(p){ printf("(%c,%c),weight:%d\n",L->Adjlist[y].name,L->Adjlist[p->num].name,p->weight); p=p->next; } } } typedef struct{//定义环形列表 int data[x]; //存放列表中元素 int front,rear; //定义头尾指针 }circle; void Initial(circle *&d){//初始化,d为指针 d = (circle *)malloc(sizeof(circle)) ; d->front = d->rear = 0; } bool enter(circle *&d,int z){//加入队列,不二判断正确与否,正确则返回true,错误返回false if((d->rear+1)%x==d->front) return false; d->rear = (d->rear+1)%x; d->data[d->rear] = z; return true; } bool out(circle *&d,int z){//出队列,不二判断正确与否,正确则返回true,错误返回false if(d->front==d->rear) return false; d->front = (d->front+1)%x; z = d->data[d->front]; return true; } bool empty(circle *d){//判断是否为空列表 return(d->front==d->rear); } void wide(undigraph *L,int t){//创建广度优先遍历 ,Z为出发点编号 int r; int j; Head *p; circle *bi; //环形队列 Initial(bi); //初始化 int c[x]; //定义访问放入此数组中 for(r = 0;r<10/*即L->n,我并未进行人机交互,所以此处为结点个数n=10*/;r++) c[r] = 0; printf("%c",L->Adjlist[t].name); c[t] = 1; //已访问赋值为1 enter(bi,t); while(!empty(bi))//判断是否为空列表 {//printf("第\n"); out(bi,j); //j顶点出队 p = L->Adjlist[j].head; while(p!=NULL) {//printf("p的num:%d\n",p->num); if(c[p->num]==0) { printf(" %c",L->Adjlist[p->num].name); c[p->num] = 1; enter(bi,p->num);//加入队列 //printf("杀p的num:%d\n",p->num); } p = p->next; } } printf("\n"); } int a[x] = {0}; //定义全局数组 void depth(undigraph *L,int z){ //创建深度优先遍历,z为出发点编号 Head *p; a[z] = 1; //已遍历结点赋值为1 printf(" %c",L->Adjlist[z].name); p = L->Adjlist[z].head; while(p!=NULL) { if(a[p->num]==0) depth(L,p->num); //递归访问顶点的下一点 p = p->next; } } int main() { undigraph L; creatUndigraph(&L); printf("\n广度优先遍历为:"); wide(&L,);//从下标为0(A)的结点开始广度优先遍历 printf("\n深度优先遍历为:"); depth(&L,0);//从下标为0(A)的结点开始遍深度优先历 return 0; } ``` 在wide(&L,数字),替换数字,改变开始遍历的结点,结果都是这个结点+邻接的4个结点+F G B C,请问怎么搞(无向图图片(https://img-ask.csdn.net/upload/201906/30/1561863882_448148.png) ![图片说明](https://img-ask.csdn.net/upload/201906/30/1561863882_448148.png) 这是出问题的运行结果![图片说明](https://img-ask.csdn.net/upload/201906/30/1561872516_966750.png)https://img-ask.csdn.net/upload/201906/30/1561872516_966750.png

MySQL 8.0.19安装教程(windows 64位)

话不多说直接开干 目录 1-先去官网下载点击的MySQL的下载​ 2-配置初始化的my.ini文件的文件 3-初始化MySQL 4-安装MySQL服务 + 启动MySQL 服务 5-连接MySQL + 修改密码 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置初始化的my.ini文件的文件 ...

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

navicat(内含激活码)

navicat支持mysql的可视化操作,内涵激活码,不用再忍受弹框的痛苦。

HTML期末大作业

这是我自己做的HTML期末大作业,花了很多时间,稍加修改就可以作为自己的作业了,而且也可以作为学习参考

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

基于STM32的电子时钟设计

时钟功能 还有闹钟功能,温湿度功能,整点报时功能 你值得拥有

学生成绩管理系统(PHP + MYSQL)

做的是数据库课程设计,使用的php + MySQL,本来是黄金搭配也就没啥说的,推荐使用wamp服务器,里面有详细的使用说明,带有界面的啊!呵呵 不行的话,可以给我留言!

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:itxy41)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

实用主义学Python(小白也容易上手的Python实用案例)

原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会&nbsp; 【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

零基础学C#编程—C#从小白到大咖

本课程从初学者角度出发,提供了C#从入门到成为程序开发高手所需要掌握的各方面知识和技术。 【课程特点】 1 由浅入深,编排合理; 2 视频讲解,精彩详尽; 3 丰富实例,轻松易学; 4 每章总结配有难点解析文档。 15大章节,228课时,1756分钟与你一同进步!

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

多功能数字钟.zip

利用数字电子计数知识设计并制作的数字电子钟(含multisim仿真),该数字钟具有显示星期、24小时制时间、闹铃、整点报时、时间校准功能

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

想学好JAVA必须要报两万的培训班吗? Java大神勿入 如果你: 零基础想学JAVA却不知道从何入手 看了一堆书和视频却还是连JAVA的环境都搭建不起来 囊中羞涩面对两万起的JAVA培训班不忍直视 在职没有每天大块的时间专门学习JAVA 那么恭喜你找到组织了,在这里有: 1. 一群志同道合立志学好JAVA的同学一起学习讨论JAVA 2. 灵活机动的学习时间完成特定学习任务+每日编程实战练习 3. 热心助人的助教和讲师及时帮你解决问题,不按时完成作业小心助教老师的家访哦 上一张图看看前辈的感悟: &nbsp; &nbsp; 大家一定迫不及待想知道什么是极简JAVA学习营了吧,下面就来给大家说道说道: 什么是极简JAVA学习营? 1. 针对Java小白或者初级Java学习者; 2. 利用9天时间,每天1个小时时间; 3.通过 每日作业 / 组队PK / 助教答疑 / 实战编程 / 项目答辩 / 社群讨论 / 趣味知识抢答等方式让学员爱上学习编程 , 最终实现能独立开发一个基于控制台的‘库存管理系统’ 的学习模式 极简JAVA学习营是怎么学习的? &nbsp; 如何报名? 只要购买了极简JAVA一:JAVA入门就算报名成功! &nbsp;本期为第四期极简JAVA学习营,我们来看看往期学员的学习状态: 作业看这里~ &nbsp; 助教的作业报告是不是很专业 不交作业打屁屁 助教答疑是不是很用心 &nbsp; 有奖抢答大家玩的很嗨啊 &nbsp; &nbsp; 项目答辩终于开始啦 &nbsp; 优秀者的获奖感言 &nbsp; 这是答辩项目的效果 &nbsp; &nbsp; 这么细致的服务,这么好的氛围,这样的学习效果,需要多少钱呢? 不要1999,不要199,不要99,只要9.9 是的你没听错,只要9.9以上所有就都属于你了 如果你: 1、&nbsp;想学JAVA没有基础 2、&nbsp;想学JAVA没有整块的时间 3、&nbsp;想学JAVA没有足够的预算 还等什么?赶紧报名吧,抓紧抢位,本期只招300人,错过只有等时间待定的下一期了 &nbsp; 报名请加小助手微信:eduxy-1 &nbsp; &nbsp;

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

机器学习实战系列套餐(必备基础+经典算法+案例实战)

机器学习实战系列套餐以实战为出发点,帮助同学们快速掌握机器学习领域必备经典算法原理并结合Python工具包进行实战应用。建议学习顺序:1.Python必备工具包:掌握实战工具 2.机器学习算法与实战应用:数学原理与应用方法都是必备技能 3.数据挖掘实战:通过真实数据集进行项目实战。按照下列课程顺序学习即可! 课程风格通俗易懂,用最接地气的方式带领大家轻松进军机器学习!提供所有课程代码,PPT与实战数据,有任何问题欢迎随时与我讨论。

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

【数据结构与算法综合实验】欢乐连连看(C++ & MFC)案例

这是武汉理工大学计算机学院数据结构与算法综合实验课程的第三次项目:欢乐连连看(C++ & MFC)迭代开发代码。运行环境:VS2017。已经实现功能:开始游戏、消子、判断胜负、提示、重排、计时、帮助。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

u-boot-2015.07.tar.bz2

uboot-2015-07最新代码,喜欢的朋友请拿去

相关热词 c# 开发接口 c# 中方法上面的限制 c# java 时间戳 c#单元测试入门 c# 数组转化成文本 c#实体类主外键关系设置 c# 子函数 局部 c#窗口位置设置 c# list 查询 c# 事件 执行顺序
立即提问