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)
    }
  • 相关阅读:
    Python3.x基础学习-静态方法和类方法
    Python3.x基础学习-@property
    Python3.x基础学习-装饰器
    SpringMVC学习(七)
    SpringMVC学习(六)
    SpringMVC学习(五)
    整合SSM(二)
    整合SSM(一)
    SpringMVC学习(四)
    SpringMVC学习(三)
  • 原文地址:https://www.cnblogs.com/luckyCoder/p/12732971.html
Copyright © 2011-2022 走看看