본문 바로가기

자료구조3

트리 구조 트리구조의 관한 내용은 힙정렬때 간략하게 공부한 탓인지 쉽게 이해하고 넘어갈 수 있었다. 책의 마지막 부분이 가까워지니까 내용이 한번 봤던 내용이여서 그런지 전보다는 쉽게 공부하는 것 같다. 트리구조는 데이터 사이의 계층이 존재한다. 따라서 값의 크고작음이 구조 자체에 나타나기 때문에 정렬하는 방법도 쉽게 나타낼 수 있다. 트리구조 데이터간의 계층관계를 표현하는 자료구조 용어 루트 : 트리의 가장 위쪽에 있는 노드 리프 (단말 노드): 트리의 가장 아래쪽에 있는 노드 비 단말 노드 (내부노드): 리프를 제외한 노드 레벨 : 루트에서 얼마나 떨어져 있는지를 나타내는 것 가지가 아래로 뻗어나갈 때마다 레벨이 1씩 증가 차수 : 각 노드가 갖는 자식의 수 형제 : 부모가 같은 노드 순서 트리 : 형제 노드의 .. 2022. 8. 10.
커서를 이용한 연결 리스트 이번 단원을 공부하며 내가 저번 단원을 잘못 이해했다는 것을 알았다. 포인터를 이용한 연결 리스트에서 포인터가 지금의 커서라고 생각했었는데 둘의 차이점을 잘 모르겠다. 저번 단원에서 원하는 위치에 데이터를 추가하려면 어떻게 해야할까 라는 생각을 하며 원하는 위치 앞, 뒤 위치의 노드 사이에 포인터 주소를 새로운 노드로 다르게 주면 되지 않을까 라는 결론을 내렸었다. 하지만 이번 단원에서 같은 내용이 나와버려서 내가 잘못 생각한 건가 라는 생각이 들어 검색을 해봤는데 결국 내가 내린 결론은 포인터와 커서는 비슷한 개념의 용어인것 같다. 일단 그렇게 이해하는게 지금 내가 공부하는데 혼란이 없을 것 같지만 나중에라도 확실히 짚고 넘어가야겠다. + 8.9 수정) 책의 앞부분에 나와있었는데 잊어버린것 같다. 책을.. 2022. 8. 7.
스택과 큐 이번 단원은 OS 에서 배웠던 기초 지식이 있었던 탓인지 코드가 길어도 이해하기 쉬웠고, 코드를 읽으며 이해가 바로바로 되니까 재미가 붙었던 단원이다. 그랬던 탓인지 딱히 궁금증이 생기거나 막히는 부분 없이 무난하게 잘 공부했던 것 같다. 스택 스택이란 데이터를 임시저장하는 자료구조로서 후입선출 (LIFO : Last In First Out) 방식을 띄고있다. 한마디로 가장 먼저 들어간 데이터가 가장 마지막에 나온다는 뜻이다. 스택에서 데이터를 넣을 때 쓰는 용어는 푸시 (PUSH), 데이터를 꺼낼때는 팝 (POP) 이라고 한다. 스택을 구성하는 코드는 다음과 같다. from typing import Any class FixedStack: class Empty(Exception): # 비어있는 스택에 팝.. 2022. 7. 25.