初冀 2023-05-02 22:48 采纳率: 61%
浏览 67

判断邻接矩阵是否是无向图


/*6.8设图G用邻接矩阵A[n+1,n+1]表示,设计算法以判断G是否是无向图。
*/
#include<iostream>
using namespace std;
#define max 1000
#define INF 65535
typedef char element;
typedef int cellType;
typedef enum { UDG, UDN, DG, DN }GraphKind;//枚举图的类型
typedef struct GraphAdjMatrix {
    element data[max];//顶点数组,存放顶点元素的值,从0开始
    cellType AdjMatrix[max][max];//邻接矩阵,元素类型为cellType
    int verNum;//顶点数
    int arcNum;//弧数
    GraphKind gkind;//图的类型,0-无向图,1-无向网,2-有向图,3-有向网
}Graph;//图的类型名

void createGraph(Graph& G) {
    int i, j, k, w;
    cout << "输入顶点数和边数:" << endl;
    cin >> G.verNum >> G.arcNum;
    cout << "输入结点信息:" << endl;
    for (i = 0; i < G.verNum; i++) {
        cin >> &(G.data[i]);
    }
    //邻接矩阵初始化
    for (i = 0; i < G.verNum; i++) {
        for (j = 0; j < G.verNum; j++)
            G.AdjMatrix[i][j] = INF;
    }
    //建立邻接矩阵
    for (k = 0; k < G.arcNum*G.arcNum; k++) {
        cout << "输入边的下标i,下标j,和数据w:";
        cin >> i >> j>>w;
         G.AdjMatrix[i][j] = w;
     }
    int flag = 1;
    for (i = 0; i < G.verNum; i++) {
        for (j = 0; j < G.verNum; j++) {
            if (G.AdjMatrix[j][i] == 1 && G.AdjMatrix[i][j] == 1) {
                flag = 0;
            }
        }
    }
    if (flag == 0)
        cout << "G是否是无向图" << endl;
    else
        cout << "G是否是有向图" << endl;
}
int main() {
    Graph G;
    createGraph(G);
    return 0;
}

img


想问一下,这里为什么报错,我感觉我写的没有什么问题啊

  • 写回答

2条回答 默认 最新

  • 叶落秋白 后端领域优质创作者 2023-05-03 07:07
    关注

    可能你的逻辑没有问题,但是报错显示的意思是栈溢出了,看看你的算法中循环或者递归的次数是不是太多了,甚至有死循环的情况。着重检查循环那块代码

    评论

报告相同问题?

问题事件

  • 创建了问题 5月2日

悬赏问题

  • ¥15 asp写PC网站开通了微信支付,扫码付款不能跳转
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 关于#c语言#的问题:我在vscode和codeblocks中编写c语言时出现打不开源文件该怎么办
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊