當前位置:首頁 » 編程語言 » python非遞歸遍歷

python非遞歸遍歷

發布時間: 2022-06-04 10:29:27

① 關於python中一個遞歸二叉樹遍歷的問題

你在出錯的地方前面加個print,把這兩個值都print出來不就知道錯在哪個了?

② python非遞歸建立二叉樹

http://code.activestate.com/recipes/286239-binary-ordered-tree/

看看他寫的吧

③ 用Python輸出斐波那契數列的前20項,要用遞歸和非遞歸兩種方法

非遞歸:
int first = 1
print(first) # 第一項
int second = 1
print(second) # 第二項
int count = 2
while count < 20:
item = first + second
print(item)
first = second
second = item
count += 1
遞歸:
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
def main():
for i in range(1, 21):
print(fibonacci(i))
main()

④ python 字元串匹配,非遞歸,不知道怎麼輸出(也就是不知道怎麼驗證code是否正確)

直接使用string的index方法
import string
target1 = 'atgacatgcacaagtatgcat'
key11 = 'atg'

def countSubStringMatch():
try:
target1.index(key11)
except ValueError:
return False
return True

if __name__ == '__main__':
print countSubStringMatch()

#看countSubStringMatch輸出的啥,是True就是包含子字元串了,Flase就是不包含
#驗證代碼的話,就是保存成 XXX.py文件,然後在cmd裡面運行這個文件,前提是你的python命令在PATH環境變數中,或者你把文件放到python安裝目錄的bin目錄下面,用cmd進到bin目錄,執行py文件

⑤ python怎麼用遞歸遍歷多層目錄樹

#coding=utf-8
search_id = '69d0'
search_list = [{'id':'0337', 'name':'de', 'parent_id':'None'},
{'id':'2ddf', 'name':'se', 'parent_id':'None'},
{'id':'3010', 'name':'12', 'parent_id':'69d0'},
{'id':'3119', 'name':'121', 'parent_id':'3010'},
{'id':'3229', 'name':'1211', 'parent_id':'3119'},
{'id':'3d37', 'name':'14', 'parent_id':'69d0'},
{'id':'58c8', 'name':'11', 'parent_id':'69d0'},
{'id':'63b9', 'name':'a','parent_id':'None'},
{'id':'954c', 'name':'n', 'parent_id':'63b9'},
{'id':'69d0', 'name':'1', 'parent_id':'954c'},
{'id':'d2f9', 'name':'13', 'parent_id':'69d0'},
{'id':'defb', 'name':'test', 'parent_id':'None'}]
search_ids = []
#例如如果search_id = '69d0' search_ids=[3010,3d37,58c8,d2f9,3119,3229]

def search_pid(pid,id_list,id_results):
for id in id_list:
if id['id'] not in id_results:
if id['parent_id'] in pid:
id_results.append(id['id'])
pid.append(id['id'])
search_pid(pid,id_list,id_results)

search_pid([search_id],search_list,search_ids)
print search_ids

⑥ python漢諾塔非遞歸

python漢諾塔非遞歸,運用list和function知識的解答

無論stack還是recursion都是從漢諾塔的原理去解決問題,但如果已經想清楚漢諾塔的原理,其實只用把答案print出來就行了

先找規律:

一層:A-->C


兩層:A-->B

-------

A-->C

-------

B-->C


三層:A-->C

A-->B

C-->B

-------

A-->C

-------

B-->A

B-->C

A-->C


注意到n層漢諾塔有(2**n) - 1 個步驟,而中間的一步(兩個分割線之間)都是「A-->C」,中間的這一步將這一層漢諾塔的解分為上下兩個部分

仔細觀察,上面一部分是將上一層的解中所有的B,C交換,下面一部分是將上一層的解中所有的A,B交換

例如第二層是:

A-->B

A-->C

B-->C

第三層上部分就將第二層的解的C換成B,B換成C,即得出:

A-->C

A-->B

C-->B

第三層下部分就將第二層的解的A換成B,B換成A,即得出:

B-->A

A-->C

C-->B

這個規律同樣適用於第一層,和以後的所有層

然後就好辦了,代碼如圖:

代碼

其中convertAB,convertBC就是AB交換,BC交換的函數,這兩個函數可以自己定義,用中間變數即可

熱點內容
視易鋒雲系統如何架設輔助伺服器 發布:2025-02-09 06:47:08 瀏覽:768
mysql備份腳本shell 發布:2025-02-09 06:46:33 瀏覽:14
騰訊雲伺服器怎樣調整解析度 發布:2025-02-09 06:46:30 瀏覽:368
php上一個頁面 發布:2025-02-09 06:41:25 瀏覽:488
改裝配置後不想重啟怎麼辦 發布:2025-02-09 06:36:40 瀏覽:445
演算法復雜度定義 發布:2025-02-09 06:30:46 瀏覽:585
昵圖源碼介面 發布:2025-02-09 06:30:37 瀏覽:724
微信怎麼沒有支付密碼 發布:2025-02-09 06:29:52 瀏覽:33
mplayer編譯版 發布:2025-02-09 06:29:13 瀏覽:762
免費網盤源碼 發布:2025-02-09 06:29:07 瀏覽:5