数据结构
二分查找 Binary Search
树与数组,链接列表,堆栈和队列(它们是线性数据结构)不同,树是分层数据结构。
class Node{
int key;
Node right, left;
public Node(int item){
key = item;
left = right = null;
}
}
// 二进制树
class BinaryTree {
Node root;
//构造
BinaryTree(int key){
root = new Node(key);
}
BinaryTree(){
root = null;
}
public static void main(String args[]){
BinaryTree tree = new BinaryTree();
//创建根
tree.root = new Node(1);
tree.root.left = new Node(2);
tree.root.right = new Node(3);
tree.root.left.left = new Node(4);
System.out.println(tree;
}
二分查找树Binary Search Tree
结点处元素比左边叶子结点大,比有点叶子节点小
堆 Heap Data Structure
图 Graph
图是由节点和边组成的非线性数据结构。节点有时也称为顶点,边缘是连接图形中任意两个节点的线或圆弧。
广度优先搜索 BFS & 深度优先搜索 DFS
BFS:优先遍历结点处的所有元素,写入队列然后按队列顺序再寻找结点处的所有元素(队列)
DFS:(栈)将初始结点连接的所有结点找出,再寻找初始结点的下一个所有结点;回溯算法,返回边