栈、队列、链表和树及其JavaScript实现

上一期文章介绍了四种常用的数据结构及其Python实现过程。本期将焦点从Python转向JavaScript,依然围绕栈(Stack)、队列(Queue)、链表(Linked List)和树(Tree)四种ADT展开讨论。之所以"旧瓶装新酒",是我认为Python和JavaScript之间存在着一些有趣的差异,尽管相较于JAVA或C#,它们之间的共性更为突出。本文主要探讨两点:(一)基于类(Classical)和基于原型(Prototypical)的面向对象语言;(二)ES6之后JavaScript在面向对象编程方面的新特性。通过两期文章的对比,希望可以为你理解动态语言的异质性提供一点点的帮助。那末闲话少叙,让我们直奔主题。  …

3   编程开发

栈、队列、链表和树及其Python实现

阴晴圆缺都休说,且喜人间好时节。祝各位中秋快乐!   本文将介绍四种常用的数据结构以及它们在Python中的实现,包括栈(Stack),队列(Queue),链表(Linked List)和树(Tree)。开始之前,需要区分两个概念: 抽象数据类型(Abstract Data Type;ADT)和数据结构(Data Structure)。前者是数据结构的"蓝本(Blueprint)",它规定了数据结构必须具备的操作;后者则是抽象数据类型的实现(Implementation),它可以被定义为一组具有结构化方法的数据元素集合,这些方法使得存储和组织数据的过程变得更加高效。那末闲话少叙,让我们直奔主题。   栈…

0   编程开发

浅谈编程开发中的DRY原则:以CSS的引入为例

层叠样式表(Cascading Style Sheet)是一种描述HTML文档的标记语言(Markup Language),它定义了HTML文档中元素的显示样式。HTML文档中的CSS有三种引入方式,分别为行内样式、内嵌样式和外部样式:由于任意HTML元素都具有style属性,故行内样式直接在某一特定的HTML元素上应用样式;内嵌样式将样式封装在HTML文档中,使之可以应用于整个页面;外部样式则将样式写入单独的CSS文件,应用时通过链接标签或@规则从页面外部引入。那末,实际开发过程中究竟应该选择何种引入方式呢?答案是没有最佳的方式,只有最适合的方式。事实上,三种引入方式各有其所适用的场景和条件,应该结合实际问题具体分析。尽管如此,CSS的引入中依然有一些可以遵循的指导性原则,如程序设计中十分重要的DRY(Don't Repeat Yourself)原则。   CSS的三种引入方式如下:…

0   编程开发

前后端分离的一个案例实现:全球疫情数据定时采集与可视化

前后端分离(Separation of Front-end and Back-end)是目前Web开发中主流的架构模式,采用此架构可以最大程度地解耦开发人员的工作以提升其效率。尽管关于前后端分离的定义和技术细节并不一致,但其核心思想可以概括为:前端生成的页面响应由后端通过异步接口的方式提供。因此,我理解的前后端分离其实更多是指“前后端代码分离”。至于究竟是讨论业务分离、开发分离或者部署分离,究竟是基于经典的MVC(Model-View-Controller)框架或者以Node.js作为中间件,仅仅是实践中需要考虑的具体问题。在此基础上,就需要明确两点:第一,前后端分离中的前端并不特指浏览器或者客户端,而是指生成页面响应的服务,它可以仅仅是浏览器中通过Ajax动态生成的SPA(Single Page…

5   编程开发