設(shè)高度為h的二叉樹上只有度為0和度為2的結(jié)點(diǎn),則此類二叉樹中所包含的結(jié)點(diǎn)數(shù)至少為(2h-1 )。已知一個(gè)帶有表頭結(jié)點(diǎn)的單鏈表,結(jié)點(diǎn)結(jié)構(gòu)為(data, link)。假設(shè)該鏈表只給出了頭指針list。在不改變鏈表的前提下,請(qǐng)?jiān)O(shè)計(jì)一個(gè)盡可能高效的算法,查找出鏈表中倒數(shù)第k(k為正整數(shù))個(gè)位置上的結(jié)點(diǎn)。若查找成功,算法輸出該結(jié)點(diǎn)的data域的值,并返回1;否則,只返回0。要求:
(1) 描述算法的基本設(shè)計(jì)思想;
(2) 用算法描述語言描述算法;
(3) 給出算法的時(shí)間復(fù)雜性分析。
算法的基本思想如下:
試給出二叉樹的自下而上、自右而左的層次遍歷算法。
1) 給出算法的基本設(shè)計(jì)思想;
2) 用算法描述語言描述算法,并要求對(duì)算法中的關(guān)鍵步驟給出注釋。
1)借助棧,最后彈出棧中元素實(shí)現(xiàn)對(duì)二叉樹按自下至上,自右至左的層次遍歷。