链表Node,二叉树TreeNode, 广度优先搜索中压入队列的Node, 字典树中的Node
2018-03-25 22:24
204 查看
链表Node这么写
Node节点中有个成员变量val,是整型的,代表这个节点的值。next指针指向的是下一个节点。
二叉树TreeNode
广度优先队列中的Node。
Node一般用来保存某个状态,可能有两个成员变量,也可能有三个。在做题的时候我自己用到过。
字典树中的Node
见左神算法数的字典树实现
【解释】TrieNode类中,path表示有多少个单词共用这个节点,end表示有多少单词以这个节点结尾。map是个哈希表结构,key代表该节点的一条字符路径,value表示字符路径指向的节点。对于英语单词来说,map是长度为26的数组。
在字符较多的情况下,可以选择用真实的哈希结构map实现
我这里自己写下
更新节点的时候就可以使用
class Node { int val; Node next; public Node(int val) { this.val = val; } }
Node节点中有个成员变量val,是整型的,代表这个节点的值。next指针指向的是下一个节点。
二叉树TreeNode
class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode (int val) { this.val = val; } }
广度优先队列中的Node。
Node一般用来保存某个状态,可能有两个成员变量,也可能有三个。在做题的时候我自己用到过。
class Node { int s; int m; }
字典树中的Node
见左神算法数的字典树实现
class TrieNode { int path; int end; TrieNode[] map; public TrieNode (){ path = 0; end = 0; map = new TrieNode(26); } }
【解释】TrieNode类中,path表示有多少个单词共用这个节点,end表示有多少单词以这个节点结尾。map是个哈希表结构,key代表该节点的一条字符路径,value表示字符路径指向的节点。对于英语单词来说,map是长度为26的数组。
在字符较多的情况下,可以选择用真实的哈希结构map实现
我这里自己写下
class TrieNode { int path; int end; HashMap<Character, TrieNode> map = new HashMap<>(); public TrieNode (){ path = 0; end = 0; } }
更新节点的时候就可以使用
TrieNode.map.put()来添加特定字符对应的节点 也可以更改map的value值了
相关文章推荐
- 数据结构之图(深度优先搜索和广度优先搜索使用的队列和栈)
- 广度优先搜索以及队列优化的 Bellman-Ford 短路算法
- Catch The Caw——(广度优先搜索的应用,队列)
- 广度优先搜索 最短路径 队列
- BZOJ2330 差分约束之浅谈数学不等式拓扑逻辑顺序转化为图论中队列实现广度优先搜索的最长路之双端队列Bellman-Ford算法及入队次数判断自环
- 栈与队列的应用——深度、广度优先搜索迷宫出口
- 广度(宽度)优先搜索:队列
- 数据结构之广度优先搜索(队列实现)问题
- C语言广度优先搜索之迷宫(队列)
- 广度优先搜索nodeHDU/HDOJ 1242 Rescue 典型的迷宫广度优先搜索题
- 广度优先搜索--迷宫最短路径--队列
- 九度OJ 教程87 广度优先搜索之《非常可乐》
- 华容道游戏:广度优先搜索优先搜索
- 【经典算法】图的深度优先搜索和广度优先搜索
- 【算法小总结】广度优先搜索剖析
- 图的广度优先搜索BFS
- 广度优先搜索的学习
- 广度优先搜索——水杯倒水问题
- 广度优先搜索——水杯倒水问题
- poj 3984 迷宫问题 BFS 图的广度优先搜索