第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在圖中找到元素?

如何在圖中找到元素?

大話西游666 2022-06-05 16:11:24
我有以下實體:形式堵塞排細胞場地根元素是Form。里面From是放置的Block。Block包含一些Rows,每個都Row可以包含一些Cell內(nèi)部具有不同內(nèi)容的內(nèi)容:Field或者Block,Block它又是嵌套結(jié)構(gòu)Block -> Rows -> Cells -> Field/Block。它是從根Form到終點的有向有限圖Field或Block。只有Block和Field實體具有g(shù)etId()返回頂點 id 的方法?;诖耍覙?gòu)建了從 root 到具體 vertex 的路徑(Blcok, Field)。我試圖檢查具體的頂點實體(Block)是否按路徑呈現(xiàn)在圖形中,所以我的解決方案是:從我們開始的地方設(shè)置當前頂點(塊),設(shè)置頂點的收入路徑循環(huán)獲取當前頂點的所有行(塊)然后在第一個循環(huán)中使用循環(huán)從每行中獲取所有單元格然后從每個單元格(字段,塊)中獲取內(nèi)容檢查它是否是 Block 然后獲取它id并與傳入的路徑(id)進行比較如果不相等,則將找到的塊設(shè)置為當前塊(for循環(huán))繼續(xù),直到我找不到路徑代碼是:function getBlockFieldByPath(block: Block, path: string) {   let currentBlock = block;   let irows = 0;   let jcells = 0;   while(irows < currentblock.getRows().length) {       let cells = rows[irows].getCells();       while(jcells < cells.length) {           let content = cells[jcells].getContent(); // it is should be Block or Field,           if (content.getId() == path) {               return content;           }           if (content == Block) {              currentblock = content; // Because content is Block           }          jcells++;       }     irows++;   }   }我的錯誤在哪里?
查看完整描述

1 回答

?
九州編程

TA貢獻1785條經(jīng)驗 獲得超4個贊

通過一些抽象,您可以得到一個節(jié)點是塊的圖。


其中一些是微不足道的葉子。


您只想對圖表進行 dfs,直到找到與您的路徑字符串匹配的塊


function dfs(block, path) {

  if (block.getId() === path) return block

  let found = null

  block.getRows().find(r => r.getCells().find(bContent => {

    let b = bContent.getContent()

    found = dfs(b, path)

    return found

  }))

  return found

}


堆棧的變化


function dfs(block, path) {

  const stack = [block]

  while (stack.length) {

    const b = stack.pop()

    if (b.getId() === path) return block

    b.getRows().forEach(r => r.getCells().forEach(bContent => {

      let b = bContent.getContent()

      stack.push(b)

    })

  }

  return null

}


查看完整回答
反對 回復 2022-06-05
  • 1 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號