标签:traversal 排序 int 深度 creates pos 试题 ati ret
Java校招面试 G歌面试官亲授
列表
数组
链表
队列,栈
树
二叉树
搜索树
堆/优先队列
栈/队列/优先队列
push(1);push(3);push(2);pop();pop();pop();
栈:2;3;1
队列:1;3;2
优先队列:1;2;3
Map<K,V>/Set<K>
HashMap/HashSet → K.hashCode()
TreeMap/TreeSet → K implements Comparable
图
无向图
有向图
有向无环图
图的算法
深度优先遍历
广度优先遍历
拓扑排序
最短路径/最小生成树
6--15 树
有关树的面试题?
容易理解?难度大
综合性强
二叉树的遍历
前序遍历
中序遍历
后序遍历
层次遍历
如何进行前序遍历
先遍历树根
然后前序遍历左子树
再前序遍历右子树
// 手动创建一个二叉树
public class TreeCreator {
public TreeNode createSampleTree() {
TreeNode root = new TreeNode(‘A‘);
root.setLeft(new TreeNode(‘B‘));
root.getLeft().setLeft(new TreeNode(‘D‘));
root.getLeft().setRight(new TreeNode(‘E‘));
root.getLeft().getRight().setLeft(new TreeNode(‘G‘));
root.setRight(new TreeNode(‘C‘));
root.getRight().setRight(new TreeNode(‘F‘));
return root;
}
}
public class TreeTraversal {
//前序遍历
public void preOrder(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.getValue());
preOrder(root.getLeft());
preOrder(root.getRight());
}
//中序遍历
public void inOrder(TreeNode root) {
if (root == null) {
return;
}
inOrder(root.getLeft());
System.out.print(root.getValue());
inOrder(root.getRight());
}
//后序遍历
public void postOrder(TreeNode root) {
if (root == null) {
return;
}
postOrder(root.getLeft());
postOrder(root.getRight());
System.out.print(root.getValue());
}
}
public static void main(String[] args) {
TreeCreator creator = new TreeCreator();
TreeTraversal traversal = new TreeTraversal();
System.out.println("Sample tree traversal");
System.out.println("=====");
TreeNode sampleTree = creator.createSampleTree();
traversal.preOrder(sampleTree);
System.out.println();
traversal.inOrder(sampleTree);
System.out.println();
traversal.postOrder(sampleTree);
System.out.println();
System.out.println("=====");
}
Sample tree traversal
=====
ABDEGCF
DBGEACF
DGEBFCA
=====
标签:traversal 排序 int 深度 creates pos 试题 ati ret
原文地址:https://www.cnblogs.com/itpy/p/11825981.html