国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Javascript實現(xiàn)基本的數(shù)據(jù)結(jié)構(gòu) 一 棧

cnio / 3302人閱讀

摘要:今天實現(xiàn)的是最基本的數(shù)據(jù)結(jié)構(gòu)之一棧棧在中有著非常重要,基本類型會存儲在棧中,你可以操作實際的值。要定義一個棧,首先需要明白,棧的基本結(jié)構(gòu)有哪些,需要遵循哪些規(guī)則。首先創(chuàng)建一個函數(shù)對象表示棧。

Javascript工程師,總會面對一個問題,數(shù)據(jù)結(jié)構(gòu)和算法會成為自己的短板,不僅是對非科班,甚至一些科班出身的工程師來說也是自己的短板,于是就有了這系列文章。
基礎(chǔ)決定深度,前端入門易,上升困難,學(xué)習(xí)曲線陡,很多時候就是因為缺少這些思維。

今天實現(xiàn)的是最基本的數(shù)據(jù)結(jié)構(gòu)之一 棧

棧在js中有著非常重要,基本類型會存儲在棧中,你可以操作實際的值。

要定義一個棧,首先需要明白,棧的基本結(jié)構(gòu)有哪些,需要遵循哪些規(guī)則。

棧是一個線性表,遵循著LIFO原則的有序集合,也就是先進后出,先進入棧的元素,會儲存在棧底,后進入的元素會放在棧頂,就像我們小時候見過的糧倉一樣,先進入的小麥被放在棧底。并且,棧只有一端是可以操作的,就是棧頂。

function Stack() {
         
        }

首先創(chuàng)建一個函數(shù)(對象)表示棧。
let items = [];
然后需要創(chuàng)建一個數(shù)組來保存需要保存的元素。

  this.push = function(element) {
                items.push(element)
            }//調(diào)用數(shù)組的push方法,將元素加入棧
            this.pop = function() {
                return items.pop();
            }//調(diào)用數(shù)組的pop方法移除棧頂元素并且返回該元素
            this.peek = function() {
                return items[items.length - 1]
            }//調(diào)用數(shù)組的peek方法,返回棧頂?shù)牡谝粋€元素也就是整個棧的最后一個元素。
            this.isEmpty = function() {
                return items.length == 0;
            }//檢查棧是不是為空的,返回布爾值            
            this.size = function() {
                return items.length;
            }//返回棧的長度
            this.clear = function() {
                items = [];
            }//刪除棧中所有的元素
            this.print = function() {
                console.log(items.toString)
            }//打出棧所有的元素

接下來需要給棧定義方法

  function Stack() {
            let items = [];
            this.push = function(element) {
                items.push(element)
                console.log(this)
            }
            this.pop = function() {
                return items.pop();
            }
            this.peek = function() {
                return items[items.length - 1]
            }
            this.isEmpty = function() {
                return items.length == 0;
            }
            this.size = function() {
                return items.length;
            }
            this.clear = function() {
                items = [];
            }
            this.print = function() {
                console.log(items.toString())
            }
        }

這樣就簡單的創(chuàng)建了棧

接下來需要試一下棧的基本功能

  let stack = new Stack();定義一個新的對象
  console.log(stack.__proto__)//__proto__等于prototype.constructor

棧就這樣創(chuàng)建完成了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/50779.html

相關(guān)文章

  • Javascript實現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)

    摘要:今天實現(xiàn)的是最基本的數(shù)據(jù)結(jié)構(gòu)之一棧棧在中有著非常重要,基本類型會存儲在棧中,你可以操作實際的值。要定義一個棧,首先需要明白,棧的基本結(jié)構(gòu)有哪些,需要遵循哪些規(guī)則。首先創(chuàng)建一個函數(shù)對象表示棧。 Javascript工程師,總會面對一個問題,數(shù)據(jù)結(jié)構(gòu)和算法會成為自己的短板,不僅是對非科班,甚至一些科班出身的工程師來說也是自己的短板,于是就有了這系列文章。基礎(chǔ)決定深度,前端入門易,上升困難,...

    seanlook 評論0 收藏0
  • JavaScript數(shù)據(jù)結(jié)構(gòu)

    摘要:我們都知道數(shù)組是里面比較常用的一種數(shù)據(jù)結(jié)構(gòu),棧和數(shù)組類似,定義如下棧是一種遵從后進先出原則的有序集合。新增加和待刪除的元素都保存在棧的尾部,也稱棧頂,相反的另一端就叫棧底,在棧的這種數(shù)據(jù)結(jié)構(gòu)里面,我們新增的元素都在棧頂,舊的元素都在棧底。 由于不是計算機專業(yè)出身,對數(shù)據(jù)結(jié)構(gòu)這些了解的比較少,最近看了一些相關(guān)的書籍,這里做一些總結(jié)。本篇要說的是棧。我們都知道數(shù)組是JavaScript里面...

    nanchen2251 評論0 收藏0
  • JavaScript 數(shù)據(jù)結(jié)構(gòu)與算法之美 - 內(nèi)存與堆內(nèi)存 、淺拷貝與深拷貝

    摘要:棧內(nèi)存與堆內(nèi)存淺拷貝與深拷貝,可以說是前端程序員的內(nèi)功,要知其然,知其所以然。棧內(nèi)存與堆內(nèi)存中的變量分為基本類型和引用類型。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 前言 想寫好前端,先練好內(nèi)功。 棧內(nèi)存與堆內(nèi)存 、淺拷貝與深拷貝,可以說是前端程序員的內(nèi)功,要知其然,知其所以然。 筆者寫的 JavaScrip...

    dailybird 評論0 收藏0
  • 前端進擊巨人(二):、堆、隊列、內(nèi)存空間

    摘要:中有三種數(shù)據(jù)結(jié)構(gòu)棧堆隊列。前端進擊的巨人一執(zhí)行上下文與執(zhí)行棧,變量對象中解釋執(zhí)行棧時,舉了一個乒乓球盒子的例子,來演示棧的存取方式,這里再舉個栗子搭積木。對于基本類型,棧中存儲的就是它自身的值,所以新內(nèi)存空間存儲的也是一個值。 面試經(jīng)常遇到的深淺拷貝,事件輪詢,函數(shù)調(diào)用棧,閉包等容易出錯的題目,究其原因,都是跟JavaScript基礎(chǔ)知識不牢固有關(guān),下層地基沒打好,上層就是豆腐渣工程,...

    edgardeng 評論0 收藏0

發(fā)表評論

0條評論

cnio

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<