成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

二叉樹生成字符串,字符串生成二叉樹

jayce / 3733人閱讀

摘要:通常的方式,都是二叉樹生成字符串字符串生成二叉樹,遵循二叉樹的遞歸生成字符串的方式進(jìn)行遍歷。碰到終止標(biāo)志,才終止深度遞歸轉(zhuǎn)向另一個(gè)方向。原因字符串的遍歷方式,除了順序遍歷方式,也可以采用遞歸便利方式,遵循遞歸的規(guī)律。

通常的方式,都是二叉樹生成字符串
字符串生成二叉樹,遵循二叉樹的遞歸生成字符串的方式進(jìn)行遍歷。

"""
    1.二叉樹先序遍歷,可以保證按照容易理解的角度從上到下進(jìn)行遍歷,顯示,輸出
    2.先序后序中序遍歷,都是 深度遞歸,顯示上都會(huì)與直接直覺有出入
    3.通過(guò)遍歷后的字符串,反出建立 二叉樹,可以尊徐 序列化的模式進(jìn)行建立,同樣適用。
      由于遍歷是深度遞歸形成字符串,所以生成二叉樹同樣可以深度遞歸。碰到終止標(biāo)志,才終止深度遞歸轉(zhuǎn)向另一個(gè)方向。
    bug原因:字符串的遍歷方式,除了順序遍歷方式,也可以采用遞歸便利方式,遵循遞歸的規(guī)律。

"""
class TreeNode(object):
    def __init__(self,value):
        self.value=value
        self.leftnode=None
        self.rightnode=None
str_raw="1246###5#73#89##"
def deserialize(chars):
    if len(chars)==0:
        return None
    assert isinstance(chars,list)
    char_cur=chars.pop(0)
    if char_cur=="#":
        return None
    else:
        node_cur=TreeNode(char_cur)
        node_cur.leftnode=deserialize(chars)
        node_cur.rightnode=deserialize(chars)
        return node_cur

out=deserialize(list(str_raw))
print(out)

str_out=""
def serialization(tree_in):
    global str_out
    str_out=str_out+tree_in.value
    if tree_in.leftnode:
        serialization(tree_in.leftnode)
    else:
        str_out+="#"
    if tree_in.rightnode:
        serialization(tree_in.rightnode)
    else:
        str_out+="#"
serialization(out)
print(str_out)


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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43307.html

相關(guān)文章

  • 使用JavaScript完成叉樹的一些基本操作

    摘要:另外,由于篇幅有限,本篇的重點(diǎn)在于二叉樹的常見算法以及實(shí)現(xiàn)。常見的二叉樹實(shí)現(xiàn)代碼之前寫過(guò)相關(guān)的文章,是關(guān)于如何創(chuàng)建及遍歷二叉樹的,這里不再贅述。同時(shí)我們注意到,在二叉樹深度比較大的時(shí)候,我們光是比較左右是不夠的。 本篇為復(fù)習(xí)過(guò)程中遇到過(guò)的總結(jié),同時(shí)也給準(zhǔn)備面試的同學(xué)一份參考。另外,由于篇幅有限,本篇的重點(diǎn)在于二叉樹的常見算法以及實(shí)現(xiàn)。 常見的二叉樹實(shí)現(xiàn)代碼 之前寫過(guò)相關(guān)的文章,是關(guān)于如...

    YPHP 評(píng)論0 收藏0
  • 叉樹js的生成

    摘要:二叉樹的生成二叉樹的概念二叉樹概念及相關(guān)操作本文是順序二叉樹及其操作的實(shí)現(xiàn),非順序二叉樹應(yīng)該也差不多,這里沒有實(shí)現(xiàn)基本二叉樹的實(shí)現(xiàn)添加元素查找元素刪除元素具體使用方法 二叉樹的js生成 二叉樹的概念二叉樹概念及相關(guān)操作 本文是順序二叉樹及其操作的js實(shí)現(xiàn),非順序二叉樹應(yīng)該也差不多,這里沒有實(shí)現(xiàn) //基本二叉樹的實(shí)現(xiàn) function BT(){ this.root=null; ...

    anyway 評(píng)論0 收藏0
  • 【從蛋殼到滿天飛】JAVA 數(shù)據(jù)結(jié)構(gòu)解析和算法實(shí)現(xiàn)-二分搜索樹

    摘要:在數(shù)據(jù)結(jié)構(gòu)領(lǐng)域?qū)?yīng)樹結(jié)構(gòu)來(lái)說(shuō)二叉樹是最常用的一種樹結(jié)構(gòu),二叉樹具有一個(gè)唯一的根節(jié)點(diǎn),也就是最上面的節(jié)點(diǎn)。二叉樹每個(gè)節(jié)點(diǎn)最多有兩個(gè)孩子,一個(gè)孩子都沒有的節(jié)點(diǎn)通常稱之為葉子節(jié)點(diǎn),二叉樹每個(gè)節(jié)點(diǎn)最多有一個(gè)父親,根節(jié)點(diǎn)是沒有父親節(jié)點(diǎn)的。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言...

    ghnor 評(píng)論0 收藏0
  • 【從蛋殼到滿天飛】JAVA 數(shù)據(jù)結(jié)構(gòu)解析和算法實(shí)現(xiàn)-二分搜索樹

    摘要:在數(shù)據(jù)結(jié)構(gòu)領(lǐng)域?qū)?yīng)樹結(jié)構(gòu)來(lái)說(shuō)二叉樹是最常用的一種樹結(jié)構(gòu),二叉樹具有一個(gè)唯一的根節(jié)點(diǎn),也就是最上面的節(jié)點(diǎn)。二叉樹每個(gè)節(jié)點(diǎn)最多有兩個(gè)孩子,一個(gè)孩子都沒有的節(jié)點(diǎn)通常稱之為葉子節(jié)點(diǎn),二叉樹每個(gè)節(jié)點(diǎn)最多有一個(gè)父親,根節(jié)點(diǎn)是沒有父親節(jié)點(diǎn)的。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言...

    FuisonDesign 評(píng)論0 收藏0
  • Python數(shù)據(jù)結(jié)構(gòu)——二叉堆的實(shí)現(xiàn)

    摘要:二叉堆的有趣之處在于,其邏輯結(jié)構(gòu)上像二叉樹,卻是用非嵌套的列表來(lái)實(shí)現(xiàn)。二叉堆結(jié)構(gòu)性質(zhì)為了更好地實(shí)現(xiàn)堆,我們采用二叉樹。圖完全二叉樹有意思的是我們用單個(gè)列表就能實(shí)現(xiàn)完全樹。下列所示的代碼是完全二叉堆的實(shí)現(xiàn)。 優(yōu)先隊(duì)列的二叉堆實(shí)現(xiàn) 在前面的章節(jié)里我們學(xué)習(xí)了先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu):隊(duì)列(Queue)。隊(duì)列有一種變體叫做優(yōu)先隊(duì)列(Priority Queue)。優(yōu)先隊(duì)列的出隊(duì)(Dequ...

    stackfing 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<