数据结构 — 栈(Stack) [ Doc ]
May 15, 2022
基础知识 # 栈是一种常用的数据结构,它最大的特点是“后入先出”,即后进入栈中的元素最先出来,为了确保“后入先出”(LIFO)的顺序,栈的插入(push)和删除(pop)操作都发生在栈顶。 如果数据保存的顺 ...
基础知识 # 栈是一种常用的数据结构,它最大的特点是“后入先出”,即后进入栈中的元素最先出来,为了确保“后入先出”(LIFO)的顺序,栈的插入(push)和删除(pop)操作都发生在栈顶。 如果数据保存的顺 ...
字符串本身的数据结构并不复杂,同数组非常类似,没啥特别需要介绍的,就是题一般都不简单。 做题需要考虑: 有的字符串一定是 26 个字母,有的可能会包含空格。 注意事项 # Golang # 注意:Go 的 for 循环得到的是 rune 类型的字符, ...
基本概念 # 父节点,子节点,叶子节点 # 叶子节点: 一棵树当中没有子结点的结点称为叶子结点。 高度和深度 # 树的高度:节点到叶子节点的最大值就是其高度。 树的深度:高度和深度是相反的,高度是从下往上数,深度是从上 ...
排序是非常基础、重要的算法,它将若干数据依照特定的顺序进行排列。如果排序的对象是数值,那么按数值递增或递减的顺序进行排序;如果排序的对象是字符串,那么按照字典顺序进行排序。由于数据排序之后能够利用二分 ...
基本概念 # 单向链表 # JavaScript # function ListNode(val, next) { this.val = (val === undefined ? 0 : val) this.next = (next === undefined ? null : next) } Golang # type ListNode struct { Val int Next *ListNode } 双向链表 # 双向链表在单向链表节点的基础上增加了指向前一个节点的指针,这样一来,既可以从头节点开始从前往后遍历 ...
这个问题既熟悉又有点陌生,先看概念。AJAX 是 Asynchronous Javavascript XML 的缩写,即异步 JavaScript 和 XML。使用 AJAX 技术可以在无需重新加载整个网页的情况下,能够更新部分网页,从而给带来更好的用户体验。另外 AJAX 不仅使用 XML,实际上由于 ...
事件是在编程时系统内发生的动作或者发生的事情,系统响应事件后,如果需要,我们可以用事件处理器(event handler)对事件做出回应。浏览器中常见的可以触发事件的时机比如有: 用户在某个元素上点击鼠标 ...
与一般基于类的面向对象语言(C++、Java)不同,JavaScript 是基于原型的语言。 原型 [[Prototype]] # 打开浏览器的控制台,输入 let b = {"hello": "world"} ,然后查看 b ,你会发现一个 [[Prototype]] 属性。这是每个对象都有的隐藏属性,它要么 ...
WebSocket 是 HTML5 开始提供的一种网络传输协议,可以在单个 TCP 连接上进行全双工通信,位于 OSI 参考模型的应用层。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏 ...
摩尔定律 # 摩尔定律是英特尔创始人之一戈登·摩尔的经验之谈,其核心内容为:集成电路上可以容纳的晶体管数目在大约每经过18个月便会增加一倍。 康威定律 # 计算机科学家 马尔文·康威 1976 年提出,设计系统的架构受制于 ...