給定陣列按要求生成樹
假設給你一個非負整數且不重複的序列 如{1,2,3,4}生成的樹
根節點自己設定 值為-1 那麼它有4個子結點 分別為1 2 3 4
我們將4個結點稱為父序列
在每個結點中都要生成 父序列中不包含父結點 的子結點 如果父序列除去父結點外沒有元素 就不生成
例如 結點1生成的子結點為2 3 4
每個子結點都要繼續產生子結點 直到無法生產。
#include <iostream>
#include <string>
using namespace std;
std::string foo( const int buf[], size_t bufsize, const std::string& prefix="" )
{
if( bufsize == 0 )
return {};
std::string result = std::to_string(buf[0]) + '\n';
for( size_t i=1; i!=bufsize; ++i )
result += prefix + (i+1!=bufsize?"├─":"└─") + foo( buf+i, bufsize-i, prefix+"│ " );
return result;
}
int main( void )
{
int a[] = { -1, 1, 2, 3, 4 };
cout << foo(a,std::size(a)) << endl;
int b[] = { -1, 1, 0 };
cout << foo(b,std::size(b)) << endl;
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70007056/viewspace-2793836/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LeetCode題解(0330):按要求補齊陣列(Python)LeetCode陣列Python
- 給定一個按非遞減順序排序的整數陣列 A,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。排序陣列
- 陣列中查詢給定值陣列
- Leetcode 陣列中和為給定值的最長子陣列LeetCode陣列
- python實現給定一個數和陣列,求陣列中兩數之和為給定的數Python陣列
- onethink支援給session設定陣列值嗎?Session陣列
- 樹狀陣列陣列
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 給定陣列中找到最大的兩個數陣列
- 【leetcode】34. Search for a Range 給定陣列的給定值的下標範圍LeetCode陣列
- 解析樹狀陣列陣列
- laravel 按照whereIn中給定陣列順序輸出Laravel陣列
- JS陣列學習之判斷陣列元素是不是都滿足給定條件JS陣列
- 二維樹狀陣列陣列
- 樹狀陣列詳解陣列
- 樹狀陣列基礎陣列
- 【.NET 與樹莓派】矩陣按鍵樹莓派矩陣
- PHP 實現按奇偶排序陣列PHP排序陣列
- js 漢字陣列按拼音排序JS陣列排序
- 【LeetCode】905.按奇偶排序陣列LeetCode排序陣列
- 1.找出元素 item 在給定陣列 arr 中的位置陣列
- 樹狀陣列模板題 & (樹狀陣列 1:單點修改,區間查詢)陣列
- 樹狀陣列快速入門陣列
- 樹狀陣列和逆序對陣列
- 【筆記/模板】樹狀陣列筆記陣列
- JavaScript split() 分割字串生成陣列JavaScript字串陣列
- 寫一個函式找出給定陣列中的最大差值函式陣列
- 922. 按奇偶排序陣列 II (java)排序陣列Java
- HDU 1556 Color the ball(線段樹|樹狀陣列)陣列
- 面試最常問的陣列轉樹,樹轉陣列 c++ web框架paozhu實現面試陣列C++Web框架
- POJ-2352 Stars(樹狀陣列)陣列
- 樹狀陣列模板+習題集陣列
- 樹狀陣列(我是真小白)陣列
- 雙陣列字典樹(Double Array Trie)陣列
- 資料結構——樹狀陣列資料結構陣列
- 樹狀陣列3種基本操作陣列
- 給定一個排序陣列和一個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。排序陣列索引
- js練習(一)找出元素item在給定陣列arr中的位置JS陣列