设为首页 加入收藏

TOP

经典算法研究系列:二之三续、Dijkstra 算法+Heap堆的完整c实现源码(二)
2014-11-23 21:45:58 来源: 作者: 【 】 浏览:20
Tags:经典 算法 研究 系列 二之三 Dijkstra Heap 完整 实现 源码
t; //权重。
}ArcNode;

typedef struct VNode
{
ArcNode* firstarc;
}VNode,AdjList[MAX_VERTEX_NUM];

typedef struct
{
AdjList vertices;
int vexnum,arcnum;
}ALGraph;

编写几个功能函数:

void initALGraph(ALGraph* GPt,int vn) //初始化结点
{
GPt->arcnum = 0;
GPt->vexnum = vn;
for(int i=0;i

{
GPt->vertices[i].firstarc = NULL;
}
}

void insertArc(ALGraph* GPt,int vhead,int vtail,int w) //增加结点操作
{
ArcNode* arcNodePt = new ArcNode;
arcNodePt->nextarc = NULL;
arcNodePt->adjvex = vtail;
arcNodePt->weight = w;

ArcNode* tailPt = GPt->vertices[vhead].firstarc;
if(tailPt==NULL)
{
GPt->vertices[vhead].firstarc = arcNodePt;
}
else
{
while(tailPt->nextarc!=NULL)
{
tailPt = tailPt->nextarc;
}
tailPt->nextarc = arcNodePt;
}
GPt->arcnum ++;
}

void displayGraph(ALGraph G) //打印结点
{
ArcNode* arcNodePt;
for(int i=0;i {
arcNodePt = G.vertices[i].firstarc;
cout<<"vertex"< while(arcNodePt!=NULL)
{
cout<adjvex<<"("<<"weight"<weight<<")"<<" ";
arcNode

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇经典算法研究系列:二之续、彻底.. 下一篇经典算法研究系列:二之再续 Dijk..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: