成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

計算樹結(jié)點路徑的一種Javascript的實現(xiàn)

iOS122 / 1118人閱讀

摘要:樹結(jié)構(gòu)如下南京理工大學(xué)化工學(xué)院有機化學(xué)無機化學(xué)無機組無機組計算機學(xué)院硬件學(xué)院軟件學(xué)院學(xué)院學(xué)院主要算法如下運行結(jié)果感謝大家閱讀,另外,在這邊幫朋友推一個愛心眾籌,希望大家能夠奉獻點愛心,朋友母親,身患直腸癌,目前在北京武警總醫(yī)院接收治療,可留

樹結(jié)構(gòu)如下:

const tree = [
  {
    id: "00",
    name: "南京理工大學(xué)",
    children: [
      {
        id: "0001",
        name: "化工學(xué)院",
        children: [
          {
            id: "000101",
            name: "有機化學(xué)",
          },
          {
            id: "000102",
            name: "無機化學(xué)",
            children: [
              {
                id: "00010201",
                name: "無機1組",
              },
              {
                id: "00010202",
                name: "無機2組",
              }
            ]
          }
        ]
      },
      {
        id: "0002",
        name: "計算機學(xué)院",
        children: [
          {
            id: "000201",
            name: "硬件學(xué)院",
          },
          {
            id: "000202",
            name: "軟件學(xué)院",
            children: [
              {
                id: "00020201",
                name: "Java學(xué)院"
              },
              {
                id: "00020202",
                name: "C#學(xué)院"
              }
            ]
          }
        ]
      }
    ]
  }
];

主要算法如下:

function makePath(tree, target) {

  var done = false, path = [];

  function traverse(tree, target) {
    
    for (let i = 0; i < tree.length; i++) {
      const node = tree[i];
      if (!done) {
        if (i > 0) {
          path.pop();
        }
        path.push(node.id);
        if (node.id === target) {
          done = true;
          return;
        } else {
          let children = node.children;
          if (children) {
            traverse(children, target);
          }
        }
      }
    }

    if (!done) {
      path.pop();
    }

    return;
  };

  traverse(tree, target);

  return path;
};
makePath(tree, "000101");

運行結(jié)果:

[ "00", "0001", "000101" ]

感謝大家閱讀,另外,在這邊幫朋友推一個愛心眾籌,希望大家能夠奉獻點愛心,朋友母親,身患直腸癌,目前在北京武警總醫(yī)院接收治療,可留言留下您的聯(lián)系方式,日后感激大家!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108388.html

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)與算法:二叉算法

    摘要:因此,根據(jù)題目給出的先序遍歷和中序遍歷,可以畫出二叉樹選參考數(shù)據(jù)結(jié)構(gòu)與算法描述實現(xiàn)二叉樹算法淺談數(shù)據(jù)結(jié)構(gòu)二叉樹慕課網(wǎng)實現(xiàn)二叉樹算法前端樹控件騰訊軟件開發(fā)面試題 內(nèi)容銜接上一章 數(shù)據(jù)結(jié)構(gòu)與算法:常見排序算法 內(nèi)容提要 什么是樹   - 為什么使用樹 二叉樹 二叉查找樹 紅黑樹 B、B+樹 堆 伸展樹 樹 可以點擊鏈接感受下筆者用d3.js畫的tree https://codepen...

    Little_XM 評論0 收藏0
  • 學(xué)習(xí)javascript數(shù)據(jù)結(jié)構(gòu)(四)——

    摘要:原文博客地址學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)四樹知乎專欄簡書專題前端進擊者知乎前端進擊者簡書博主博客地址的個人博客人之所能,不能兼?zhèn)?,棄其所短,取其所長。通常子樹被稱作左子樹和右子樹。敬請期待數(shù)據(jù)結(jié)構(gòu)篇最后一篇文章學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)五圖參考文章樹數(shù)據(jù)結(jié)構(gòu)二叉樹 前言 總括: 本文講解了數(shù)據(jù)結(jié)構(gòu)中的[樹]的概念,盡可能通俗易懂的解釋樹這種數(shù)據(jù)結(jié)構(gòu)的概念,使用javascript實現(xiàn)了樹,如有紕漏,歡迎批評指正。 ...

    Dean 評論0 收藏0
  • 「中高級前端」窺探數(shù)據(jù)結(jié)構(gòu)世界- ES6版

    摘要:單鏈表與雙向鏈表單鏈表是表示一系列節(jié)點的數(shù)據(jù)結(jié)構(gòu),其中每個節(jié)點指向列表中的下一個節(jié)點。且分別稱為該結(jié)點的左子樹與右子樹。由于二叉樹是非線性結(jié)構(gòu),因此,樹的遍歷實質(zhì)上是將二叉樹的各個結(jié)點轉(zhuǎn)換成為一個線性序列來表示。1. 什么是數(shù)據(jù)結(jié)構(gòu)? 數(shù)據(jù)結(jié)構(gòu)是在計算機中組織和存儲數(shù)據(jù)的一種特殊方式,使得數(shù)據(jù)可以高效地被訪問和修改。更確切地說,數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)值的集合,表示數(shù)據(jù)之間的關(guān)系,也包括了作用在數(shù)據(jù)上...

    Lucky_Boy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<