編寫對二叉樹進行中序遍歷的非遞歸算法,并對算法執(zhí)行如圖所示的二叉樹的情況進行跟蹤(即給出各階段棧的變化及輸出的結點序列)。 棧已經(jīng)定義:InitStack(S)(初始化)、Empty(S)(判棧空)、Push(S,p)(入棧)、Pop(S,p)(出棧)等操作。
己知中序線索二叉樹采用二叉鏈表存儲結構,鏈結點的構造為: 其中若ltag為0,則lchild指向結點的前驅,否則lchild指向左孩子結點;若rtag為0,則rchild指向結點的后繼,否則rchild指向右孩子結點。下面的算法返回x所指結點的直接后繼結點的位置。若該算法有錯,則請改正錯誤;若無錯,請寫“正確”二字。