首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
什么是数据结构?
什么是算法?
算法分析
字符串-String
Linked List - 链表
Binary Tree - 二叉树
Huffman Compression - 霍夫曼压缩
Queue - 队列
Heap - 堆
Stack - 栈
Set
Map - 哈希表
Graph - 图
ArrayList
双链表
树的遍历
二叉搜索树
数据持久化
排序
当前位置:
首页>>
技术小册>>
数据结构与算法(上)
小册名称:数据结构与算法(上)
图的表示通常使用邻接矩阵和邻接表,前者易实现但是对于稀疏矩阵会浪费较多空间,后者使用链表的方式存储信息但是对于图搜索时间复杂度较高。 编程实现 邻接矩阵 设顶点个数为 V, 那么邻接矩阵可以使用 V × V 的二维数组来表示。 ```asp /* Java Definition */ int[][] g = new int[V][V] ``` g[i][j]表示顶点i和顶点j的关系,对于无向图可以使用0/1表示是否有连接,对于带权图则需要使用INF来区分。有重边时保存边数或者权值最大/小的边即可。 邻接表 邻接表通过表示从顶点i出发到其他所有可能能到的边。 Java 有向图。 ```asp /* Java Definition */ class DirectedGraphNode { int label; ArrayList<DirectedGraphNode> neighbors; DirectedGraphNode(int x) { label = x; neighbors = new ArrayList<DirectedGraphNode>(); } } ``` 无向图同上,只不过在建图时双向同时加。 ```asp class UndirectedGraphNode { int label; ArrayList<UndirectedGraphNode> neighbors; UndirectedGraphNode(int x) { this.label = x; this.neighbors = new ArrayList<UndirectedGraphNode>(); } } ```
上一篇:
Map - 哈希表
下一篇:
什么是数据结构?
该分类下的相关小册推荐:
数据结构与算法(中)
数据结构与算法(下)
编程之道-算法面试(下)
编程之道-算法面试(上)
业务开发实用算法精讲
算法面试通关 50 讲
数据结构与算法之美