(搬运)《算法导论》习题解答 Chapter 22.1-1(入度和出度)

思路:遍历邻接列表即可;

伪代码:

for u 属于 Vertex
for v属于 Adj[u]
outdegree[u]++;
indegree[v]++;

源代码:

package C22;

import java.util.Iterator;

public class C1_1 {
static int[] indegree;
static int[] outdegree;
static Adjacent_List g;
public static void main(String[] args) throws Exception {
Adjacent_List adjacent_list = GraphFactory.getAdjacentListInstance("input\\22.1-1.txt");
C1_1.g = adjacent_list;
calculate_indegree_outdegree();
System.out.println("入度");
print(indegree);
System.out.println("出度");
print(outdegree);
}
public static void print(int[] arr){
for(int i=0;i iter = g.getListByVertexIndex(i).iterator();
while(iter.hasNext()){
String vstr = iter.next();
int v = g.getVertexIndex(vstr);
indegree[v] ++;
outdegree[i]++;
}
}
}
}

原文点此索引目录。感谢xiazdong君
&& Google酱。这里是偶尔做做搬运工的水果君(^_^) )

(搬运)《算法导论》习题解答 Chapter 22.1-1(入度和出度)的更多相关文章

  1. 《算法导论》习题解答 Chapter 22.1-5(求平方图)

    一.邻接矩阵实现 思路:如果是邻接矩阵存储,设邻接矩阵为A,则A*A即为平方图,只需要矩阵相乘即可: 伪代码: for i=1 to n for j=1 to n for k=1 to n resul ...

  2. 《算法导论》习题解答 Chapter 22.1-6(求universal sink 通用汇点)

    思路:设置两个游标i指向行,j指向列,如果arr[i][j]==1,则i=max{i+1,j},j++:如果arr[i][j]==0,则j=max{i+1,j+1}. 伪代码: has_univers ...

  3. 《算法导论》习题解答 Chapter 22.1-4(去除重边)

    思路:重开一个新图,按着邻接列表的顺序从上到下遍历,每遍历一行链表前,清空visited数组,如果没有访问过这个元素,则加入新图,如果已经访问过了(重边),则不动. 伪代码: 复杂度:O(V+E) f ...

  4. 《算法导论》习题解答 Chapter 22.1-8(变换邻接表的数据结构)

    一般散列表都与B+树进行比较,包括在信息检索中也是. 确定某条边是否存在需要O(1). 不足: (1)散列冲突. (2)哈希函数需要不断变化以适应需求. 另外:B+树.(见第18章) 与散列表相比的不 ...

  5. 《算法导论》习题解答 Chapter 22.1-7(关联矩阵的性质)

    主对角线:出度+入度 其他:arr[i][j]=-n,则i与j之间有n条边. 证明: (原文点此,索引目录.感谢xiazdong君 && Google酱.这里是偶尔做做搬运工的水果君( ...

  6. 《算法导论》习题解答 Chapter 22.1-3(转置图)

    一.邻接表实现 思路:一边遍历,一边倒置边,并添加到新的图中 邻接表实现伪代码: for each u 属于 Vertex for v 属于 Adj[u] Adj1[v].insert(u); 复杂度 ...

  7. 《算法导论》习题解答 Chapter 22.1-2(邻接矩阵与链表)

    链表如图: 矩阵: 1 2 3 4 5 6 7 1 0 1 1 0 0 0 0 2 1 0 0 1 1 0 0 3 1 0 0 0 0 1 1 4 0 1 0 0 0 0 0 5 0 1 0 0 0 ...

  8. C++ Primer(第五版)读书笔记 & 习题解答 --- Chapter 3

    Chapter 3.1 1. using声明具有如下的形式: using namespace::name; Chapter 3.2 1. C++标准一方面对库类型所提供的操作做了规定,另一方面也对库的 ...

  9. C++ Primer(第五版)读书笔记 & 习题解答 --- Chapter 2

    Chapter 2.1 1. 数据类型决定了程序中数据和操作的意义. 2. C++定义了一套基本数据类型,其中包括算术类型和一个名为void的特殊类型.算术类型包含了字符.整型.布尔值以及浮点数.vo ...

随机推荐

  1. windows server 2008 支持 .net framework 4.0

    windows server 2008平台下需要安装sp1,或打KB958854补丁,IIS7.0才能支持.net framework 4.0. 否则,IIS7.0中的应用程序虽然被配置为.net 4 ...

  2. Eclipse 安装对 Java 8 的支持

    Java 8 正式版今天已经发布了(详情),但最常用的 Java 开发工具 Eclipse 还没有正式发布对 Java 8 的支持.不过目前可以通过更新 JDT 来支持 Java 8.步骤如下: 菜单 ...

  3. JVM启动参数小结

    一:JVM启动参数共分为三类:         其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容:        其二是非标准参数(-X),指的是JVM底层的一些配置参数, ...

  4. Linux内核完全注释之编程语言和环境(二)

    c程序的编译和链接 使用gcc汇编器编译c语言程序时通常会经历四个阶段,即预处理阶段.编译阶段.汇编阶段.链接阶段,如下图. 例如: gcc -o hello hello.c 生成可执行文件hello ...

  5. 【Netbeans】表格的使用

    参数两个:一个二维数组赋予数据,一个一位数组赋予属性名

  6. Castle IOC容器内幕故事(上)

    主要内容 1.WindsorContainer分析 2.MicroKernel分析 3.注册组件流程 一.WindsorContainer分析 WindsorContainer是Castle的IOC容 ...

  7. (3)HTML ”列表“、图片和超链接

    本节解说 1. html支持的列表:无序列表.有序列表.定义列表 2. html中如何插入图片 3.html的超链接 <1> 无序列表 无序列表是一个项目的列表,此列项目使用粗体圆点(典型 ...

  8. Scrum Planning Card

    最近用Swift写了个小工具Scrum Planning Card,如果你也用scrum管理项目, 或许用这个工具可以提高你的工作效率. 另外欢迎提建议和反馈,谢谢. 欢迎关注我的微信公众号 Hope ...

  9. Trie树学习2

    数组实现的Trie树 字符容量有限,能够使用链表实现更为大容量的Trie #include <iostream> #include <cstdio> #include < ...

  10. MySQL 4种日志