zoukankan      html  css  js  c++  java
  • 算法小抄--摘抄

    1. 从整体到细节,自顶向下,从抽象到具体的框架思维都是通用的,不只是学习数据结构和算法,这样学习其他的任何知识都是高效的。

    2. 数据结构的底层存储方式只有两种:数组(顺序存储) 和 链表(链式存储)

    3. 对于任何数据结构,其基本操作就是遍历 + 访问, 在具体一点就是: 增, 删, 该, 查

    4. 各种数据结构的遍历: 线性 + 非线性

    • 数组
    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) {
      // 前序遍历
      traverse(head.next);
      // 后序遍历
    }
    
    • 二叉树
    class TreeNode {
      int val;
      TreeNode left, right;
    }
    
    void traverse(TreeNode root) {
      // 前序遍历
      traverse(root.left);
      // 中序遍历
      traverse(root.right);
      // 后序遍历
    }
    
    • N叉树--图的扩展遍历
    class TreeNode {
      int val;
      TreeNode[] children;
    }
    void traverse(TreeNode root) {
      for (TreeNode c hild: root.children) {
        traverse(child);
    	}
    }
    

    所谓的框架思维,就是套路。不管增删改查,这些代码都是永远无法脱离的结构,你可以把这个结构作为大纲,根据具体问题在框架上添加代码就行了。

    慢慢来,比较快!基础要牢,根基要稳!向大佬致敬!
  • 相关阅读:
    原型与继承
    sqlserver优化管理
    vue 错误拦截
    axios 重新发起上次请求
    vue 滚动加载数据
    el-scrollbar组件
    ES服务器优化
    Aspose 生成pdf行距的不正确的问题,行距变高
    DocumentFormat.OpenXml.dll通過word做好的模板生成word
    stm32f103 rt-thread fal easyflash移植过程
  • 原文地址:https://www.cnblogs.com/rookie123/p/14415642.html
Copyright © 2011-2022 走看看