无法打印所有的的元素,深度遍历和广度遍历都是只能打印首元素? 哪位好心
#ifndef NODE_H#define NODE_Hclass Node{public:Node (char data =0);//构造函数char m_cData;//数据bool m_bIsVisited;//当前节点是否被访问过};#endif#include "Node.h"Node::Node(char data){m_cData=data;m_bIsVisited=false;}#ifndef CMAP_H#define CMAP_H#include#include"Node.h"using namespace std;class CMap{public:CMap(int capacity);~CMap();bool addNode(Node *pNode);//向图中加入节点void resetNode();//重置节点bool setValueToMatrixForDirectedGraph(int row,int col,int val=1);//向由向图设置邻接矩阵bool setValueToMatrixForUnDirectedGraph(int row,int col,int val=1);//向无向图设置邻接矩阵void printMatrix();//打印邻接矩阵void depthFitstTraverse(int nodeIndex);//深度优先遍历void breadthFirstTraverse(int nodeIndex);//广度优先遍历private:bool getValueFormMatrix(int row,int col,int&val);//从矩阵中获取权值void breadthFirstTraverseImp(vectorpreVec);//广度优先遍历实现函数private:int m_iCapacity;//图中最多可以容纳的顶点数int m_iNodeCount;//已经添加的顶点(节点)个数Node *m_pNodeArray;//用来存放顶点数组int *m_PMatrix;//用来存放邻接矩阵};#endif #include"CMap.h"#include#include using namespace std;CMap:: CMap(int capacity){m_iCapacity=capacity;m_iNodeCount=0;m_pNodeArray=new Node [m_iCapacity];m_PMatrix=new int [m_iCapacity*m_iCapacity];memset(m_PMatrix,0,m_iCapacity*m_iCapacity*sizeof(int));// for (int i=0;im_cData;m_iNodeCount++;return true;}void CMap::resetNode(){for (int i=0;i |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|