真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaScript數(shù)據(jù)結構與棧實例分析

今天小編給大家分享一下JavaScript數(shù)據(jù)結構與棧實例分析的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

成都創(chuàng)新互聯(lián)服務項目包括舞鋼網(wǎng)站建設、舞鋼網(wǎng)站制作、舞鋼網(wǎng)頁制作以及舞鋼網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,舞鋼網(wǎng)站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到舞鋼省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

JavaScript數(shù)據(jù)結構與棧實例分析

1.認識棧

:(stack)又名堆棧,它是一種運算受限的線性表。遵循后進先出(LIFO)

棧頂:限定僅在表尾進行插入和刪除操作的線性表,

棧底:限定僅在表頭進行插入和刪除操作的線性表。

進棧:向一個棧插入新元素又稱作進棧、入?;驂簵?,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;

出棧:從一個棧刪除元素又稱作出?;蛲藯?,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素

JavaScript數(shù)據(jù)結構與棧實例分析

2.面向過程方法源碼編寫棧


2.1思考

面向過程是什么:

面向過程就是將解決問題的步驟分析出來,

然后用函數(shù)實現(xiàn),

只要一步一步的執(zhí)行調用他就可以了。


2.2需要實現(xiàn)的方法

  1. push(element)添加一個或多個元素到棧頂

  2. pop()刪除錢頂?shù)脑?,并返回移除的元?/p>

  3. peek()返回棧頂?shù)脑?/p>

  4. isEmpty()用于判斷棧是否為空,空則為空

  5. clear()用于清空棧的元素

  6. size()用于返回棧中元素的個數(shù)

在實現(xiàn)之前我們思考一下我們怎么實現(xiàn)

首先我們借用數(shù)組的方法來實現(xiàn),所以我們需要創(chuàng)建

一個空數(shù)組來模擬棧


2.3源碼實現(xiàn),并調用類

構建一個類,用數(shù)組來模擬,

在類中書寫各種方法

部分調用數(shù)組的方法。

總的來說就是用類來包裝

數(shù)組的方法來實現(xiàn)棧的模擬

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數(shù)據(jù)結構與棧實例分析


3.用面向對象的方法來源碼書寫


3.1思考

面向對象:

就是將構建問題的事物,分解成若干個對象,

建立對象不是為了完成某個步驟,而是為了

描述某個事物在解決問題過程的行為


3.2需要實現(xiàn)的方法

  1. push(element)添加一個或多個元素到棧頂

  2. pop()刪除錢頂?shù)脑?,并返回移除的元?/p>

  3. peek()返回棧頂?shù)脑?/p>

  4. isEmpty()用于判斷棧是否為空,空則為空

  5. clear()用于清空棧的元素

  6. size()用于返回棧中元素的個數(shù)

  7. toString()用于將棧以字符串的形式打印

那么在實現(xiàn)這個類,我們用對象來模擬棧


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

在使用對象來模擬棧時,采用了鍵:值的方式

來存儲數(shù)據(jù),比如this.items[this.count]=element

在這個結構中用this.count來記錄棧的大小,

當我們向里面插入一個數(shù)字時,就分配count為鍵

插入的值為值。這個時候就需要將this.count++.

關于pop()與peek(),toString()方法都需要

先判斷棧是否為空,如果為空則返回undefined。

以上就是“JavaScript數(shù)據(jù)結構與棧實例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享名稱:JavaScript數(shù)據(jù)結構與棧實例分析
URL標題:http://weahome.cn/article/ijigjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部