老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

python樹的同構學習筆記-創新互聯

一、題意理解

創新互聯主打移動網站、成都做網站、成都網站設計、網站改版、網絡推廣、網站維護、域名注冊、等互聯網信息服務,為各行業提供服務。在技術實力的保障下,我們為客戶承諾穩定,放心的服務,根據網站的內容與功能再決定采用什么樣的設計。最后,要實現符合網站需求的內容、功能與設計,我們還會規劃穩定安全的技術方案做保障。

給定兩棵樹T1和T2。如果T1可以通過若干次左右孩子互換就變成T2,則我們稱兩棵樹是“同構的”。現給定兩棵樹,請你判斷它們是否是同構的。

python樹的同構學習筆記

輸入格式:輸入給出2棵二叉樹的信息:

先在一行中給出該樹的結點樹,隨后N行

第i行對應編號第i個結點,給出該結點中存儲的字母、其左孩子結點的編號、右孩子結點的編號

如果孩子結點為空,則在相應位置給出“-”

如下圖所示,有多種表示的方式,我們列出以下兩種:

python樹的同構學習筆記

python樹的同構學習筆記

二、求解思路

搜到一篇也是講這個的,但是那篇并沒有完全用到單向鏈表的方法,所以研究了一下,寫了一個是完全用單向鏈表的方法:

其實應該有更優雅的刪除整個單向列表的方法,比如頭設為none,可能會改進下?

# python語言實現

L1 = list(map(int, input().split()))
L2 = list(map(int, input().split()))


# 節點
class Node:
  def __init__(self, coef, exp):
    self.coef = coef
    self.exp = exp
    self.next = None


# 單鏈表
class List:
  def __init__(self, node=None):
    self.__head = node

  # 為了訪問私有類
  def gethead(self):
    return self.__head

  def travel(self):
    cur1 = self.__head
    cur2 = self.__head
    if cur1.next != None:
      cur1 = cur1.next
    else:
      print(cur2.coef, cur2.exp, end="")
      return
    while cur1.next != None:
      print(cur2.coef, cur2.exp, end=" ")
      cur1 = cur1.next
      cur2 = cur2.next

    print(cur2.coef, cur2.exp, end=" ")
    cur2 = cur2.next
    print(cur2.coef, cur2.exp, end="")

  # add item in the tail
  def append(self, coef, exp):
    node = Node(coef, exp)
    if self.__head == None:
      self.__head = node
    else:
      cur = self.__head
      while cur.next != None:
        cur = cur.next
      cur.next = node


def addl(l1, l2):
  p1 = l1.gethead()
  p2 = l2.gethead()
  l3 = List()
  while (p1 is not None) & (p2 is not None):
    if (p1.exp > p2.exp):
      l3.append(p1.coef, p1.exp)
      p1 = p1.next
    elif (p1.exp < p2.exp):
      l3.append(p2.coef, p2.exp)
      p2 = p2.next
    else:
      if (p1.coef + p2.coef == 0):
        p1 = p1.next
        p2 = p2.next
      else:
        l3.append(p2.coef + p1.coef, p1.exp)
        p2 = p2.next
        p1 = p1.next
  while p1 is not None:
    l3.append(p1.coef, p1.exp)
    p1 = p1.next
  while p2 is not None:
    l3.append(p2.coef, p2.exp)
    p2 = p2.next
  if l3.gethead() == None:
    l3.append(0, 0)
  return l3


def mull(l1, l2):
  p1 = l1.gethead()
  p2 = l2.gethead()
  l3 = List()
  l4 = List()
  if (p1 is not None) & (p2 is not None):
    while p1 is not None:
      while p2 is not None:
        l4.append(p1.coef * p2.coef, p1.exp + p2.exp)
        p2 = p2.next
      l3 = addl(l3, l4)
      l4 = List()
      p2 = l2.gethead()
      p1 = p1.next
  else:
    l3.append(0, 0)
  return l3


def L2l(L):
  l = List()
  L.pop(0)
  for i in range(0, len(L), 2):
    l.append(L[i], L[i + 1])
  return l


l1 = L2l(L1)
l2 = L2l(L2)
l3 = List()
l3 = mull(l1, l2)
l3.travel()
print("")
l3 = List()
l3 = addl(l1, l2)
l3.travel()

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


分享文章:python樹的同構學習筆記-創新互聯
文章起源:http://www.xueling.net.cn/article/djehjs.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产精品xxx在线观看 | 日本激情动作片免费看 | 欧美精欧美乱码一二三四区 | 欧美国产麻豆 | 亚洲精品一二 | 中文字幕一区二区三区精华液 | 免费乱理伦片在线观看2017 | 丝袜亚洲另类欧美变态 | 女性裸体啪啪无遮挡免费网站 | 伊人久久大香线蕉综合色狠狠 | 久久五十路丰满熟女中出 | 视频一区视频二区中文精品 | 日本不卡二区 | 国产男女视频网站 | 亚洲逼逼| 国产97成人亚洲综合在线 | 韩国女主播一区二区三区 | 成人乱码 | 丰满多毛少妇做爰视频爽爽和R | 97狠狠 | 少妇做爰免费视频网站裸体艺术 | 手机永久无码国产AV毛片 | 狠狠色丁香婷婷 | 亚洲免费av一区二区三区 | 国产日韩欧美三区 | 国产成人馆 | 91看片资源| 毛片成人 | 精品一区精品二区 | 色老头xxxxx免费视频 | 欧美亚洲国语精品一区二区 | www.一区二区三区.com | 野花社区www在线视频 | 欧美激情国产精品视频一区二区 | 日本视频中文字幕 | 免费人妻无码不卡中文字幕系 | 在线免费看黄av | 国产乱对白刺激视频户外 | 中文字幕最新 | 久久国产区 | av国产精品毛片一区二区小说 |