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

資訊專欄INFORMATION COLUMN

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

jayce / 3713人閱讀

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

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

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

"""
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)


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43307.html

相關文章

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

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

    YPHP 評論0 收藏0
  • 叉樹js的生成

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

    anyway 評論0 收藏0
  • 【從蛋殼到滿天飛】JAVA 數據結構解析和算法實現-二分搜索樹

    摘要:在數據結構領域對應樹結構來說二叉樹是最常用的一種樹結構,二叉樹具有一個唯一的根節點,也就是最上面的節點。二叉樹每個節點最多有兩個孩子,一個孩子都沒有的節點通常稱之為葉子節點,二叉樹每個節點最多有一個父親,根節點是沒有父親節點的。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言...

    ghnor 評論0 收藏0
  • 【從蛋殼到滿天飛】JAVA 數據結構解析和算法實現-二分搜索樹

    摘要:在數據結構領域對應樹結構來說二叉樹是最常用的一種樹結構,二叉樹具有一個唯一的根節點,也就是最上面的節點。二叉樹每個節點最多有兩個孩子,一個孩子都沒有的節點通常稱之為葉子節點,二叉樹每個節點最多有一個父親,根節點是沒有父親節點的。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言...

    FuisonDesign 評論0 收藏0
  • Python數據結構——二叉堆的實現

    摘要:二叉堆的有趣之處在于,其邏輯結構上像二叉樹,卻是用非嵌套的列表來實現。二叉堆結構性質為了更好地實現堆,我們采用二叉樹。圖完全二叉樹有意思的是我們用單個列表就能實現完全樹。下列所示的代碼是完全二叉堆的實現。 優先隊列的二叉堆實現 在前面的章節里我們學習了先進先出(FIFO)的數據結構:隊列(Queue)。隊列有一種變體叫做優先隊列(Priority Queue)。優先隊列的出隊(Dequ...

    stackfing 評論0 收藏0

發表評論

0條評論

jayce

|高級講師

TA的文章

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