广告
返回顶部
首页 > 资讯 > 精选 >JavaScript数据结构与算法之栈实例分析
  • 388
分享到

JavaScript数据结构与算法之栈实例分析

2023-07-02 14:07:33 388人浏览 安东尼
摘要

这篇文章主要介绍了javascript数据结构与算法之栈实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript数据结构与算法之栈实例分析文章都会有所收获,下面我们一起来看看吧。1.认识栈栈:

这篇文章主要介绍了javascript数据结构与算法之栈实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript数据结构算法之栈实例分析文章都会有所收获,下面我们一起来看看吧。

1.认识栈

:(stack)又名堆栈,它是一种运算受限的线性表。遵循后进先出(LIFO)

栈顶:限定仅在表尾进行插入和删除操作的线性表,

栈底:限定仅在表头进行插入和删除操作的线性表。

进栈:向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;

出栈:从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素

JavaScript数据结构与算法之栈实例分析

2.面向过程方法源码编写栈

2.1思考

面向过程是什么:

面向过程就是将解决问题的步骤分析出来,

然后用函数实现,

只要一步一步的执行调用他就可以了。

2.2需要实现的方法

  • push(element)添加一个或多个元素到栈顶

  • pop()删除钱顶的元素,并返回移除的元素

  • peek()返回栈顶的元素

  • isEmpty()用于判断栈是否为空,空则为空

  • clear()用于清空栈的元素

  • size()用于返回栈中元素的个数

在实现之前我们思考一下我们怎么实现

首先我们借用数组的方法来实现,所以我们需要创建

一个空数组来模拟栈

2.3源码实现,并调用类

构建一个类,用数组来模拟,

在类中书写各种方法

部分调用数组的方法。

总的来说就是用类来包装

数组的方法来实现栈的模拟

class Stack {   constructor() {       this.item = []         }   push(element) {        this.item.push(element)               }   pop() {      return this.item.pop()          }   peek() {       return this.item[this.item.length - 1]            }   isEmpty() {       return this.item.length === 0            }   clear() {         this.item = []   size() {          return this.item.length            }        }//实例化Stack类const stack = new Stack()stack.push(4)stack.push(6)console.log( stack.pop())console.log(stack.peek())console.log(stack.isEmpty())console.log(stack.size())

运行结果:

JavaScript数据结构与算法之栈实例分析

3.用面向对象的方法来源码书写

3.1思考

面向对象:

就是将构建问题的事物,分解成若干个对象

建立对象不是为了完成某个步骤,而是为了

描述某个事物在解决问题过程的行为

3.2需要实现的方法

  • push(element)添加一个或多个元素到栈顶

  • pop()删除钱顶的元素,并返回移除的元素

  • peek()返回栈顶的元素

  • isEmpty()用于判断栈是否为空,空则为空

  • clear()用于清空栈的元素

  • size()用于返回栈中元素的个数

  • toString()用于将栈以字符串的形式打印

那么在实现这个类,我们用对象来模拟栈

3.3源码及使用类

class Stack {   constructor() {      this.count=0      this.items = {}            }   push(element) {      this.items[this.count]=element      this.count++            }    pop() {       if(this.isEmpty()){           return undefined          }       this.count--       const result=this.items[this.count]       delete this.items[this.count]       return result            }    peek() {          if(this.isEmpty()){               return undefined               }         return this.items[this.count-1]            }    isEmpty() {         return this.count===0            }    clear() {        this.items={}        this.count=0          }    size() {       return this.count           }    toString(){       if(this.isEmpty()){        return undefined               }         let objectString=`${this.items[0]}`          for(let i=1;i<this.count;i++){               objectString=`${objectString},${this.items[i]}`               }         return objectString            }        }   const stack = new Stack()  stack.push(23)  stack.push(34)  stack.push(80)  console.log( stack.pop())  console.log(stack.peek())  console.log(stack.isEmpty())  console.log(stack.size())  console.log(stack.toString())

在使用对象来模拟栈时,采用了键:值的方式 

来存储数据,比如this.items[this.count]=element

在这个结构中用this.count来记录栈的大小,

当我们向里面插入一个数字时,就分配count为键

插入的值为值。这个时候就需要将this.count++.

关于pop()与peek(),toString()方法都需要

先判断栈是否为空,如果为空则返回undefined。

关于“JavaScript数据结构与算法之栈实例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JavaScript数据结构与算法之栈实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: JavaScript数据结构与算法之栈实例分析

本文链接: https://www.lsjlt.com/news/342259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript数据结构与算法之栈实例分析
    这篇文章主要介绍了JavaScript数据结构与算法之栈实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript数据结构与算法之栈实例分析文章都会有所收获,下面我们一起来看看吧。1.认识栈栈:...
    99+
    2023-07-02
  • JavaScript数据结构与栈实例分析
    今天小编给大家分享一下JavaScript数据结构与栈实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2022-10-19
  • JavaScript数据结构与算法之栈详解
    目录1.认识栈2.面向过程方法源码编写栈2.1思考2.2需要实现的方法2.3源码实现,并调用类3.用面向对象的方法来源码书写3.1思考3.2需要实现的方法3.3源码及使用类4.总结1...
    99+
    2022-11-13
  • JavaScript中数据结构与算法之检索算法的示例分析
    这篇文章主要为大家展示了“JavaScript中数据结构与算法之检索算法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中数据结构与...
    99+
    2022-10-19
  • C++数据结构的栈与队列实例分析
    今天小编给大家分享一下C++数据结构的栈与队列实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 栈1.1 栈的概念...
    99+
    2023-06-30
  • Python高级数据结构与算法实例分析
    本文小编为大家详细介绍“Python高级数据结构与算法实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python高级数据结构与算法实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、简介我们将从以...
    99+
    2023-07-05
  • Python数据结构与算法之算法分析详解
    目录0. 学习目标1. 算法的设计要求1.1 算法评价的标准1.2 算法选择的原则2. 算法效率分析2.1 大O表示法2.2 常见算法复杂度2.3 复杂度对比3. 算法的存储空间需求...
    99+
    2022-11-12
  • JS中数据结构之栈的示例分析
    这篇文章给大家分享的是有关JS中数据结构之栈的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样的操作很快,而且...
    99+
    2022-10-19
  • Python数据结构的栈实例分析
    这篇文章主要介绍“Python数据结构的栈实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python数据结构的栈实例分析”文章能帮助大家解决问题。1. 栈的基本概念1.1 栈的基本概念栈 (...
    99+
    2023-06-29
  • Java数据结构与算法的示例分析
    这篇文章给大家分享的是有关Java数据结构与算法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。第1章 数据结构与算法基础概述1.1 数据结构和算法的重要性算法是程序的灵魂,优秀的程序可以在海量数据计算时...
    99+
    2023-06-29
  • Java 数据结构与算法系列精讲之栈
    目录概述栈栈实现push方法pop方法main完整代码概述 从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章. 栈 栈 (Stack) 是一种运算受限...
    99+
    2022-11-13
  • 分析Java数据结构与算法
    本篇内容主要讲解“分析Java数据结构与算法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析Java数据结构与算法”吧!1.什么是二叉树二叉树:就是每个节点都...
    99+
    2022-10-19
  • Java数据结构之栈与队列实例详解
    目录一,栈1,概念2,栈的操作3,栈的实现 4,实现mystack二,队列1,概念 2,队列的实现 3,实现myqueue栈、队列与数组的区别?总结 一,栈 1,概念 在我们软件应用...
    99+
    2022-11-12
  • Python数据结构树与算法分析
    目录1.示例2.术语及定义3.实现3.1 列表之列表3.2节点与引用4.二叉树的应用4.1解析树4.2树的遍历5.利用二叉堆实现优先级队列6.二叉搜索树6.1搜索树的实现7.平衡二叉...
    99+
    2022-11-11
  • JavaScript数据结构Number实例分析
    本文小编为大家详细介绍“JavaScript数据结构Number实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript数据结构Number实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-29
  • JavaScript数据结构与算法
    目录前言数据结构常见的数据结构算法算法的特征算法的目标总结前言 数据结构与算法这个词相信大家都听过、了解过、学过,那为什么要学习数据结构与算法呢?我感觉有以下两个原因: 为了一个比较...
    99+
    2022-11-13
  • JavaScript数据结构中栈应用之表达式求值的示例分析
    这篇文章给大家分享的是有关JavaScript数据结构中栈应用之表达式求值的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:下面来谈一个比较经典的表达式求值问题,...
    99+
    2022-10-19
  • Java数据结构和算法之链表的示例分析
    这篇文章主要介绍Java数据结构和算法之链表的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、链表(Linked List)链表通常由一连串节点组成,每个节点包含任意的实例数据(data fiel...
    99+
    2023-06-28
  • JavaScript数据结构之链表的示例分析
    这篇文章主要为大家展示了“JavaScript数据结构之链表的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript数据结构之链表的示例分析...
    99+
    2022-10-19
  • python数据结构算法的示例分析
    小编给大家分享一下python数据结构算法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.算法分析的定义有这样一个问题:当两个看上去不同的程序 解决同...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作