沉淀sync 2021-11-23 21:47 采纳率: 40%
浏览 4
已结题

c++图的相关操作 这好像没存进去

#include<iostream>
using namespace std;

#define MAX_VERTEX   10   //图的最大顶点数
struct ArcNode      //边表
{
    int adjvex;
    ArcNode *next;
};

struct VertNode    //顶点表
{
    char vert;
    ArcNode*firstEdge;
};

class CGraph   
{
private:
    VertNode  adjList[MAX_VERTEX];
    int vertNum,arcNum;
public:
    CGraph(char v[],int n,int e);                        
    ~CGraph();
    void DFS();
    void BFS();
    /*void InputInfo();*/
    void Print();
};
CGraph::CGraph(char v[],int n,int e)
{
    cout<<"v="<<v<<" n="<<n<<" e="<<e<<'\n';
    vertNum = n;
    arcNum = e;
    for(int i = 0;i<vertNum;i++)
    {
        adjList[i].vert = v[i];
        adjList[i].firstEdge = NULL;
    }
    char vi,vj;
    cout<<"输入顶点编号:"<<endl;
    for(int i = 0; i< arcNum;i++)
    {
        //输入边的信息存储在边表中
        cin>>vi>>vj;         //输入边依附的两个顶点的编号    vi起点vj终点
        ArcNode *s = new ArcNode;
        s->adjvex = vj;
        s->next = adjList[vi].firstEdge;
        adjList[vi].firstEdge = s;
    }
}
CGraph::~CGraph()
{

}
//void CGraph::InputInfo()
//{
//    char vi,vj;
//    cout<<"输入顶点编号:"<<endl;
//    for(int i = 0; i< arcNum;i++)
//    {
//        //输入边的信息存储在边表中
//        cin>>vi>>vj;         //输入边依附的两个顶点的编号    vi起点vj终点
//        ArcNode *s = new ArcNode;
//        s->adjvex = vj;
//        s->next = adjList[vi].firstEdge;
//        adjList[vi].firstEdge = s;
//    }
//}

void CGraph::Print()
{
    ArcNode *p = nullptr;
    for(int i = 0; i<vertNum;i++)
    {
        
        p = adjList[i].firstEdge;
        while(p)
        {
            cout<<adjList[i].vert;
            cout<<"->";
            cout<<p->adjvex<<endl;
            p = p->next;
        }
    }

}

int main()
{
    int n,e;
    cout<<"输入顶点数和边数"<<endl;
    cin>>n>>e;
    char v[MAX_VERTEX];
    cout<<"输入顶点"<<endl;
    for(int i = 0;i<n;i++)
    {
        cin>>v[i];
    }
    CGraph graph2(v,n,e);
    /*graph2.InputInfo();*/
    graph2.Print();
    system("pause");
     return 0;
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月1日
    • 创建了问题 11月23日

    悬赏问题

    • ¥15 关于stm32hal库驱动ft6336触摸屏遇到的问题
    • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
    • ¥15 数字信号处理考试111
    • ¥100 关于#audobe audition#的问题,如何解决?
    • ¥15 allegro17.2生成bom表是空白的
    • ¥15 请问一下怎么打通CAN通讯
    • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
    • ¥35 navicat将excel中的数据导入mysql出错
    • ¥15 rt-thread线程切换的问题
    • ¥15 高通uboot 打印ubi init err 22