나는 계층 이렇게되면 데이터가 있습니다재귀가 있거나없는 비 이진 트리를 작성하는 방법은 무엇입니까?
+----------------------+-------+
| name | depth |
+----------------------+-------+
| ELECTRONICS | 0 |
| TELEVISIONS | 1 |
| TUBE | 2 |
| LCD | 2 |
| PLASMA | 2 |
| PORTABLE ELECTRONICS | 1 |
| MP3 PLAYERS | 2 |
| FLASH | 3 |
| CD PLAYERS | 2 |
| 2 WAY RADIOS | 2 |
+----------------------+-------+
튜브, LCD 및 플라즈마 텔레비전 자녀입니다. FLASH는 MP3 PLAYERS의 자녀입니다. MP3 플레이어, CD 플레이어 및 2 가지 라디오는 휴대용 전자 제품의 어린이입니다. 너는 훈련을 받는다.
이제 구조체 Node에는 해당 ID와 그 하위 노드가 포함되어 있습니다. 이처럼 :
struct Node
{
int id;
list<Node*> children;
}
각 항목은 행 번호 인 ID로 식별 (전자 = 0, 텔레비전의 = 1 등), 그래서 그것의 아이들 누군지 알아 쉽게 찾을 수 있습니다 마디.
이것은 내가 작성하려고하는 나무입니다. 이 트리는 바이너리가 아닙니다. 재귀 적용은 쉬운 생각처럼 보이지 않습니다. 틀 렸으면 고쳐줘.
어떻게하면됩니까? 도움!
재귀를 사용하면 둘 이상의 경로를 탐색하는 것이 더 쉬워집니다. 따라서 2 개 이상의 분기를 사용하면 재귀를 쉽게 선택할 수 있습니다. 대체 접근법 (반복)은 수동으로 진행 상황을 추적해야합니다 (예 : 스택이 재귀 버전에서 수행중인 작업 수행). 그러나이 상황에서 재귀는 필요하지 않습니다. –