본문 바로가기

분류 전체보기105

[자료구조] 연결 리스트 (Linked List) C/C++ 구현 - 알고리즘 2020/10/30 - [자료구조] - [자료구조] 큐 (Queue) C/C++ 구현 - 알고리즘 2020/10/30 - [자료구조] - [자료구조] 스택 (Stack) C/C++ 구현 - 알고리즘 연결리스트란 연결리스트는 기차와 같습니다. 연결리스트는 동적으로 크기를 조절하므로 배열을 사용하는것 보다 메모리를 효율적으로 사용할 수 있다는 것이 장점입니다. 연결리스트는 다음 노드에 해당하는 현재 노드를 기준으로 왼쪽 노드, 오른쪽 노드의 연결로 구성됩니다. 편의상 왼쪽에 존재하는 노드가 더 앞선 순서를 갖는다고 가정하겠습니다. 단방향 연결리스트의 경우 다음 노드를 의미하는 next와 마지막 노드를 가리키는 last, 저장할 data 최소 세가지의 요소로 구성됩니다. (마지막 노드를 가리키는 요소를 가지고.. 2020. 10. 30.
[자료구조] 큐 (Queue) C/C++ 구현 - 알고리즘 저번 글은 스택 구현에 대해 알아봤습니다. 2020/10/30 - [알고리즘] - [자료구조] 스택 (Stack) C/C++ 구현 - 알고리즘 [자료구조] 스택 (Stack) C/C++ 구현 - 알고리즘 스택이란 스택은 우물과도 같습니다. 가장 마지막에 들어간 데이터가 맨위에 쌓이게 되고, 데이터를 가져올 때 맨 위에 쌓인 (즉, 가장 마지막에 들어간) 데이터를 먼저 빼내야 합니다. 스택 기 seongjuk.tistory.com 큐란 큐는 톨게이트 (고속도로 요금 정산소)와 같습니다. 각 게이트에 먼저 도착한 차가 요금을 정산하고 먼저나가는 것과 같이, 먼저 들어온 데이터가 먼저 큐에서 빠져나가게 됩니다. 큐 기능 큐에는 자주 사용되는 6가지 메소드 (method)가 존재합니다. push(data) 스택.. 2020. 10. 30.
[자료구조] 스택 (Stack) C/C++ 구현 - 알고리즘 스택이란 스택은 우물과도 같습니다. 가장 마지막에 들어간 데이터가 맨위에 쌓이게 되고, 데이터를 가져올 때 맨 위에 쌓인 (즉, 가장 마지막에 들어간) 데이터를 먼저 빼내야 합니다. 스택 기능 스택에는 자주 사용되는 5가지 메소드 (method)가 존재합니다. push(data) 스택에 데이터를 넣습니다. 들어간 데이터는 스택의 맨 위 (top)에 위치합니다. top() 스택의 맨 위에 위치한 데이터에 접근합니다. 만약 스택이 비어있는 경우 런타임 에러를 발생시킵니다. pop() 스택의 맨 위에 위치한 데이터를 빼냅니다. top과 마찬가지로 스택이 빈 경우 런타임 에러를 발생시킵니다. size() 스택에 현재 저장되어있는 데이터의 개수를 반환합니다. empty() 스택이 비어있는지 확인합니다. 비어있다면.. 2020. 10. 30.
[자료구조] 삽입 정렬 (InsertionSort), 선택 정렬 (Selection Sort) C/C++ 구현 및 비교 실험 삽입 정렬과 선택 정렬은 O(N^2)의 비효율적인 정렬 방법입니다. 효율적인 정렬을 구현하고 싶으시면 아래 링크를 봐주세요 2020/08/17 - [알고리즘] - 머지 소트, 머지 소트 트리 및 관련 백준 문제 풀이 머지 소트, 머지 소트 트리 및 관련 백준 문제 풀이 머지 소트 트리를 이용한 백준 문제 풀이 수열과 쿼리 1 , 수열과 쿼리 3 , 트리와 색깔 , K번째 수 는 맨 아래를 참고해주세요. 코드 스포일러를 방지하기 위해 접은 글로 풀이를 남겼습니다. 알고 seongjuk.tistory.com 삽입 정렬의 코드는 아래와 같습니다. 두 번째 원소 ( i = 2)부터 시작하여 바로 앞 ( 0 ~ i-1 )의 정렬된 원소들과 비교하여 삽입 위치를 지정하고 삽입된 위치부터 오른쪽으로 한 칸씩 시프트 .. 2020. 10. 21.