Tag: graph

在C中打印毕达哥拉斯三重奏的代表

我正在尝试创建一个程序,用于打印C中发现的毕达哥拉斯三元组的映射数据。到目前为止,我编写了程序以便能够找到三元组。 #include #include int main (int argc, char * argv[]) { int a, b, c; int a2, b2, c2; int limit = 60; for (a = 1; a <= limit; a++) { a2 = a * a; for (b = 1; b <= limit; b++) { b2 = b * b; for (c = 0; […]

如何在迷宫中打印从源到目标的BFS路径

我正在尝试实现BFS,以便找到迷宫中从源到目标的最短路径。 我遇到的问题是我无法打印路径,它在迷宫中打印了’*’,但是如何在不打印所有被访问节点的情况下从BFS的前辈中提取路径? 这是我编译的代码: #include #include #include struct coord{ //This is a struct I’ll use to store coordinates int row; int col; }; //———QUEUE.C——-// struct TQueue{ struct coord *A; int QUEUE_MAX; }; typedef struct TQueue *Queue; Queue initQueue(int size){ // Initialize the queue Queue Q = malloc(sizeof(struct TQueue)); Q->A = malloc(size*sizeof(struct coord)); Q->QUEUE_MAX = size+1; Q->A[0].row […]

二维arrays的动态分配

我正在使用邻接矩阵实现图形,但我无法解决分段错误。 任何人都可以帮助我指导二维矩阵的动态分配吗? 我还想知道2-D数组如何存储在内存中以及如何访问它。 #include #include struct Graph{ int V; // To represent number the vertex… int E; //To represent number the Edge….. int **Adj; // Two dimensional matrix to form the adjacency matrix… }; struct Graph *adjMatrixOfGraph(){ int i; //for scanning the edges between them …. int u,v; // for loop while initliasing the adjacency […]

从ANSI C代码获取控制流图

我正在构建用于测试ansi c应用程序的工具。 只需加载代码,查看控制流图,运行测试,标记所有被击中的顶点。 我正在尝试通过解析代码来自己构建CFG。 不幸的是,如果代码嵌套,它会搞砸。 GCC提供从编译代码中获取CFG的能力。 我可能会为其输出编写解析器,但我需要行号来设置断点。 使用-fdump-tree-cfg或-fdump-tree-vcg输出控制流图时,是否可以获取行号?

R包链接到外部C库

我有一些利用igraph库的c代码。 我想在它周围放一个R包装并将其作为R包发送给CRAN。 igraph已经在CRAN上有一个R端口,所以我的R包’foo’依赖于R的igraph是有意义的。 由于foo使用自己的C代码依赖于C igraph,我如何将我的C函数链接到原始的igraph库? 我已经读过这是在一个名为Makevars的文件中完成的,但链接到外部库非常多毛。 如果这是不可能的,那么复制整个igraph源代码并将整个内容放入我的/ src目录是否更好? R igraph包已经有一个名为Makevars的文件,但我不明白如何构建所有的c文件 – 通常在我的Makefile中我有类似gcc(一些.c源文件列表)-o,但Makevar只包含 PKG_CFLAGS=-DUSING_R -I. -Ics -Iglpk -Iglpk/amd -Iglpk/colamd \ -g -O2 -I/usr/include/libxml2 -g -O2 -I/usr/include/libxml2 -DNDEBUG \ -DPACKAGE_VERSION=\”0.6\” -DINTERNAL_ARPACK \ -DIGRAPH_THREAD_LOCAL=/**/ PKG_CXXFLAGS= -DUSING_R -DIGRAPH_THREAD_LOCAL=/**/ -DNDEBUG PKG_LIBS=-lxml2 -lz -lpthread -licucore -lm -lgmp $(FLIBS) $(LAPACK_LIBS) $(BLAS_LIBS) all: $(SHLIB) 并且没有其他Makefile。 总之,我如何将C代码放入依赖于另一个C库的R包中,如何编写相应的Makevars(或Makefile)来合并C函数? 这里发布了一个较旧的问题,但似乎只是链接到帮助编写自己的C代码,而不依赖于任何东西。

主要之前的分段故障

所以我遇到了一个问题,我的代码在我的任何主要实际运行之前导致了分段错误。 我以前从来没有遇到这种情况,而且我几乎没有四分之一的编码经验,所以我不确定是否有什么我做错了。 一切都在编译,至少在我的计算机上,但在运行它时我的主要内容从未到达。 上下文:我正在尝试在邻接矩阵中连接顶点和边缘,然后使用Prim的算法来构建MST,但这是为了以后。 我构建了一个头文件,最初只包含对结构和函数的typdef调用。 但是,我将结构定义切换到头文件,因为我遇到了内存错误; 因此,为什么我认为结构存在问题。 graph.h: //Leland Wong 00000897031 //graph header file #include #include #include #include #ifndef GRAPH_H #define GRAPH_H typedef struct vertex { double longitude; double latitude; char city[30]; int index; int visited; //0: not visited, 1: visited, 2: visited struct edge* nexte; struct vertex* nextv; double projected; }VERTEX; typedef struct edge […]