GraphMatrix::构造、析构、插入、删除
来源:互联网 发布:数据库索引怎么建立 编辑:程序博客网 时间:2024/06/09 08:43
构造析构:
GraphMatrix() { n = e = 0; } //构造 ~GraphMatrix() { //析构 for (int j = 0; j < n; j++) //所有动态创建的 for (int k = 0; k < n; k++) //边记录 delete E[j][k]; //逐条清除 }
插入删除顶点:
virtual int insert(Tv const & vertex) { //插入顶点,返回编号 for (int j = 0; j < n; j++) E[j].insert(NULL); n++; //各顶点预留一条潜在的关联边 E.insert(Vector<Edge<Te>*>(n, n, (Edge<Te>*) NULL)); //创建新顶点对应的边向量 return V.insert(Vertex<Tv>(vertex)); //顶点向量增加一个顶点 } virtual Tv remove(int i) { //删除第i个顶点及其关联边(0 <= i < n) for (int j = 0; j < n; j++) //所有出边 if (exists(i, j)) { delete E[i][j]; V[j].inDegree--; } //逐条删除 E.remove(i); n--; //删除第i行 for (int j = 0; j < n; j++) //所有出边 if (exists(j, i)) { delete E[j].remove(i); V[j].outDegree--; } //逐条删除 Tv vBak = vertex(i); V.remove(i); //删除顶点i return vBak; //返回被删除顶点的信息 }
插入删除边:
virtual void insert(Te const & edge, int w, int i, int j) { //插入权重为w的边e = (i, j) if (exists(i, j)) return; //确保该边尚不存在 E[i][j] = new Edge<Te>(edge, w); //创建新边 e++; V[i].outDegree++; V[j].inDegree++; //更新边计数与关联顶点的度数 } virtual Te remove(int i, int j) { //删除顶点i和j之间的联边(exists(i, j)) Te eBak = edge(i, j); delete E[i][j]; E[i][j] = NULL; //备份后删除边记录 e--; V[i].outDegree--; V[j].inDegree--; //更新边计数与关联顶点的度数 return eBak; //返回被删除边的信息 }
0 0
- GraphMatrix::构造、析构、插入、删除
- BinTree::构造、析构、插入、删除
- 栈操作,构造,插入,删除,转换
- 二叉排序数的基本操作(构造、插入、删除)
- 二叉排序树的构造,插入,删除,完整c代码实现
- GraphMatrix::图的定义
- GraphMatrix::BFS广度优先搜索
- GraphMatrix::DFS深度优先搜索
- 数据结构——二叉树的插入构造和删除操作
- 数据结构——栈的构造、插入、删除、读取操作程序
- 二叉排序树的构造、查找、插入及删除算法的实现(C++)
- 数据结构--栈的构造、插入、删除、得到栈顶元素操作
- 二叉搜索树的插入和删除结点操作以及iterator的构造
- 二叉排序树(二叉查找树)BST构造,节点插入,节点查找,节点删除(java)
- 二叉排序树:查找,插入,构造
- 插入、删除、分页代码
- 插入更新删除数据
- 动态插入 删除行
- March of the Penguins - UVa 12125 网络流
- KVC与KVO理解
- Android取消EditText自带黄色边框
- [leetcode]Find Minimum in Rotated Sorted Array
- [iOS]判断字符串是否为合法邮箱地址
- GraphMatrix::构造、析构、插入、删除
- android模仿Twitter记住密码功能
- GitHubs
- android WebView使用 一 (简单使用在程序中)
- 关于LR录制时不能自动启动IE浏览器的解决方法总结
- ios捕获崩溃
- HDU 1009贪心
- 在iOS 中改变tableView的frame让tableView回到顶部的方法
- 使用PL/SQL生成随机密码