자료구조 3

추상 자료형(Abstract Data Type, ADT)

추상 자료형(Abstract Data Type, ADT) 추상 자료형, 간단히 ADT 라고 불리는 이것은 컴퓨터 공학에서 흔히 등장하는 용어이다. 그런데 실제 의미에서 조금 확장된 개념으로 사용되기도 하기 때문에 등장하는 영역에 따라서 의미상 약간의 차이가 있는 것처럼 느낀다. 하지만 이해가 완전하지 않아서 그렇게 느낄 뿐 실제로 차이가 있는 것은 아니며, 이후 다양한 분야에서 ADT를 경험하고 깊이가 더해지면 큰 맥락에서는 하나이지만 이를 나타내는 형태에서 차이가 날 뿐이라고 느낄 수 있다. 자료구조에서의 추상 자료형 추상 자료형(ADT)은 '구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것'이다. 예를 들어, 지갑의 동전삽입기능을 "지갑을 열고 동전 주머니를 찾아서 동전..

자료구조 2022.12.06

재귀(Recursion)

재귀함수란? 재귀함수 : 함수 내에서 자기 자신을 다시 호출하는 함수 1 2 3 4 5 void Recursive(void) { printf("Recursive call!\n"); Recursive(); } cs 예를 들면, 위와 같은 함수이다. 그렇다면, 재귀함수의 호출을 어떻게 이해해야 할까? 완료되지 않은 함수를 다시 호출하는 것이 가능한 것인가? 라는 질문에 어떻게 답할 수 있을까? 재귀함수의 호출을 재진입의 관점에서 바라보면 재귀함수의 흐름을 파악하기가 어렵다. 따라서, 재귀함수의 호출은 함수의 복사본이 만들어져서 복사본이 실행되는 구조로 이해할 수 있다. "Recursive 함수를 실행하는 중간에 다시 Recursive 함수가 호출되면, Recursive 함수의 복사본을 하나 더 만들어서 복사..

자료구조 2022.12.05

<인프런_파이썬 기본편> 자료구조 - 리스트(index, append, insert, pop, sort, reverse, clear, extend )

# 리스트 [] 만들기 예를 들어, 지하철 칸별로 10명, 20명, 30명 을 표현하기 위해서 subway1 = 10, subway2 = 20, subway3 = 30 라고 표현할 수 있다. 이 경우에는, 리스트를 활용해서 표현하는 것이 더 효율적이다. subway = [10, 20, 30] print(subway) subway = ["유재석", "조세호"] print(subway) [10, 20, 30] ['유재석', '조세호'] # 리스트의 index 출력하기 ( (리스트명).index() ) ex) print(subway.index("조세호")) 1 # 리스트에 원소 추가하기 ( (리스트명).append() ) ex) subway.append("하하") print(subway) ['유재석', '조세..