zoukankan      html  css  js  c++  java
  • 算法基础

    算法基础

    1. 数据结构的存储方式(数组/链表)

      • 数组与链表的特点
      • 队列
      • 散列表
      • 树(查找/插入/删除)
    2. 数据结构的基本操作(遍利/访问)

      • 两种形式:线性(for/while) 非线性(递归)
      • 数组 链表 二叉树 N叉树
    • 数组
    void traverse(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
      // 迭代访问 arr[i]
    }
    }
    
    • 链表,兼具迭代和递归
    /* 基本的单链表节点 */
    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)
    }
    
    • 二叉树,典型的非线性递归便历结构
    /* 基本的二叉树节点 */
    class TreeNode {
        int val;
        TreeNode left, right;
    }
    
    void traverse(TreeNode root) {
        traverse(root.left)
        traverse(root.right)
    }
    
    • N叉树,与二叉树相似
    /* 基本的 N 叉树节点 */
    class TreeNode {
        int val;
        TreeNode[] children;
    }
    
    void traverse(TreeNode root) {
        for (TreeNode child : root.children)
            traverse(child)
    }
  • 相关阅读:
    JAVA_SE基础——35.static修饰成员函数
    Mybatis环境搭建
    搭建Mybatis环境遇到的问题
    Windows10系统下,彻底删除卸载MySQL
    StringBuffer类append方法的用法和用途
    Listener监听器
    Filter过滤器
    JSTL
    EL表达式
    JSP
  • 原文地址:https://www.cnblogs.com/luckyCoder/p/12732971.html
Copyright © 2011-2022 走看看