인접표 1 (c 언어)

인접표 저장 구조에서 그림의 기본 조작을 실현하는 insertvertex 및 insertarc, 관련 정의는 다음과 같습니다.
typedef int VertexType;
typedef enum{
    DG, UDG
}GraphType;
ypedef struct ArcNode
{
    int adjvex;
    InfoPtr *info;
    struct ArcNode *nextarc;
 }ArcNode;
typedef struct VNode
{
    VertexType data;
    ArcNode *firstarc;
}VNode;
typedef struct
{
    VNode vertex[MAX_VERTEX_NUM];
    int vexnum, arcnum;
    GraphType type;
}ListGraph;
int locate_vertex(ListGraph* G, VertexType v); //     v  vertex      ,  v   ,  -1
bool insert_vertex(ListGraph *G, VertexType v);
bool insert_arc(ListGraph *G, VertexType v, VertexType w);

대답:
bool insert_vertex(ListGraph* G, VertexType v)
{
    if (locate_vertex(G, v) != -1 || G->vexnum + 1 >= MAX_VERTEX_NUM)
        return false;
    G->vertex[G->vexnum].data = v;
    G->vertex[G->vexnum].firstarc = NULL;
    G->vexnum++;
    return true;
}

bool insert_arc(ListGraph* G, VertexType v, VertexType w)
{
    if (locate_vertex(G, v) == -1 || locate_vertex(G, w) == -1)
        return false;
    return true;
}

좋은 웹페이지 즐겨찾기