數組和鏈表是基礎結構,其餘數據結構都是基於這個基礎構建的數組
經過散列函數將鍵映射到一個大數組中。數據結構
先進先出框架
先進後出函數
用數組實現就是[堆]code
二叉搜索樹、AVL樹、紅黑樹、區間樹和B樹等等。遞歸
數據結構種類不少,但他們存在的目的就是在不一樣場景,儘量高效地增刪改查
如何遍歷+訪問
線性和非線性隊列
數組遍歷框架class
void traverse(int[] arr){ for(int i=0;i<arr.length;i++){ //迭代訪問arr }
非線性,兼具迭代和遞歸結構基礎
//基本的單鏈表節點 class ListNode{ int val; ListNode next; } void traverse(ListNode head){ for(ListNode p=head;p!=null;p=p.next){ //迭代訪問p.val } } void traverse(ListNode head){ //遞歸訪問head.val traverse(head.next); }
二叉樹遍歷框架List
//基本的二叉樹節點 class TreeNode{ int val; TreeNode left,right; } void traverse(TreeNode root){ traverse(root.left); traverse(roo.right); }
衍生出的N多叉樹
//基本的N叉樹節點 class TreeNode{ int val; TreeNode[] children; } void traverse(TreeNode root){ for(TreeNode child:root.children){ traverse(child); } }