Jadual Kandungan
算法思路
算法实现步骤
Python实现堆栈中序遍历二叉树
Rumah pembangunan bahagian belakang Tutorial Python Langkah terperinci untuk melaksanakan traversal tertib tindanan bagi pokok binari menggunakan Python

Langkah terperinci untuk melaksanakan traversal tertib tindanan bagi pokok binari menggunakan Python

Jan 23, 2024 pm 09:51 PM
Konsep algoritma

使用堆栈中序遍历二叉树详细步骤 Python实现堆栈中序遍历二叉树

使用堆栈无需递归就能遍历二叉树,下面是一个使用堆栈中序遍历二叉树的算法。

算法思路

1)创建一个空栈S。

2)将当前节点初始化为root

3)将当前节点推入S并设置current=current->left直到current为NULL

4)如果current为NULL且堆栈不为空,则

a)从堆栈中弹出顶部项目。

b)输出弹出的项目,设置current=popped_item->right

c)转到步骤3)。

5)如果current为NULL并且stack为空,那么算法结束。

算法实现步骤

1

/\

2 3

/\

4 5

步骤1创建一个空堆栈:S=NULL

步骤2将current设置为root的地址:current->1

步骤3推送当前节点并设置current=current->left

直到当前为NULL

当前->1

推1:堆栈S->1

当前->2

推2:堆栈>2,1

当前->4

推4:堆栈S>4、2、1

当前=NULL

步骤4从S弹出

a)弹出4:堆栈S->2,1

b)打印“4”

c)current=NULL/*right of 4*/并转到步骤3

由于current is NULL step 3没有做任何事情。

步骤4再次弹出。

a)弹出2:堆栈S->1

b)打印“2”

c)current->;5/*right of 2*/并转到步骤3

第3步将5推入堆栈并使当前为NULL

堆栈S->5,1

当前=NULL

步骤4从S弹出

a)弹出5:堆栈S->1

b)打印“5”

c)current=NULL/*right of 5*/并转到步骤3

由于current is NULL step 3没有做任何事情

步骤4再次弹出。

a)弹出1:堆栈S->NULL

b)打印“1”

c)当前->3/*1的右边*/

第3步将3推入堆栈并使当前为NULL

堆栈S->3

当前=NULL

步骤4从S弹出

a)弹出3:堆栈S->NULL

b)打印“3”

c)current=NULL/*3的右边*/

由于堆栈S为空且当前为NULL,因此遍历已完成。

Python实现堆栈中序遍历二叉树

class Node:
def __init__(self,data):
self.data=data
self.left=None
self.right=None
def inOrder(root):
current=root
stack=[]
while True:
if current is not None:
stack.append(current)
current=current.left
elif(stack):
current=stack.pop()
print(current.data,end="")
current=current.right
else:
break
print()
root=Node(1)
root.left=Node(2)
root.right=Node(3)
root.left.left=Node(4)
root.left.right=Node(5)
inOrder(root)
Salin selepas log masuk

Atas ialah kandungan terperinci Langkah terperinci untuk melaksanakan traversal tertib tindanan bagi pokok binari menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Analisis mendalam tentang Algoritma Pengoptimuman Serigala Kelabu (GWO) serta kekuatan dan kelemahannya Analisis mendalam tentang Algoritma Pengoptimuman Serigala Kelabu (GWO) serta kekuatan dan kelemahannya Jan 19, 2024 pm 07:48 PM

Algoritma Pengoptimuman Serigala Kelabu (GWO) ialah algoritma metaheuristik berasaskan populasi yang menyerupai hierarki kepimpinan dan mekanisme memburu serigala kelabu dalam alam semula jadi. Inspirasi Algoritma Serigala Kelabu 1. Serigala kelabu dianggap sebagai pemangsa puncak dan berada di bahagian atas rantai makanan. 2. Serigala kelabu suka hidup dalam kumpulan (hidup berkumpulan), dengan purata 5-12 serigala dalam setiap pek. 3. Serigala kelabu mempunyai hierarki penguasaan sosial yang sangat ketat, seperti yang ditunjukkan di bawah: Serigala alfa: Serigala alfa menduduki kedudukan dominan dalam keseluruhan kumpulan serigala kelabu dan mempunyai hak untuk memerintah seluruh kumpulan serigala kelabu. Dalam aplikasi algoritma, Alpha Wolf adalah salah satu penyelesaian terbaik, penyelesaian optimum yang dihasilkan oleh algoritma pengoptimuman. Serigala beta: Serigala beta melaporkan kepada serigala Alpha dengan kerap dan membantu serigala Alpha membuat keputusan yang terbaik. Dalam aplikasi algoritma, Beta Wolf boleh

Terokai prinsip asas dan proses pelaksanaan algoritma pensampelan bersarang Terokai prinsip asas dan proses pelaksanaan algoritma pensampelan bersarang Jan 22, 2024 pm 09:51 PM

Algoritma persampelan bersarang ialah algoritma inferens statistik Bayesian yang cekap digunakan untuk mengira kamiran atau penjumlahan di bawah taburan kebarangkalian kompleks. Ia berfungsi dengan menguraikan ruang parameter kepada berbilang hiperkubus dengan isipadu yang sama, dan secara beransur-ansur dan berulang "menolak keluar" salah satu hiperkubus volum terkecil, dan kemudian mengisi hiperkubus dengan sampel rawak untuk menganggarkan nilai kamiran taburan kebarangkalian dengan lebih baik. Melalui lelaran berterusan, algoritma pensampelan bersarang boleh memperoleh nilai kamiran ketepatan tinggi dan sempadan ruang parameter, yang boleh digunakan untuk masalah statistik seperti perbandingan model, anggaran parameter, dan pemilihan model. Idea teras algoritma ini adalah untuk mengubah masalah penyepaduan kompleks kepada satu siri masalah penyepaduan mudah, dan mendekati nilai kamiran sebenar dengan mengurangkan jumlah ruang parameter secara beransur-ansur. Setiap langkah lelaran mengambil sampel secara rawak daripada ruang parameter

Menganalisis prinsip, model dan komposisi Algoritma Carian Sparrow (SSA) Menganalisis prinsip, model dan komposisi Algoritma Carian Sparrow (SSA) Jan 19, 2024 pm 10:27 PM

Algoritma Carian Sparrow (SSA) ialah algoritma pengoptimuman meta-heuristik berdasarkan tingkah laku anti-pemangsaan dan mencari makan burung pipit. Tingkah laku mencari makan burung pipit boleh dibahagikan kepada dua jenis utama: pengeluar dan pemulung. Pengeluar secara aktif mencari makanan, manakala pemulung bersaing untuk mendapatkan makanan daripada pengeluar. Prinsip Algoritma Pencarian Sparrow (SSA) Dalam Algoritma Pencarian Sparrow (SSA), setiap burung pipit sangat memperhatikan tingkah laku jiran-jirannya. Dengan menggunakan strategi mencari makan yang berbeza, individu dapat menggunakan tenaga tertahan dengan cekap untuk mengejar lebih banyak makanan. Selain itu, burung lebih terdedah kepada pemangsa dalam ruang carian mereka, jadi mereka perlu mencari lokasi yang lebih selamat. Burung di tengah koloni boleh meminimumkan pelbagai bahaya mereka sendiri dengan tinggal dekat dengan jiran mereka. Apabila burung mengesan pemangsa, ia membuat panggilan penggera

Penjelasan terperinci algoritma Bellman Ford dan pelaksanaan dalam Python Penjelasan terperinci algoritma Bellman Ford dan pelaksanaan dalam Python Jan 22, 2024 pm 07:39 PM

Algoritma Bellman Ford boleh mencari laluan terpendek dari nod sasaran ke nod lain dalam graf berwajaran. Ini sangat serupa dengan algoritma Dijkstra Algoritma Bellman-Ford boleh mengendalikan graf dengan pemberat negatif dan agak mudah dari segi pelaksanaan. Penjelasan terperinci tentang prinsip algoritma Bellman Ford Algoritma Bellman Ford secara lelaran mencari laluan baharu yang lebih pendek daripada laluan yang terlebih anggaran dengan membuat anggaran terlebih panjang laluan dari bucu permulaan kepada semua bucu lain. Kerana kita ingin merekodkan jarak laluan setiap nod, kita boleh menyimpannya dalam tatasusunan saiz n, di mana n juga mewakili bilangan nod. Contoh Rajah 1. Pilih nod permulaan, tetapkan ia kepada semua bucu lain tanpa terhingga, dan rekod nilai laluan. 2. Lawati setiap tepi dan lakukan operasi kelonggaran untuk mengemas kini laluan terpendek secara berterusan. 3. Kita perlukan

Pengenalan kepada algoritma Wu-Manber dan arahan pelaksanaan Python Pengenalan kepada algoritma Wu-Manber dan arahan pelaksanaan Python Jan 23, 2024 pm 07:03 PM

Algoritma Wu-Manber ialah algoritma pemadanan rentetan yang digunakan untuk mencari rentetan dengan cekap. Ia adalah algoritma hibrid yang menggabungkan kelebihan algoritma Boyer-Moore dan Knuth-Morris-Pratt untuk menyediakan padanan corak yang pantas dan tepat. Langkah algoritma Wu-Manber 1. Cipta jadual cincang yang memetakan setiap subrentetan yang mungkin bagi corak ke kedudukan corak di mana subrentetan itu berlaku. 2. Jadual cincang ini digunakan untuk mengenal pasti potensi lokasi permulaan corak dalam teks dengan cepat. 3. Lelaran melalui teks dan bandingkan setiap aksara dengan aksara yang sepadan dalam corak. 4. Jika aksara sepadan, anda boleh beralih ke aksara seterusnya dan meneruskan perbandingan. 5. Jika aksara tidak sepadan, anda boleh menggunakan jadual cincang untuk menentukan watak berpotensi seterusnya dalam corak.

Prinsip pengoptimuman berangka dan analisis Algoritma Pengoptimuman Paus (WOA) Prinsip pengoptimuman berangka dan analisis Algoritma Pengoptimuman Paus (WOA) Jan 19, 2024 pm 07:27 PM

Algoritma Pengoptimuman Paus (WOA) ialah algoritma pengoptimuman metaheuristik yang diilhamkan oleh alam semula jadi yang menyerupai tingkah laku memburu ikan paus bungkuk dan digunakan untuk pengoptimuman masalah berangka. Algoritma Pengoptimuman Paus (WOA) bermula dengan satu set penyelesaian rawak dan mengoptimumkan berdasarkan ejen carian yang dipilih secara rawak atau penyelesaian terbaik setakat ini melalui kemas kini kedudukan ejen carian dalam setiap lelaran. Inspirasi Algoritma Pengoptimuman Paus Algoritma Pengoptimuman Paus diinspirasikan oleh tingkah laku memburu ikan paus bungkuk. Paus bungkuk lebih suka makanan yang terdapat berhampiran permukaan, seperti krill dan kumpulan ikan. Oleh itu, paus bungkuk mengumpulkan makanan bersama-sama untuk membentuk rangkaian gelembung dengan meniup buih dalam lingkaran bawah ke atas semasa memburu. Dalam gerakan "lingkaran ke atas", ikan paus bungkuk menyelam kira-kira 12m, kemudian mula membentuk gelembung lingkaran di sekeliling mangsanya dan berenang ke atas.

Apakah peranan perolehan maklumat dalam algoritma id3? Apakah peranan perolehan maklumat dalam algoritma id3? Jan 23, 2024 pm 11:27 PM

Algoritma ID3 adalah salah satu algoritma asas dalam pembelajaran pokok keputusan. Ia memilih titik perpecahan terbaik dengan mengira keuntungan maklumat setiap ciri untuk menjana pepohon keputusan. Keuntungan maklumat ialah konsep penting dalam algoritma ID3, yang digunakan untuk mengukur sumbangan ciri kepada tugas pengelasan. Artikel ini akan memperkenalkan secara terperinci konsep, kaedah pengiraan dan aplikasi perolehan maklumat dalam algoritma ID3. 1. Konsep entropi maklumat Entropi maklumat ialah konsep dalam teori maklumat, yang mengukur ketidakpastian pembolehubah rawak. Untuk nombor pembolehubah rawak diskret, dan p(x_i) mewakili kebarangkalian bahawa pembolehubah rawak X mengambil nilai x_i. surat

Algoritma Ciri Invarian Skala (SIFT). Algoritma Ciri Invarian Skala (SIFT). Jan 22, 2024 pm 05:09 PM

Algoritma Scale Invariant Feature Transform (SIFT) ialah algoritma pengekstrakan ciri yang digunakan dalam bidang pemprosesan imej dan penglihatan komputer. Algoritma ini telah dicadangkan pada tahun 1999 untuk meningkatkan pengecaman objek dan prestasi pemadanan dalam sistem penglihatan komputer. Algoritma SIFT adalah teguh dan tepat dan digunakan secara meluas dalam pengecaman imej, pembinaan semula tiga dimensi, pengesanan sasaran, penjejakan video dan medan lain. Ia mencapai invarian skala dengan mengesan titik utama dalam ruang skala berbilang dan mengekstrak deskriptor ciri tempatan di sekitar titik utama. Langkah-langkah utama algoritma SIFT termasuk pembinaan ruang skala, pengesanan titik utama, kedudukan titik utama, penetapan arah dan penjanaan deskriptor ciri. Melalui langkah-langkah ini, algoritma SIFT boleh mengekstrak ciri yang teguh dan unik, dengan itu mencapai pemprosesan imej yang cekap.

See all articles