Java校招面试 G歌面试官亲授

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
=====

猜你喜欢

转载自www.cnblogs.com/itpy/p/11825981.html
今日推荐