노드 (컴퓨터 과학)

노드(node)는 컴퓨터 과학에 쓰이는 기초적인 단위이다. 노드는 대형 네트워크에서는 장치나 데이터 지점(data point)을 의미한다. 개인용 컴퓨터, 휴대전화, 프린터와 같은 정보처리 장치들이 노드이다. 인터넷에서 노드를 정의할 때 노드는 IP 주소를 보유한 어떠한 것도 될 수 있다. 노드는 더 커다란 자료 구조의 일부분 하나 하나를 의미할 수 있는데 이를테면 연결 리스트라든지 트리 자료 구조를 들 수 있다. 노드는 데이터를 포함하며 다른 노드와 연결될 수도 있다. 노드 간 링크는 포인터에 의해 구현되기도 한다.

노드와 트리 

노드는 트리 구조로 정렬되기도 한다. 노드는 하나의 자료 구조에 포함된 정보를 표현한다. 이 노드들은 값이나 조건을 포함할 수 있으며 다른 독립된 자료 구조의 역할을 할 가능성이 있다. 노드는 하나의 부모 노드에 의해 표현된다. 트리 구조의 가장 높은 지점은 루트 노드(root node)로 부르며 이 노드에는 부모 노드가 없으나 해당 트리 아래에 속한 모든 노드의 부모노드나 조부모 노드의 역할을 맡는다. 노드의 높이는 해당 노드에서 가장 거리가 먼 리프 노드(leaf node)까지의 경로 상의 간선의 전체 수에 의해 결정되며 트리의 높이는 루트 노드의 높이와 동등하다. 노드의 깊이(depth)는 특정 노드와 루트 노드 간의 거리에 의해 결정된다. 루트 노드는 0의 깊이를 갖는다고 말할 수 있다. 데이터는 이러한 네트워크 경로를 따라 탐지할 수 있다. 모든 IP 주소는 이러한 종류의 시스템의 노드를 사용하여 네트워크 내의 위치를 정의한다.

각주

외부 링크 
 Data Trees as a Means of Presenting Complex Data Analysis  by Sally Knipe
 STL-like C++ tree class 
 Description of tree data structures from ideainfo.8m.com
 WormWeb.org: Interactive Visualization of the C. elegans Cell Tree - Visualize the entire cell lineage tree of the nematode C. elegans (javascript)

연결 리스트
그래프 자료 구조