여러가지 자료구조가 있다.
큐, 스택, 그래프, 트리, 배열, 연결 리스트 등이 유명한 자료구조이다.

큐와 스택은 자료를 쌓아놓는 방법을 말하는데, 먼저 들어간 놈이 먼저 나오면 큐, 나중에 들어간 놈이 먼저 나오면 스택이다.
우리 몸에서 음식을 처리하는 과정은 큐를 통해서 이루어 지는데, 그것은 먹은 순서대로 싼다는 사실을 보면 알 수 있다. 반면, 가끔은 스택처럼 처리하기도 한다. 너무 많이 먹으면 나중에 들어간 놈이 먼저 입으로 나와 버리는 사고가 터진다.

인체의 구조는 그래프이다. 혈관을 보면 점과 점을 잇는 선으로 구성된 것을 알 수 있다. 그래프는 점과 선으로 이루어진 것을 말한다. 그중에서, 고리가 하나도 없는 것을 트리라고 한다. 고리는 어떤 점에서 출발하여 한번 갔던 길을 되돌아오지 않고도 원래의 점으로 되돌아올 수 있는 경로를 말한다. 트리 중에서 가장 중요한 1개의 점을 정할 수 있다면 뿌리가 있는 트리가 된다.

배열은 정보를 늘어놓고서 인덱스를 통해서 접근할 수 있는 것을 말한다. 가령, "몇번째 정보"라고 말하면 어떤 정보인지 알 수 있는 것을 배열이라고 한다. 우리 몸에서는, 가령 치아의 위치가 배열처럼 되어 있다. (실제로 배열이다.) 연결 리스트는 배열이랑 비슷하긴 한데, "다음번의 다음번의 다음번 정보"라는 식으로 상대적인 위치만을 알 수 있는 자료이다. 이것은 신경망과 비슷한 자료구조이다. 신경세포들은 자신이 몇번째 신경세포인지는 알지 못하고, 단지 받은 신호를 적당히 처리해서 다음번 신경세포로 넘겨줄 뿐이다.

by snowall 2009.09.07 00:45
  • Deios 2009.09.07 03:13 ADDR EDIT/DEL REPLY

    와~~~ ^^;;;

  • 이경문 2009.10.14 05:55 ADDR EDIT/DEL REPLY

    정의가 잘못되었군요. 트리는 임의의 노드에서 다른 임의의 노드로 가는 path가 하나밖에 없는(그러면서도 반드시 존재해야 하는) 그래프를 말합니다. 고리가 없다고 해도, 임의의 두 노드에 대해 path가 존재하지 않는다면 그것은 트리가 아닙니다.

    링크트 리스트를 신경망이라고 하기에는 좀... Neural Network상에서 Neuron끼리의 연결을 linked list로 할 수는 있지만, 그렇게 따지면 배열로도 나타낼 수도 있습니다. 내부적으로 linked list로 구현해 놓고 외부 인터페이스로는 배열로 접근할 수도 있습니다.

    • snowall 2009.10.14 10:35 신고 EDIT/DEL

      그렇게 되는 건가요. 공부를 대충해서 잘 몰랐습니다...-_-;
      알려주셔서 감사합니다. ^^