strcpy-为什么,我向图中插入顶点老是失败呢,就是InsertVex那个函数

问题描述

为什么,我向图中插入顶点老是失败呢,就是InsertVex那个函数

Graph.h
struct Vex
{
int num;
char name[20];
char desc[1024];
};
struct Edge
{
int vex1;
int vex2;
int weight;
};
class CGraph
{
private:
int m_aAdjMatrix[20][20];
Vex m_aVexs[20];
int m_nVexNum;
public:
CGraph(int M_aAdjMatrix[20][20], Vex M_aVexs[20], int M_nVexNum);
CGraph(void);
~CGraph(void);
void setVex(Vex sVex);
bool InsertVex(Vex sVex);
bool InsertEdge(Edge sEdge);
Vex GetVex(int v);
int FindEdge(int v, Edge aEdge[]);
void Init(void);
int GetVexNum(void);
};
#endif

Graph.cpp
#include <iostream>
#include <stdlib.h>
#include "Graph.h"
using namespace std;
CGraph::CGraph(int M_aAdjMatrix[20][20], Vex M_aVexs[20], int M_nVexNum)
{
    for (int i = 0; i < MAX_VERTEX_NUM; i++)
    {
        for (int j = 0; j < MAX_VERTEX_NUM; j++)
        {
            m_aAdjMatrix[i][j] = M_aAdjMatrix[i][j];
        }
    }
    for (int m = 0; m < MAX_VERTEX_NUM; m++)
    {
        m_aVexs[m].num = M_aVexs[m].num;
        strcpy(m_aVexs[m].name, M_aVexs[m].name);
        strcpy(m_aVexs[m].desc, M_aVexs[m].desc);
    }
    m_nVexNum = M_nVexNum;

}
CGraph::CGraph(void)
{

}
CGraph::~CGraph(void)
{

}
void CGraph::setVex(Vex sVex)
{
    m_aVexs[m_nVexNum].num = sVex.num;
    strcpy(m_aVexs[m_nVexNum].name, sVex.name);
    strcpy(m_aVexs[m_nVexNum].desc, sVex.desc);
}
bool CGraph::InsertVex(Vex sVex)

{
    if (m_nVexNum == MAX_VERTEX_NUM)
    {
        return false;
    }
    else
    {
        m_aVexs[m_nVexNum].num = sVex.num;
        strcpy(m_aVexs[m_nVexNum].name, sVex.name);
        strcpy(m_aVexs[m_nVexNum].desc, sVex.desc);
        //setVex(sVex);
        m_nVexNum++;
    //  m_aVexs[m_nVexNum++] = sVex;
        return true;
    }
}
bool CGraph::InsertEdge(Edge sEdge)
{
    if (sEdge.vex1 < 0 || sEdge.vex1 >= m_nVexNum || sEdge.vex2 < 0 || sEdge.vex2 >= m_nVexNum)
    {
        return false;
    }
    m_aAdjMatrix[sEdge.vex1][sEdge.vex2] = sEdge.weight;
    m_aAdjMatrix[sEdge.vex2][sEdge.vex1] = sEdge.weight;
    return true;

}
Vex CGraph::GetVex(int v)
{
    return m_aVexs[v];
}
int CGraph::FindEdge(int v, Edge aEdge[])
{
    int k = 0;

    for (int i = 0; i < m_nVexNum; i++)
    {
        aEdge[i].vex1 = v;
        aEdge[i].vex2 = i;
        if ((aEdge[i].weight != 0 )&& (aEdge[i].vex1 == v )&& (aEdge[i].vex2==i))
        {
            k++;
        }

    }
    return k;
}
void CGraph::Init(void)
{

    for (int i = 0; i < MAX_VERTEX_NUM; i++)
    {
        for (int j = 0; j < MAX_VERTEX_NUM; j++)
        {
            m_aAdjMatrix[i][j] = 0;
        }
    }
    for (int m = 0; m < MAX_VERTEX_NUM; m++)
    {
        m_aVexs[m].num = 0;
        strcpy(m_aVexs[m].name, "0");
        strcpy(m_aVexs[m].desc, "0");
    }
    int m_nVexNum = 0;
}
int CGraph::GetVexNum()
{
    return m_nVexNum;
}
时间: 2024-09-30 13:57:30

strcpy-为什么,我向图中插入顶点老是失败呢,就是InsertVex那个函数的相关文章

xmlentities-在xml文档中插入图片总是失败,请大家帮我看看这段代码错在哪里了?

问题描述 在xml文档中插入图片总是失败,请大家帮我看看这段代码错在哪里了? <?xml version="1.0" encoding="GB2312"?> <!DOCTYPE photos[ <!ELEMENT photos (photo*)> <!ELEMENT photo EMPTY> <!ATTLIST photo Sources ENTITIES #REQUIRED> <!ENTITY ic1 S

mfc-VS2010 MFC向office excel中插入图片时失败

问题描述 VS2010 MFC向office excel中插入图片时失败 有的电脑能成功,有的失败,失败提示"未找到指定文件",有没有大侠帮忙解决下 解决方案 检查下文件的路径.贴出你的代码,在文件名的地方调试

iMindMap思维导图中插入iMindMap Cloud的方法

  我们打开iMindMap思维导图后,选中目标导图,随后便点击附件图标,我们可以在[插入]或右侧菜单中扎到. 打开附件工作面板,我们点击iMindMap Cloud选项. 想要添加iMindMap Cloud文件就需要点击蓝色添加键来打开iMindMap Cloud进行目标文件. 在我们的iMindMap Cloud中选定文件,直接点击最下方的选择按钮,便会成功添加至导图中. 当我们再打开附件工作面板时,可以在面板中选择对iMindMap Cloud附件进行删除或是跳转打开. 我们可以在同一个

在Word文档中插入Cad图的3种方法

在word文件中插入我们绘制的cad图,方法大体上有三种,但是它们达到的效果却并不相同,有的显得精致些,有的显得粗糙些,根据我们写作的目的还要进行相应的再处理,这个过程有一些技巧,现在把它写下来,希望能给读者朋友以启发. 要在word文件中插入一个cad图,可以利用下面的三种方法来实现: 第一种,利用键盘上的"print screen sysrq"来抓取cad图,再通过系统自带的画图软件做进一步的修剪,去掉cad剪贴图中多余的部分,这项工作为了是能使图片在word文件中显示的足够的清晰

Word中插入cad图的技巧大放送

在日常的工作中,大家可能会遇到写说明书之类的事情,像在word文件中插入我们绘制的cad 图,方法大体上有三种,但是它们达到的效果却并不相同,有的显得精致些,有的显得粗糙些,根据我们写作的目的还要进行相应的再处理,这个过程有一些技巧,现在把它写下来,希望能给读者朋友以启发. 比如,我们要在word文件中插入一个cad图,可以利用下面的三种方法来实现: 第一种,利用键盘上的"print screen sysrq"来抓取cad图,再通过系统自带的画图软件做进一步的修剪,去掉cad剪贴图中多

asp.net如何使用openxml向word中插入柱状图或折线图

问题描述 asp.net如何使用openxml向word中插入柱状图或折线图 asp.net如何使用openxml向word中插入柱状图或折线图

imageview-安卓如何实现图中可以输入文字又可以插入图片的功能?

问题描述 安卓如何实现图中可以输入文字又可以插入图片的功能? 如图:我想做一个类似印象笔记的app,笔记主要是文本+图片的形式,但是我不知道怎么实现.纯粹EditText?还是动态添加EditText和ImageView? 解决方案 http://segmentfault.com/q/1010000000396618

顶点-有关图中十字链表的问题

问题描述 有关图中十字链表的问题 小弟刚刚看到图的十字链表,表示有点不明白为什么要这么复杂的数据结构,又要弧结点,又要顶点结点. 按照书本说的,假如就是邻接表和逆邻接表的结合,那为什么不在邻接表直接加个逆邻接表的指针呢?

n皇后 内存溢出-使用列队分支界限法解决n皇后问题,只能输入5,其他数字老是出现图中的错误,求大神解决。

问题描述 使用列队分支界限法解决n皇后问题,只能输入5,其他数字老是出现图中的错误,求大神解决. #include #include #include #include using namespace std;![ //定义一个队列 void NQueens(); //定义该皇后可以存在的位置 bool CanPos(int *pos, int level, int i); //得到N在队列中的位置 int * GetNQueensPos(int n); int main() { NQueens