• 图的遍历以及最短单元路径

    class MatrixUDG { private: char mVexs[MAX]; // 顶点集合 int mVexNum; // 顶点数 int mEdgNum; // 边数 int mMatrix[MAX][MAX]; // 邻接矩阵 int path[MAX]; public: // 创建图(用已提供的矩阵) MatrixUDG(char vexs[], int vlen, char edges[][2], int elen, int dis[]); //初始化图的一条边 void IninalEdge(char vexbegin, char vexend, int dis); /*析构函数*/ ~MatrixUDG(); // 深度优先搜索遍历图 void DFS(); // 广度优先搜索(类似于树的层次遍历) void BFS(); //单元最短路径 void DijkstraPath(); //显示两点之间的最短路径 void ShowPath(int begin, int end); // 打印矩阵队列图 void print(); private: // 读取一个输入字符 char readChar(); // 返回ch在mMatrix矩阵中的位置 int getPosition(char ch); // 返回顶点v的第一个邻接顶点的索引,失败则返回-1 int firstVertex(int v); // 返回顶点v相对于w的下一个邻接顶点的索引,失败则返回-1 int nextVertex(int v, int w); // 深度优先搜索遍历图的递归实现 void DFS(int i, int *visited); };

    0
    160
    20.81MB
    2018-04-10
    22
  • 二叉树的遍历操作

    class BSTTree { public: //构造函数 BSTTree(); //析构函数 ~BSTTree(); //打印操作 void Print(const unsigned int &module;); //打印节点信息 void PrintNode(Node *p); //前序遍历 void PreorderPrint(Node *p); //中序遍历 void InorderPrint(Node *p); //广度优先遍历 void BFSPrint(Node *p); //深度优先遍历 void DFSPrint(Node *p); //插入操作 void Insert(Info key); //插入节点 void InsertNode(Node *&root;,Info key); //删除操作 void Remove(Info key); //删除节点 void RemoveNode(Node *&root;, Info key); //查找分支权值最小节点 Node *FindMinnode(Node *p, Info key); private: Node *root; };

    0
    167
    20.82MB
    2018-04-09
    13
  • 链表所有操作

    struct Info { string name; //姓名 int id; //学号 }; //链表定义 struct Node { Info val; Node *next; Node(Info x) :val(x), next(NULL) {} }; class LinkList { public: //构造函数 LinkList(); //在链表头部插入结点 void InsertHead(Info val); //插入结点 void Insert(Info val, int pos); //删除结点 void Remove(Info val); //得到链表长度 int Length(); //链表反序 void Reverse(); //查找结点位置 int Find(Info val); //打印链表 void Print(); //析构函数 ~LinkList(); private: Node *head; int length; };

    0
    99
    4.17MB
    2018-04-09
    9
上传资源赚积分or赚钱