저는 R에 제약이되는 간단한 문제가 있습니다. 실제로 터미널 말단에만 관련 값이있는 이진 트리가 있습니다. 장난감 예제가 표시됩니다. here.
본질적으로 잎 사이에서 최대 깊이의 작업을 수행합니다 (깊이가 같은 순서는 중요하지 않음). 나는 그것을 여기에 추가했다. 그러나 실제로, 그들은 더 복잡한 공식에 꽂혀있다.
내 코드는 R로 제한됩니다. 이 구조는 내가 다른 수단을 통해 그것을 얻을 수 있지만,이 명령으로 표현 될 수있다 : 내가 가장 깊은 수준이 얼마나 깊은 결정하는 작업 기능이R 중첩 된리스트를 간단한 이진 트리로 사용하기
testBranch<-list(list(list(list(20,15),40),list(10,30)),5) #Depth of 4
하지만, R에서 중첩 된 목록을 불허한다. 어떤 단서를 효율적으로 찾을 수 인덱스 가장 깊은 값을 액세스하려면? 내가 원하는 걸 줄 것
testBranch[[1]][[1]][[1]]
위의 장난감 예 예, 들어, 목록 2 개 요소를 포함. 내 또한 예제를 사용하여, 나는 다음이 작업을 수행 할 수 있습니다 :
testBranchStep1<-list(list(list(35,40),list(10,30)),5)
내가 :
indexesOI<-getIndexes(testBranch) testBranch[indexesOI]<-testBranch[indexesOI][1]+testBranch[indexesOI][2] #testBranch now has depth of 3
도움이된다면 도움이 될 것입니다. 급하게 만든 ASCII 나무를 용서하십시오. 나는 주로 독학으로 많은 질문을하지 않았으므로, 서식을 조정해야 할 필요가 있으면 알려 주시기 바랍니다! 감사!
:
는 다음과 같이 표시. 그 이후로 더 많은 것을 가지고 놀았지만, 나는 여전히 내 질문에 언급 된 바와 같이 그 깊이에서 잎에 경로/인덱스를 얻는 방법을 찾지 못했습니다.> _Any 단서 가장 깊은 값에 접근하기 위해 인덱스 세트를 효율적으로 찾는 방법 ? _ 모든 분기를 수동으로 반복하지 않고 data.tree 구조를 활용하는 방법을 알고 있습니까? 제 질문의 핵심은 가장 깊은 나뭇잎의 위치를 찾는 것과 관련이 있습니다. 지금까지 도와 주셔서 대단히 감사합니다! –
완벽합니다. 정말 고맙습니다. 어떤 시점에서 네이티브 목록을 사용하는 현명한 방법을 찾아 내고 싶지만, 이것은 내 목적에 잘 맞습니다! 방법을 파악하자마자 답변으로 표시 할 것입니다. –