字符串,链表,树

1. 字符串

2. 链表

3. 树


1. 字符串

如果IDE没有代码自动补全功能,所以你应该记住下面的这些方法。

 
 
  
  
  
  
  1. toCharyArray() // 获得字符串对应的char数组 
  2. Arrays.sort()  // 数组排序 
  3. Arrays.toString(char[] a) // 数组转成字符串 
  4. charAt(int x) // 获得某个索引处的字符 
  5. length() // 字符串长度 
  6. length // 数组大小 

2. 链表

在Java中,链表的实现非常简单,每个节点Node都有一个值val和指向下个节点的链接next。

 
 
  
  
  
  
  1. class Node { 
  2.     int val; 
  3.     Node next; 
  4.   
  5.     Node(int x) { 
  6.         val = x; 
  7.         next = null
  8.     } 

链表两个著名的应用是栈Stack和队列Queue。

栈:

 
 
  
  
  
  
  1. class Stack{ 
  2.     Node top; 
  3.   
  4.     public Node peek(){ 
  5.         if(top != null){ 
  6.             return top; 
  7.         } 
  8.   
  9.         return null
  10.     } 
  11.   
  12.     public Node pop(){ 
  13.         if(top == null){ 
  14.             return null
  15.         }else
  16.             Node temp = new Node(top.val); 
  17.             top = top.next; 
  18.             return temp;    
  19.         } 
  20.     } 
  21.   
  22.     public void push(Node n){ 
  23.         if(n != null){ 
  24.             n.next = top; 
  25.             top = n; 
  26.         } 
  27.     } 

队列:

 
 
  
  
  
  
  1. class Queue{ 
  2.     Node first, last; 
  3.   
  4.     public void enqueue(Node n){ 
  5.         if(first == null){ 
  6.             first = n; 
  7.             last = first; 
  8.         }else
  9.             last.next = n; 
  10.             last = n; 
  11.         } 
  12.     } 
  13.   
  14.     public Node dequeue(){ 
  15.         if(first == null){ 
  16.             return null
  17.         }else
  18.             Node temp = new Node(first.val); 
  19.             first = first.next; 
  20.             return temp; 
  21.         }   
  22.     } 

3. 树

这里的树通常是指二叉树,每个节点都包含一个左孩子节点和右孩子节点,像下面这样:

 
 
  
  
  
  
  1. class TreeNode{ 
  2.     int value; 
  3.     TreeNode left; 
  4.     TreeNode right; 

下面是与树相关的一些概念:

  1. 平衡 vs. 非平衡:平衡二叉树中,每个节点的左右子树的深度相差至多为1(1或0)。
  2. 满二叉树(Full Binary Tree):除叶子节点以为的每个节点都有两个孩子。
  3. 完美二叉树(Perfect Binary Tree):是具有下列性质的满二叉树:所有的叶子节点都有相同的深度或处在同一层次,且每个父节点都必须有两个孩子。
  4. 完全二叉树(Complete Binary Tree):二叉树中,可能除了最后一个,每一层都被完全填满,且所有节点都必须尽可能想左靠。

你可能感兴趣的:(字符串,链表,树)