자료구조21 트리자료구조_on c[1] 본 포스트는 c언어를 중심으로 작성되었습니다. 트리자료구조_on c[1] 저번 스택, 큐에 이어 트리 자료구조에 대해 포스팅을 할까 합니다. 트리 말 그대로 트리입니다. 나뭇가지 처럼 뻗어져 나가는 것 처럼 생겼습니다! 아주 쭉쭉 뻗어져 나가는 것이 보기 좋습니다! 위를 보듯 트리자료구조는 리스트, 스택, 큐 와 다르게 1:1 선형구조가 아니라 1:다, 즉 1:n 의 비선형 자료구조를 지닙니다. 흔히 계층형 자료구조라고도 합니다. 우리가 흔히 볼 수 있는 가족 관계도, 기관의 조직도 등이 이에 속한다고 보시면 됩니다. 위의 논리적 구조를 따릅니다. 최상단에 위치한 노드가 최상위 노드, 즉 트리의 시작점이 됩니다. 최상단 트리는 현재 7개의 노드를 가지고 있습니다. 보통 시작하는 노드를 루트라고 합니다. .. 2020. 3. 4. 파이썬에서의 추상데이터타입![2] 본 포스트는 python3.7, pycharm환경에서 작성되었습니다. 파이썬에서의 추상데이터타입![2] 지난 시간은 앞서서 스택에 대해서 알아보았습니다. 이번 시간에는 큐에 대해서 알아보도록 하겠습니다. 큐는 스택과 다릅니다. 우선 비교표를 보겠습니다 스택 큐 공통점 데이터를 담는 추상데이터 타입 배열의 인덱스 엑세스가 제한 차이점 후입선출 방식 선입선출 방식 위와 같은 특징을 지닙니다. 그렇다면 활용될 수 있는 동작을 알아봅시다. enqueue() 큐 항목에 데이터 삽입 dequeue() 큐 맨 앞 항목을 반환하고 제거 peek/front() 큐 맨 앞 항목을 조회 empty() 큐가 공백인지 확인 size() 큐의 크기를 반환 그렇다면 코드로 큐를 구현해 보겠습니다. 1 2 3 4 5 6 7 8 9 .. 2020. 3. 2. 파이썬에서의 추상데이터타입![1] 본 포스트는 python3.7, pycharm환경에서 작성되었습니다. 파이썬에서의 추상데이터타입![1] 앞서서 c에서의 스택과 큐에 대해서 알아보았습니다. 그렇다면 객체지향언어인 파이썬에서는 어떻게 구현될까요? 우선 c에서의 데크는 구현하지 않았기 때문에 스택과 큐만 구현해보도록 하겠습니다. 추상데이터 타입(Abstract Data Type이하 adt)은 전체적인 자료구조의 클래스에 모델을 가르킵니다. 자료구조는 크게 배열기반의 연속방식과 포인터 기반의 연결 방식으로 분류합니다. 연속방식 포인터 기반의 연결 방식 연속적으로 할당된 자료구조 즉, 단일 메모리에 물리적으로 연속적으로 구성되는 메모리 조각인 메모리 슬래브로 구성됩니다. 유형 : 문자열, 리스트, 튜플, 딕셔너리 포인터에 연결되는 메모리 청크 .. 2020. 3. 2. 큐가 뭔가요!( C,Queue)[2] 본 포스트는 c언어를 중심으로 작성되었습니다. 큐가 뭔가요!( C,Queue)[2] 저번 포스트에 이어 계속 포스트 해왔던대로 이번엔 연결리스트를 통한 구현을 해보겠습니다. 저 또한 의문이 들었습니다. 순차자료구조, 연결자료구조 이거 두개 다 뭐 구현이 가능한데? 왜 나눠서 구분 짓고 이럴땐 이렇게 사용하고 저럴땐 저렇게 사용할까? 라는 의문을 가져보았습니다. 구글링을 열심히 해본결과로는 순차자료구조를 이용해 구현한 큐는 치명적인 단점이 존재합니다. 앞서 포스트에서도 기술했듯이 배열의 크기가 고정되므로 큐의 길이를 유동적으로 변화 시킬 수 없으며 데이터가 없어도 항상 고정된 크기를 가져야 하기 때문에 메모리누수 문제가 심각하다는 이유입니다. 즉, 3번지 3 4번지주소-> 4번지 4 null first 포.. 2020. 3. 2. 이전 1 2 3 4 5 6 다음