您的位置:首页 > 理论基础 > 数据结构算法

c++中的图链表数据结构

2016-07-20 17:40 447 查看
template<class T,class E>
struct Edge{
int dest;//到下个点的距离
E cost;//到下个点的权重
Edge<T,E>*link;
Edge(){}
Edge(int num,E weight):dest(num),cost(weight),link(NULL){}
};

template<class T,class E>
struct Vertex{
T data;
Edge<T,E>*adj;
}

template<class T,class E>
class Graphlnk{
public:
Graphlnk(int sz=DefaultVertices);
~Graphlnk();
T getValue(int i)
{return (i>=0&&i<NumVertices)?NodeTable[i].data:0;}
E getWeight(int v1,int v2);
bool insertVertex(const T& vertex);
bool removerVertex(int v);
bool insertEdge(int v1,int v2,E cost);
bool removeEdge(int v1,int v2);
int getFirstNeighbor(int v);
int getNextNeighbor(int v,int w);

private:
Vertex<T,E> *NodeTable;//顶点结点数组
int maxVertices;//最大顶点数
int numEdges;//边的条数
int numVertices;//顶点的个数
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: