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)
    }
  • 相关阅读:
    【微服务架构】SpringCloud之Ribbon
    SpringCloud之Eureka(注册中心集群篇)
    Eureka简介
    两行代码 搞定计数
    HBase详细概述
    电商项目介绍---说的很好
    面试:----Nginx的一理解
    redis介绍
    Linux操作系统介绍
    什么是Solr
  • 原文地址:https://www.cnblogs.com/luckyCoder/p/12732971.html
Copyright © 2011-2022 走看看