[search] 데이터 구조 트리와 그래프의 차이점은 무엇입니까?

학문적으로, 데이터 구조 트리와 그래프의 근본적인 차이점은 무엇입니까? 트리 기반 검색과 그래프 기반 검색은 어떻습니까?



답변

트리는 단지 제한된 형태의 그래프입니다.

나무는 방향 (부모 / 자식 관계)을 가지며주기를 포함하지 않습니다. 방향성 비순환 그래프 (또는 DAG) 범주에 적합합니다. 따라서 트리는 하위가 하나의 부모 만 가질 수있는 제한이있는 DAG입니다.

중요한 것은 Trees는 재귀 데이터 구조가 아닙니다. 위의 제한 때문에 재귀 데이터 구조로 구현할 수 없습니다. 그러나 일반적으로 재귀 적이 지 않은 DAG 구현도 사용할 수 있습니다. 내가 선호하는 트리 구현은 중앙 집중식 맵 표현이며 비재 귀적입니다.

그래프는 일반적으로 가장 먼저 넓게 또는 깊이로 먼저 검색됩니다. Tree도 마찬가지입니다.


답변

설명하는 대신 그림으로 표시하는 것을 선호합니다.

실시간으로 나무

실시간으로 나무

실제 사용 그래프

실시간 그래프

예,지도는 그래프 데이터 구조로 시각화 될 수 있습니다.

이런 모습을 보면 인생이 더 쉬워집니다. 트리는 각 노드에 부모가 하나만 있다는 것을 알고있는 장소에서 사용됩니다. 그러나 그래프에는 여러 개의 선행 작업이있을 수 있습니다 (일반적으로 부모라는 용어는 그래프에 사용되지 않음).

실제로는 그래프를 사용하여 거의 모든 것을 나타낼 수 있습니다. 예를 들어지도를 사용했습니다. 각 도시를 노드로 간주하면 여러 지점에서 도달 할 수 있습니다. 이 노드로 이어지는 포인트를 선행 작업이라고하며이 노드로 이어지는 포인트를 후속 작업이라고합니다.

전기 회로도, 주택 계획, 컴퓨터 네트워크 또는 하천 시스템은 그래프의 몇 가지 예입니다. 많은 실제 사례가 그래프로 간주 될 수 있습니다.

기술 다이어그램은 다음과 같습니다

나무 :

여기에 이미지 설명을 입력하십시오

그래프 :

여기에 이미지 설명을 입력하십시오

아래 링크를 참조하십시오. 그것들은 나무와 그래프에 관한 거의 모든 질문에 대답 할 것입니다.

참고 문헌 :

  1. http://www.introprogramming.info/english-intro-csharp-book/read-online/chapter-17-trees-and-graphs/#_Toc362296541

  2. http://www.community-of-knowledge.de/beitrag/data-trees-as-a-means-of-presenting-complex-data-analysis/

  3. 위키 백과


답변

다른 답변은 유용하지만 각 속성이 누락되었습니다.

그래프

무향 그래프, 이미지 출처 : Wikipedia

직접 그래프, 이미지 소스 : Wikipedia

  • 정점 세트 (또는 노드)와 그 일부 또는 전부를 연결하는 모서리 세트로 구성
  • 모든 모서리는 동일한 모서리에 의해 아직 연결되지 않은 두 개의 정점을 연결할 수 있습니다 (유향 그래프의 경우 동일한 방향으로)
  • 연결될 필요가 없습니다 (가장자리가 모든 정점을 서로 연결할 필요는 없음) : 단일 그래프는 연결이 끊긴 정점 세트로 구성 될 수 있습니다
  • 감독 또는 (그래프의 모든 모서리에 적용 할 것이다) 방향성이 될 수 있습니다
    당으로 위키 백과 :

    예를 들어, 정점이 파티에서 사람을 나타내고 두 사람이 악수하면 경계가있는 경우 B가 A와 악수하는 경우에만 A가 사람 B와 악수 할 수 있기 때문에이 그래프는 방향이 지정되지 않습니다. 대조적으로, 사람 A로부터 사람 B 로의 에지가 감탄 B에 대응하면, 감탄이 반드시 왕복 운동 할 필요는 없기 때문에이 그래프가 지시된다.

나무

이미지 출처 : Wikipedia

  • 그래프의 종류
  • 정점은보다 일반적으로 “노드”라고합니다.
  • 가장자리는 “의 자녀”(또는 “의 부모”) 관계를 나타내며
  • 각 노드 (루트 노드 제외)에는 정확히 하나의 부모 (및 0 개 이상의 자식)가 있습니다.
  • 부모가없는 노드 인 정확히 하나의 “루트”노드 (트리에 하나 이상의 노드가있는 경우)가 있습니다.
  • 연결해야합니다
  • 순환 이 없음을 의미하는 비순환입니다 . “사이클은 정점 자체에서 도달 할 수있는 모서리와 정점의 경로 [AKA 시퀀스]입니다.”

위의 속성에 약간의 겹침이 있습니다. 특히 마지막 두 속성은 나머지 속성에 의해 암시됩니다. 그럼에도 불구하고 그들 모두는 주목할 가치가 있습니다.


답변

트리에서 각 노드 (루트 노드 제외)에는 정확히 하나의 선행 노드와 하나 또는 두 개의 후속 노드가 있습니다. 주문, 사전 주문, 주문 후 및 너비 우선 순회를 사용하여 순회 할 수 있습니다. 트리는주기가없는 DAG (Directed Acyclic Graph)라고하는 특수한 종류의 그래프입니다. 트리는 계층 적 모델입니다.

그래프에서 각 노드에는 하나 이상의 선행 노드 및 후속 노드가 있습니다. 그래프는 DFS (Depth First Search) 및 BFS (Breadth First Search) 알고리즘을 사용하여 순회합니다. 그래프는주기를 가지므로 트리보다 복잡합니다. 그래프는 네트워크 모델입니다. 유향 그래프와 무향 그래프의 두 종류의 그래프가 있습니다.


답변

나무는 분명합니다. 자식이있는 노드로 구성된 재귀 데이터 구조입니다.

맵 (일명 사전)은 키 / 값 쌍입니다. 지도에 키를 제공하면 연관된 값이 반환됩니다.

트리를 사용하여지도를 구현할 수 있습니다. 혼란스럽지 않기를 바랍니다.

업데이트 : “지도”에 대한 “그래프”를 혼동하는 것은 매우 혼란 스럽습니다.

그래프는 나무보다 복잡합니다. 나무는 재귀적인 부모 / 자식 관계를 암시합니다. 나무를 가로 지르는 자연적인 방법이 있습니다 : 깊이 우선, 너비 우선, 레벨 순서 등

그래프는 노드 사이에 단방향 또는 양방향 경로를 가질 수 있고 주기적 또는 비 주기적 일 수 있습니다. 그래프가 더 복잡하다고 생각합니다.

적절한 데이터 구조 텍스트 (예 : “알고리즘 디자인 매뉴얼”)에서 커서 검색을 수행하면 여러 SO 답변보다 더 많은 정보를 얻을 수 있다고 생각합니다. 수동적 인 경로를 취하지 말고 스스로 조사해 보는 것이 좋습니다.


답변

트리는 특별한 형태의 그래프, 즉 최소 연결 그래프이며 두 정점 사이에 하나의 경로 만 있습니다.

그래프 에는 둘 이상의 경로가있을 수 있습니다. 즉, 그래프는 노드간에 단방향 또는 양방향 경로 (에지)를 가질 수 있습니다.

또한 자세한 내용을 볼 수 있습니다 :
http://freefeast.info/difference-between/difference-between-trees-and-graphs-trees-vs-graphs/


답변

수학에서 그래프는 객체 쌍이 링크로 연결된 일련의 객체를 나타냅니다. 상호 연결된 객체는 꼭짓점이라고하는 수학적인 추상화로 표현되며, 한 쌍의 꼭짓점을 연결하는 링크를 가장자리라고합니다. [1] 일반적으로 그래프는 정점에 대한 점 세트로 다이어그램 형식으로 표시되며 모서리에 대한 선 또는 곡선으로 연결됩니다. 그래프는 이산 수학 연구의 대상 중 하나입니다.