摘要:樹的遍歷有先序,中序,后序。我用的最多的就是先序遍歷,現(xiàn)在我們就如下的數(shù)據(jù)結(jié)構(gòu)說一下先序遍歷是怎么操作樹的。以上是我的做法,大家有可優(yōu)化的地方歡迎指出。
對于樹的操作是平時(shí)用的最多的,任何操作都基于樹的遍歷。樹的遍歷有先序,中序,后序。我用的最多的就是先序遍歷,現(xiàn)在我們就如下的數(shù)據(jù)結(jié)構(gòu)說一下先序遍歷是怎么操作樹的。
我們現(xiàn)在的需求是去除LabelWithNum長度為0的父元素:
//按專題展示下去除沒有標(biāo)簽的節(jié)點(diǎn) function removeNoneTag(data) { for (var i = 0, len = data.length; i < len; i++) { var secondData = data[i].StudyGroupWithTagNums; if (!!secondData && secondData.length > 0) { //如果有子專題則繼續(xù)向下遍歷,如果沒有直接判斷該專題下有沒有標(biāo)簽 var temp = removeNoneTag(secondData); if (!!temp && temp.length == 0) { if (data[i].LabelWithNum.length == 0) { data.splice(i, 1); len = data.length; i -= 1; } } } else { if (data[i].LabelWithNum.length == 0) { data.splice(i, 1); len = data.length; i -= 1; } } } return data; }
這樣我們拿到的結(jié)果就是去除LabelWithNum長度為0的元素集合。
以上是我的做法,大家有可優(yōu)化的地方歡迎指出。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108753.html
摘要:定義樹同散列表一樣,是一種非順序數(shù)據(jù)結(jié)構(gòu)。一個節(jié)點(diǎn)及其后代可以組成一個子樹如圖中的。方法允許傳入子樹一直遍歷左側(cè)子節(jié)點(diǎn),直到底部搜索特定值搜索特定值的處理與插入值的處理類似。同理,找左側(cè)子樹的最大值替換上來也可以。 定義 樹同散列表一樣,是一種非順序數(shù)據(jù)結(jié)構(gòu)。現(xiàn)實(shí)中樹的例子有家譜、公司組織架構(gòu)圖及其它樹形結(jié)構(gòu)關(guān)系。樹由一系列節(jié)點(diǎn)構(gòu)成,每個節(jié)點(diǎn)都有一個父節(jié)點(diǎn)(除根節(jié)點(diǎn)外)以及零個或多個子...
摘要:二叉樹和二叉查找樹一個父節(jié)點(diǎn)的兩個子節(jié)點(diǎn)分別稱為左節(jié)點(diǎn)和右節(jié)點(diǎn)。下圖展示了一顆二叉樹當(dāng)考慮某種特殊的二叉樹,比如二叉查找樹時(shí),確定子節(jié)點(diǎn)非常重要。實(shí)現(xiàn)二叉查找樹定義對象?,F(xiàn)在可以創(chuàng)建一個類來表示二叉查找樹。因此二叉查找樹也被叫做二叉排序樹。 樹是計(jì)算機(jī)科學(xué)中經(jīng)常用到的一種數(shù)據(jù)結(jié)構(gòu)。樹是一種非線性的數(shù)據(jù)結(jié)構(gòu),以分層的方式存儲數(shù)據(jù)。 樹被用來存儲具有層級關(guān)系的數(shù)據(jù),比如文件系統(tǒng)中的文件。 ...
摘要:左子樹的加法運(yùn)算結(jié)果為,右子樹的減法運(yùn)算結(jié)果為。如圖,該圖說明了隨著每個新的字符被讀入后該解析樹的內(nèi)容和結(jié)構(gòu)。使函數(shù)走向基點(diǎn)的遞歸過程就是調(diào)用求值函數(shù)計(jì)算當(dāng)前節(jié)點(diǎn)的左子樹右子樹的值。最后,我們將在圖中創(chuàng)建的解析樹上遍歷求值。 解析樹 完成樹的實(shí)現(xiàn)之后,現(xiàn)在我們來看一個例子,告訴你怎么樣利用樹去解決一些實(shí)際問題。在這個章節(jié),我們來研究解析樹。解析樹常常用于真實(shí)世界的結(jié)構(gòu)表示,例如句子或數(shù)...
摘要:數(shù)據(jù)結(jié)構(gòu)棧一種遵從先進(jìn)后出原則的有序集合隊(duì)列遵從先進(jìn)先出原則的有序項(xiàng)優(yōu)先隊(duì)列修改版的隊(duì)列,設(shè)置優(yōu)先級循環(huán)隊(duì)列基于隊(duì)列,克服假溢出想象的隊(duì)列。這種數(shù)據(jù)結(jié)構(gòu)非常方便,提供了一個便利的語法來訪問它的元素。 javascript數(shù)據(jù)結(jié)構(gòu) 棧 一種遵從先進(jìn)后出原則的有序集合 隊(duì)列 遵從先進(jìn)先出原則的有序項(xiàng) 優(yōu)先隊(duì)列 修改版的隊(duì)列,設(shè)置優(yōu)先級 循環(huán)隊(duì)列 基于隊(duì)列,克服‘假溢出’想象的隊(duì)列。例如隊(duì)列...
摘要:樹和樹的算法一樹樹的概念樹英語是一種抽象數(shù)據(jù)類型或是實(shí)作這種抽象數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu),用來模擬具有樹狀結(jié)構(gòu)性質(zhì)的數(shù)據(jù)集合。一種時(shí)間復(fù)雜度額外空間復(fù)雜度的二叉樹的遍歷方式,為二叉樹的節(jié)點(diǎn)個數(shù)。 樹和樹的算法 一、樹 1.1 樹的概念 樹(英語:tree)是一種抽象數(shù)據(jù)類型(ADT)或是實(shí)作這種抽象數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu),用來模擬具有樹狀結(jié)構(gòu)性質(zhì)的數(shù)據(jù)集合。它是由n(n>=1)個有限節(jié)點(diǎn)組成一個...
閱讀 2286·2019-08-30 15:56
閱讀 3120·2019-08-30 13:48
閱讀 1132·2019-08-30 10:52
閱讀 1505·2019-08-29 17:30
閱讀 430·2019-08-29 13:44
閱讀 3560·2019-08-29 12:53
閱讀 1127·2019-08-29 11:05
閱讀 2677·2019-08-26 13:24