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

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

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

Jun 11, 2018 pm 11:42 PM
遞歸

?兩個不用遞歸的樹形數(shù)組構(gòu)造函數(shù)

/**
 * 創(chuàng)建父節(jié)點樹形數(shù)組
 * 參數(shù)
 * $ar 數(shù)組,鄰接列表方式組織的數(shù)據(jù)
 * $id 數(shù)組中作為主鍵的下標或關聯(lián)鍵名
 * $pid 數(shù)組中作為父鍵的下標或關聯(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ù)組中作為主鍵的下標或關聯(lián)鍵名
 * $pid 數(shù)組中作為父鍵的下標或關聯(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');


本文展示了兩個不用遞歸的樹形數(shù)組構(gòu)造函數(shù) 相關代碼,更多相關內(nèi)容請關注php中文網(wǎng)。

相關推薦:


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

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應用程序,用于創(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++ 函數(shù)的遞歸實現(xiàn):遞歸深度有限制嗎? C++ 函數(shù)的遞歸實現(xiàn):遞歸深度有限制嗎? Apr 23, 2024 am 09:30 AM

C++函數(shù)的遞歸深度受到限制,超過該限制會導致棧溢出錯誤。限制值因系統(tǒng)和編譯器而異,通常在1000到10000之間。解決方法包括:1.尾遞歸優(yōu)化;2.尾調(diào)用;3.迭代實現(xiàn)。

遞歸程序在C++中找到數(shù)組的最小和最大元素 遞歸程序在C++中找到數(shù)組的最小和最大元素 Aug 31, 2023 pm 07:37 PM

我們以整數(shù)數(shù)組Arr[]作為輸入。目標是使用遞歸方法在數(shù)組中找到最大和最小的元素。由于我們使用遞歸,我們將遍歷整個數(shù)組,直到達到長度=1,然后返回A[0],這形成了基本情況。否則,將當前元素與當前最小或最大值進行比較,并通過遞歸更新其值以供后續(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表達式可以遞歸調(diào)用自身。

在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ù)是在其定義中調(diào)用自身的函數(shù)。如果str1是"Iknowthatyouknowthatiknow",str2是"know"出現(xiàn)次數(shù)為-3讓我們通過示例來理解。例如輸入str1="TPisTPareTPamTP",str2="TP";輸出Countofoccurrencesofasubstringrecursi

C++ 函數(shù)的遞歸實現(xiàn):遞歸與非遞歸算法的比較分析? C++ 函數(shù)的遞歸實現(xiàn):遞歸與非遞歸算法的比較分析? Apr 22, 2024 pm 03:18 PM

遞歸算法通過函數(shù)自調(diào)用解決結(jié)構(gòu)化的問題,優(yōu)點是簡潔易懂,缺點是效率較低且可能發(fā)生堆棧溢出;非遞歸算法通過顯式管理堆棧數(shù)據(jù)結(jié)構(gòu)避免遞歸,優(yōu)點是效率更高且避免堆棧溢出,缺點是代碼可能更復雜。選擇遞歸或非遞歸取決于問題和實現(xiàn)的具體限制。

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

如何使用Vue表單處理實現(xiàn)表單的遞歸嵌套引言:隨著前端數(shù)據(jù)處理和表單處理的復雜性不斷增加,我們需要通過一種靈活的方式來處理復雜的表單。Vue作為一種流行的JavaScript框架,為我們提供了許多強大的工具和特性來處理表單的遞歸嵌套。本文將向大家介紹如何使用Vue來處理這種復雜的表單,并附上代碼示例。一、表單的遞歸嵌套在某些場景下,我們可能需要處理遞歸嵌套的

C++ 遞歸進階:理解尾遞歸優(yōu)化及其應用 C++ 遞歸進階:理解尾遞歸優(yōu)化及其應用 Apr 30, 2024 am 10:45 AM

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

C++ 函數(shù)遞歸詳解:遞歸在字符串處理中的應用 C++ 函數(shù)遞歸詳解:遞歸在字符串處理中的應用 Apr 30, 2024 am 10:30 AM

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

See all articles