风也温柔

计算机科学知识库

数据结构与算法 java 简单了解JavaScript数据结构与算法之栈

  1.认识栈

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

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

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

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

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

  流式数据和结构数据_数据结构与算法 java_算法与数据结构推荐书籍

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

  面向过程是什么:

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

  然后用函数实现,

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

  2.2需要实现的方法push()添加一个或多个元素到栈顶pop()删除钱顶的元素,并返回移除的元素peek()返回栈顶的元素()用于判断栈是否为空,空则为空clear()用于清空栈的元素size()用于返回栈中元素的个数

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

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

  一个空数组来模拟栈

  2.3源码实现数据结构与算法 java,并调用类

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

  在类中书写各种方法

  部分调用数组的方法。

  总的来说就是用类来包装

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

  <pre>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())</pre>

  登录后复制

  运行结果:

  数据结构与算法 java_流式数据和结构数据_算法与数据结构推荐书籍

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

  面向对象:

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

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

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

  3.2需要实现的方法push()添加一个或多个元素到栈顶pop()删除钱顶的元素数据结构与算法 java 简单了解JavaScript数据结构与算法之栈,并返回移除的元素peek()返回栈顶的元素()用于判断栈是否为空数据结构与算法 java,空则为空clear()用于清空栈的元素size()用于返回栈中元素的个数()用于将栈以字符串的形式打印

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

  3.3源码及使用类

<p><pre>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