日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

打印折痕方向(二叉树应用)

發布時間:2025/3/21 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打印折痕方向(二叉树应用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

請把一段紙條豎著放在桌子上,然后從紙條的下邊向上方對折1次,壓出折痕后展開。此時折痕是凹下去的,即折痕突起的方向指向紙條的背面。如果從紙條的下邊向上方連續對折2次,壓出折痕后展開,此時有三條折痕,從上到下依次是下折痕、下折痕和上折痕。給定一個輸入參數N,代表紙條都從下邊向上方連續對折N次,請從上到下打印所有折痕的方向。

例:
N=1時,打印:down
N=2時,打印:down down up

這道題可以先拿個紙條折一下試試(略),會發現其中的規律:
第一次折 折痕記為1凹
第二次折 折痕記為2凹,2凸
第三次折。。。。。
折完之后可以發現,每折一次,前一次的折痕上面一定會多一條凹痕,下面會多一條凸痕,由此折痕不斷增多,若想打印折痕方向,則我們可以將這個紙條橫過來,會發現這個紙條折痕的打印順序和二叉樹的中序遍歷順序是一樣的,由此我們可以借用二叉樹中序遍歷的思想,來將所有折痕方向打印出來;

代碼如下:

#include<iostream> #include<cstring> using namespace std;void printAllflods(int N); void printprocess(int i,int N,bool TF);int main() {int N=3;printAllflods(N);return 0; } void printAllflods(int N) {printprocess(1,N,true); } void printprocess(int i,int N,bool TF) {if(i>N)return ;printprocess(i+1,N,true);//先打印上面的凹痕(即左子樹) string s=TF?"down":"up";cout<<s<<" ";//再打印中間的痕跡(即中間節點),TF為true則為凹痕down,為false則是凸痕up printprocess(i+1,N,false); //最后打印下面的凸痕 (即右子樹) }

總結

以上是生活随笔為你收集整理的打印折痕方向(二叉树应用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。