国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 後端開發(fā) php教程 兩個不用遞歸的樹狀數(shù)組建構(gòu)函數(shù)

兩個不用遞歸的樹狀數(shù)組建構(gòu)函數(shù)

Jun 11, 2018 pm 11:42 PM
遞迴

?兩個不用遞歸的樹形陣列建構(gòu)子

/**
 * 創(chuàng)建父節(jié)點樹形數(shù)組
 * 參數(shù)
 * $ar 數(shù)組,鄰接列表方式組織的數(shù)據(jù)
 * $id 數(shù)組中作為主鍵的下標或關(guān)聯(lián)鍵名
 * $pid 數(shù)組中作為父鍵的下標或關(guān)聯(lián)鍵名
 * 返回 多維數(shù)組
 **/
function find_parent($ar, $id='id', $pid='pid') { 
  foreach($ar as $v) $t[$v[$id]] = $v;
  foreach ($t as $k => $item){
    if( $item[$pid] ){
      if( ! isset($t[$item[$pid]]['parent'][$item[$pid]]) )
         $t[$item[$id]]['parent'][$item[$pid]] =& $t[$item[$pid]];
    }
  } 
  return $t;
}


/**
 * 創(chuàng)建子節(jié)點樹形數(shù)組
 * 參數(shù)
 * $ar 數(shù)組,鄰接列表方式組織的數(shù)據(jù)
 * $id 數(shù)組中作為主鍵的下標或關(guān)聯(lián)鍵名
 * $pid 數(shù)組中作為父鍵的下標或關(guān)聯(lián)鍵名
 * 返回 多維數(shù)組
 **/
function find_child($ar, $id='id', $pid='pid') {
  foreach($ar as $v) $t[$v[$id]] = $v;
  foreach ($t as $k => $item){
    if( $item[$pid] ) {
      $t[$item[$pid]]['child'][$item[$id]] =& $t[$k];
    }
  }
  return $t;
}

範例

$data = array(
  array('ID'=>1, 'PARENT'=>0, 'NAME'=>'祖父'),
  array('ID'=>2, 'PARENT'=>1, 'NAME'=>'父親'),
  array('ID'=>3, 'PARENT'=>1, 'NAME'=>'叔伯'),
  array('ID'=>4, 'PARENT'=>2, 'NAME'=>'自己'),
  array('ID'=>5, 'PARENT'=>4, 'NAME'=>'兒子'),
);

$p = find_parent($data, 'ID', 'PARENT');
$c = find_child($data, 'ID', 'PARENT');


本文展示了兩個不用遞迴的樹形陣列建構(gòu)子相關(guān)程式碼,更多相關(guān)內(nèi)容請關(guān)注php中文網(wǎng)。

相關(guān)推薦:


#

以上是兩個不用遞歸的樹狀數(shù)組建構(gòu)函數(shù)的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

C++ 函式的遞歸實作:遞迴深度有限制嗎? C++ 函式的遞歸實作:遞迴深度有限制嗎? Apr 23, 2024 am 09:30 AM

C++函數(shù)的遞歸深度受到限制,超過此限制會導(dǎo)致堆疊溢位錯誤。限制值因係統(tǒng)和編譯器而異,通常在1000到10000之間。解決方法包括:1.尾遞歸最佳化;2.尾呼叫;3.迭代實作。

遞歸程式在C++中找到陣列的最小和最大元素 遞歸程式在C++中找到陣列的最小和最大元素 Aug 31, 2023 pm 07:37 PM

我們以整數(shù)數(shù)組Arr[]作為輸入。目標是使用遞歸方法在陣列中找到最大和最小的元素。由於我們使用遞歸,我們將遍歷整個數(shù)組,直到達到長度=1,然後返回A[0],這形成了基本情況。否則,將當(dāng)前元素與當(dāng)前最小或最大值進行比較,並透過遞歸更新其值以供後續(xù)元素使用。讓我們來看看這個的各種輸入輸出場景?輸入??Arr={12,67,99,76,32};輸出??數(shù)組中的最大值:99解釋?&mi

C++ lambda 表達式是否支援遞迴? C++ lambda 表達式是否支援遞迴? Apr 17, 2024 pm 09:06 PM

是的,C++Lambda表達式可以透過使用std::function支援遞歸:使用std::function捕捉Lambda表達式的參考。透過捕獲的引用,Lambda表達式可以遞歸呼叫自身。

在Java中遞歸地計算子字串出現(xiàn)的次數(shù) 在Java中遞歸地計算子字串出現(xiàn)的次數(shù) Sep 17, 2023 pm 07:49 PM

給定兩個字串str_1和str_2。目標是使用遞歸過程計算字串str1中子字串str2的出現(xiàn)次數(shù)。遞歸函數(shù)是在其定義中呼叫自身的函數(shù)。如果str1是"Iknowthatyouknowthatiknow",str2是"know"出現(xiàn)次數(shù)為-3讓我們透過範例來理解。例如輸入str1="TPisTPareTPamTP",str2="TP";輸出Countofoccurrencesofasubstringrecursi

C++ 函式的遞迴實作:遞迴與非遞迴演算法的比較分析? C++ 函式的遞迴實作:遞迴與非遞迴演算法的比較分析? Apr 22, 2024 pm 03:18 PM

遞歸演算法透過函數(shù)自呼叫解決結(jié)構(gòu)化的問題,優(yōu)點是簡潔易懂,缺點是效率較低且可能發(fā)生堆疊溢位;非遞歸演算法透過明確管理堆疊資料結(jié)構(gòu)避免遞歸,優(yōu)點是效率更高且避免堆疊溢出,缺點是程式碼可能更複雜。選擇遞歸或非遞歸取決於問題和實現(xiàn)的特定限制。

如何使用Vue表單處理實現(xiàn)表單的遞歸嵌套 如何使用Vue表單處理實現(xiàn)表單的遞歸嵌套 Aug 11, 2023 pm 04:57 PM

如何使用Vue表單處理實作表單的遞歸巢狀引言:隨著前端資料處理和表單處理的複雜性不斷增加,我們需要透過一種靈活的方式來處理複雜的表單。 Vue作為一種流行的JavaScript框架,為我們提供了許多強大的工具和特性來處理表單的遞歸巢狀。本文將向大家介紹如何使用Vue來處理這種複雜的表單,並附上程式碼範例。一、表單的遞歸巢狀在某些場景下,我們可能需要處理遞迴巢狀的

C++ 遞歸進階:瞭解尾遞歸最佳化及其應(yīng)用 C++ 遞歸進階:瞭解尾遞歸最佳化及其應(yīng)用 Apr 30, 2024 am 10:45 AM

尾遞歸最佳化(TRO)可提高特定遞歸呼叫的效率。它將尾遞歸呼叫轉(zhuǎn)換為跳轉(zhuǎn)指令,並將上下文狀態(tài)保存在暫存器中,而不是堆疊上,從而消除對堆疊的額外呼叫和返回操作,提高演算法效率。利用TRO,我們可以針對尾遞歸函數(shù)(例如階乘計算)進行最佳化,透過將tail遞歸呼叫替換為goto語句,編譯器會將goto跳轉(zhuǎn)移化為TRO,最佳化遞歸演算法的執(zhí)行。

C++ 函式遞歸詳解:遞迴在字串處理中的應(yīng)用 C++ 函式遞歸詳解:遞迴在字串處理中的應(yīng)用 Apr 30, 2024 am 10:30 AM

遞歸函數(shù)是一種在字串處理中反覆呼叫自身來解決問題的技術(shù)。它需要一個終止條件以防止無限遞歸。遞歸在字串反轉(zhuǎn)和回文檢查等操作中被廣泛使用。

See all articles