摘要:可以看到,一次左單旋將右側子樹的高度減小了,而左側子樹的高度增加了。如圖,對進行右單旋,需要左子樹的右子樹的高度小于等于左子樹的高度,否則不能達到平衡的效果,只是把不平衡性從左邊轉移到了右邊。 AVL樹 普通二叉搜索樹可能出現一條分支有多層,而其他分支卻只有幾層的情況,如圖1所示,這會導致添加、移除和搜索樹具有性能問題。因此提出了自平衡二叉樹的概念,AVL樹(阿德爾森-維爾斯和蘭迪斯樹...
摘要:的類與繼承的類與一般的面向對象語言有很大的不同,類的標識是它的構造函數,下面先定義一個類顯然我們可以看出這兩個函數是不同的,雖然它們實現了相同的功能。利用構造函數來繼承上面的方法子類顯然無法繼承父類的原型函數,這樣不符合我們使用繼承的目的。 javascript的類與繼承 javascript的類與一般的面向對象語言有很大的不同,類的標識是它的構造函數,下面先定義一個類 var ...
摘要:如果你知道正則表達式模式將會改變,或者你事先不知道什么模式,而是從另一個來源獲取,如用戶輸入,這些情況都可以使用構造函數。 為什么要使用正則表達式 正則表達式通過由普通字符和特殊字符組成的文字模板完成對字符串的校驗,搜索,替換。在javascript中類似這樣 /^1d{10}$/ 上面的這個簡單的正則用來匹配手機號至于說正則表達式到底有什么意義,借由《精通正則表達式》里面的一句話來概...
摘要:目前的標準化工作正在進行中,預計會在年月份放出正式敲定的版本。反的方法可以接收一個參數并且返回值取決與它的構造函數。之后就可以用這個返回值做為對象的鍵了。 本文基于lukehoban/es6features ,同時參考了大量博客資料,具體見文末引用。 ES6(ECMAScript 6)是即將到來的新版本JavaScript語言的標準,代號harmony(和諧之意,顯然沒有跟上我國的步伐...
摘要:鏈式調用的模式下面是實現定時器清除以后回調定時器的一段偽代碼看一段實例函數實現數字從增加到,每增加一次在控制臺打印一次。結束以后可以立即執行回調函數。 在《JavaScript高級程序設計》一書中,列舉了兩條setInterval()的缺點: 某些間隔會被跳過; 多個定時器的代碼執行之間的間隔可能會比預期的小。 書中給出了替代方案:鏈式調用setTimeout()。所以我現在更傾向...