1.如何构建一个图-----邻接矩阵

#include<iostream>
using namespace std;
#define UNVISTITED 0 //表示没有被访问过
#define VISITED 1   //表示被访问过
//图类
class Graph {
private:
    int numVertex, numEdge;//点的数目和边的数目
    int **matrix;//邻接矩阵
    int *mark;
public:
    //构造函数
    Graph(int numVert) {
        Init(numVert);
    }
    //析构函数
    ~Graph()
    {
        delete[]mark;
        for (int i = 0; i < numVertex; i++) {
            delete[]matrix[i];
        }
        delete[]matrix;
    }
    //初始化
    void Init(int n) {
        int i;
        numVertex = n;
        numEdge = 0;
        mark = new int[numVertex];
        matrix = new int*[numVertex];
        for (i = 0; i < numVertex; i++) {
            mark[i] = UNVISTITED;
        }
        for (i = 0; i < numVertex; i++) {
            matrix[i] = new int[numVertex];
        }
        for (i = 0; i < numVertex; i++) {
            for (int j = 0; j < numVertex; j++) {
                matrix[i][j] = 0;
            }
        }
    }
    //返回点的数目
    int n() { return numVertex; }
    //返回边的数目
    int e() { return numEdge; }
    //返回点V的第一个邻居
    int first(int v){
        for (int i = 0; i < n(); i++) {
            if (matrix[v][i] != 0) {
                return i;
            }
        }
        return -1;
    }
    //返回W后的第一个邻居
    int next(int v, int w) {
        for (int i = w + 1; i < n(); i++) {
            if (matrix[v][i] != 0) {
                return i;
            }
        }
        return -1;
    }
    //设置v1与v2之间有边,赋值wt
    void setEdge(int v1, int v2, int wt) {
        if (matrix[v1][v2] == 0) {
            matrix[v1][v2] = wt;
            numEdge++;
        }
    }
    //删除v1和v2之间的边
    void deleteEdge(int v1, int v2) {
        if (matrix[v1][v2] == 1) {
            matrix[v1][v2] = 0;
            numEdge--;
        }
    }
};
int main() {
}
时间: 2024-10-08 00:54:46

1.如何构建一个图-----邻接矩阵的相关文章

我是如何构建一个持续发展的项目

说起项目,每个程序员都应该搭建过自己的项目,而我也搭建过数十个企业级或互联网级项目:在做企业级项目时也抽象了一套通过的开发脚手架ES方便开发,也做过一些通用的代码生成工具来生成通用项目架子或一些CRUD的代码.做这些平台或项目的时候或多或少给我一些启示和原则,而这些启示和原则一直指导着我内心方向,时刻指导我不偏离航线. 启示录 心中有原则 代码规范化 代码审查 代码重构 代码注释 代码逻辑抽象 工具类 项目闭环 持续改进 自动化 心中有原则 我认为这是搭建和维护项目的灵魂,失去了灵魂,项目虽然能

通过python 构建一个简单的聊天服务器

构建一个 Python 聊天服务器 一个简单的聊天服务器 现在您已经了解了 Python 中基本的网络 API:接下来可以在一个简单的应用程序中应用这些知识了.在本节中,将构建一个简单的聊天服务器.使用 Telnet,客户机可以连接到 Python 聊天服务器上,并在全球范围内相互进行通信.提交到聊天服务器的消息可以由其他人进行查看(以及一些管理信息,例如客户机加入或离开聊天服务器).这个模型如图 1 所示. 图 1. 聊天服务器使用 select 方法来支持任意多个客户机 聊天服务器的一个重要

jmeter 构建一个Web测试计划

添加用户 第一步你想做的每一个JMeter测试计划是添加一个 线程组 元素. 线程组告诉 JMeter的用户数量你想模拟,用户应该发送的次数 请求,请求他们应该送多少. 继续添加ThreadGroup元素首先选择测试计划, 点击你的鼠标右键添加菜单,然后选择 添加一个??ThreadGroup. 您现在应该看到测试计划下的线程组元素. 如果你不 看到的元素,那么“扩大”点击测试计划树 测试计划的元素. 接下来,您需要修改默认属性. 选择线程组元素 在树上,如果您还没有选择它. 您现在应该看到线程

Android学习路线(四)构建一个简单的UI

Android应用的图形化用户界面的构建使用的是View 和 ViewGroup 对象的层次嵌套. View 对象通常是UI部件,例如 buttons 或者 text fields ,而 ViewGroup 是用来定义它的子布局如何排布的容器,它通常是不可见的,例如一个网格或者一个垂直的列表. Android提供XML词汇与View或者ViewGroup的子类的对应,这样的话你就可以通过XML元素的层级嵌套来定义你的UI. 另一种布局 使用XML声明UI比在运行时代码中声明更有用处可以在很多地方

[Erl_Question08] Erlang怎么构建一个application?

问题: 当我们把一个项目中所有的supervision tree通过一个简单的函数game: start(),会发现这个树结构特别复杂,只能有一个根节点,然后一直扩展. 这里,这就是application出现的原因,设计一个可以随时开关的子块(application).比如:上图中的log app, db app ,game app, connect app .. 这样对这些应用的开关管理就非常方便啦,[试想你如果用supervisor,运行时还要手动去停进程树,然后还要移除监控树,还要做cle

Cocos2d-x 3.0 - Eclipse上构建一个Android项目

Cocos2d-x 3.0 - Eclipse上构建一个Android项目 2014年4月30日 4月末 本篇继续介绍Cocos2d-x 3.0的一些基础内容,前面一篇博客介绍了如何在Visual Studio 2012上编译我们的Cocos2d-x项目,也成功把Helloworld运行起来了.跟以往的版本是类似的,只不过创建空项目的时候命令变成了cocos.本篇博客带给大家的是,如何在Eclipse运行起我们的Cocos2d-x项目,如果童鞋们有看我写的Cocos2d-x 2.2.3版本的交叉

Spring学习(二)——使用用Gradle构建一个简单的Spring MVC Web应用程序

1.新建一个Gradle工程(Project) 在新建工程窗口的左侧中选择 [Gradle],右侧保持默认选择,点击next,模块命名为VelocityDemo. 2.在该工程下新建一个 module,在弹出的窗口的左侧中选择 [Gradle],右侧勾选[Spring MVC],如下图所示: 并勾选[Application server],下方选择框中选择Tomcat7.0,如无该选项,则选中右边的 [ New... ] -- [ Tomcat Server ], 配置 Tomcat .配置好后

Android官方入门文档[3]构建一个简单的用户界面

Android官方入门文档[3]构建一个简单的用户界面 Building a Simple User Interface构建一个简单的用户界面 This lesson teaches you to1.Create a Linear Layout2.Add a Text Field3.Add String Resources4.Add a Button5.Make the Input Box Fill in the Screen Width You should also read?Layouts

如何用 Swift 语言构建一个自定控件

(via:破船之家,原文:How To Make a Custom Control in Swift) 用户界面控件是所有应用程序重要的组成部分之一.它们以图形组件的方式呈现给用户,用户可以通过它们与应用程序进行交互.苹果提供了一套控件, 例如 UITextField,UIButton,UISwitch.通过工具箱中的这些已有控件,我们可以创建各式各样的用户界面. 然而,有时候你希望界面做得稍微的与众不同,那么此时苹果提供的这些控件就无法满足你的需求. 自定义控件,除了是自己构建二外,与苹果提供