折纸的折痕(RVL中序遍历)
生活随笔
收集整理的這篇文章主要介紹了
折纸的折痕(RVL中序遍历)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這個題我見到過不止一次。筆試面試。
你拿個紙折一折會發(fā)現(xiàn)是這樣的:
這棵樹左子樹是紙的下半部分,右子樹是紙的上半部分。
下折痕指的是折痕突起的方向是紙的背面。
可以看出折痕是一棵滿二叉樹,根節(jié)點是下折痕,每一棵子樹的左孩子是上折痕,每一棵子樹的右孩子是下折痕。
從紙的上面到下面打印就是二叉樹的RVL(右根左)的遍歷。
對折N次就是指N層節(jié)點。
/*** 請把紙條豎著放在桌?上,然后從紙條的下邊向上?對折,壓出折痕后再展開。* 此時有1條折痕,突起的?向指向紙條的背?,這條折痕叫做“下”折痕 ;* 突起的?向指向紙條正?的折痕叫做“上”折痕。如果每次都從下邊向上? 對折,* 對折N次。請從上到下計算出所有折痕的?向。* 給定折的次數(shù)n,請返回從上到下的折痕的數(shù)組,若為下折痕則對應(yīng)元素為"down",* 若為上折痕則為"up".* <p>* 從紙的上面到下面打印就是二叉樹的RVL(右根左)的遍歷。** @param n* @return*/ public static String[] foldPaper(int n) {List<String> result = new ArrayList<>();fold(1, n, "down", result);return result.toArray(new String[result.size()]); }private static void fold(int level, int n, String type, List<String> result) {if (level <= n) {//Rfold(level + 1, n, "down", result);//Vresult.add(type);//Lfold(level + 1, n, "up", result);} }?
總結(jié)
以上是生活随笔為你收集整理的折纸的折痕(RVL中序遍历)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 链表最终总结【数据结构】
- 下一篇: 栈结构功能实现的伪码展示【数据结构F】