일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 스택
- 유사코드
- 들여쓰기로 표현한 트리
- 자바
- java
- 자료구조
- itertools
- html
- python
- 과일 장수
- 트리
- 유한소수 판별하기
- LV.1
- 좋은 알고리즘
- list
- Import
- Combination
- 알고리즘 표현
- 코딩 테스트
- Tree
- 코딩테스트
- import itertools
- 프로그래머스
- 태그
- 알고리즘의 조건
- 알고리즘의 조건 5가지
- 큐
- 파이썬
- 리스트
- 알고리즘
- Today
- Total
목록자료구조 (8)
인천의 자유인

트리를 표현하는 방법은 3가지가 있습니다.중첩된 집합, 괄호, 트리로 표현을 할 수 있습니다.아래 이미지를 빗대어서 설명해 보겠습니다.1. 중첩된 집합트리는 중첩된 집합으로도 나타낼 수 있습니다. 위의 트리를 집합으로 나타내보겠습니다.2. 중첩된 괄호트리의 루트와 서브 트리를 중첩된 괄호로 묶어 표현하는 방법이 있습니다. A가 루트고 자식트리가 B,C,D라면 이렇게 표현할 수 있습니다. 구현하게 되면 (A (B) (C) (D))로 나오게 됩니다.자 그러면 마지막으로 위의 트리를 중첩된 괄호로 표현하게 되면 어떻게 나오는지 보겠습니다.A의 자식노드는 B,C,D가 있습니다. 그리고 B는 E,F,G라는 자식노드가 있으며, C는 H라는 자식 노드가 있고 D는 I,J가 있습니다. 그렇기 때문에 최종적이 결과는 이..

본문트리란?트리와 관련 용어트리란?트리는 이름처럼 나무를 닮으 자료구조다. 나무의 뿌리처럼 한 나무에서서 가지들이 뻗어나와서 분기되는 모습을 보입니다. 이러한 트리 구조는 계층적인 관계를 가진 자료의 표현에서 유용하게 사용됩니다. 트리는 효율적인 탐색을 위해서도 유용합니다. 큐를 효율적으로 구현하기 위해 트리가 사용되기도 합니다.트리와 관련 용어트리에서 각각의 요소를 노드라고 합니다. 노드와 노드의 연결 관계는 간선 또는 에지로 나타냅니다. 그리고 노드 중에서 가장 높은 곳에 있는 노드를 루트 노드라고 불립니다.추가로 노드 관련 용어를 보겠습니다.부모 노드: 간선으로 직접 연결된 상위 노드자식 노드: 간선으로 직접 연결된 하위 노드형제 노드: 같은 부모 노드를 가진 노드조상 노드: 어떤 노드에서 루트 노..

1. 배열 구조와 연결된 구조 리스트는 배열 구조와 연결된 구조로 구현할 수 있습니다. 먼저 배열 구조인 경우 중간에 빈자리가 없어야 하며 반드시 메모리의 연속된 공간에 저장되어야 합니다. 이 점 때문에 원하는 위치의 요소를 빠르게 참조하고 관리할 수 있습니다. 연결된 구조인 경우는 요소들이 메모리의 여기저기 흩어져서 저장이 됩니다. 이 요소들을 관리하기 위해 링크를 사용해야 한다. 자료들을 링크를 통해 일렬로 나열할 수 있는 연결된 구조를 연결리스트라고 합니다. 연결된 구조에는 노드라는 것이 있는데 이 노드에 데이터와 링크가 저장됩니다.2. 비교해 보기 연결된 구조와 배열 구조는 여러 차이점이 있습니다. 그 점을 비교해 봅시다. 1. 리스트 요소들에 대한 접근 배열 구조는 모든 요소듸 크기가 같고 연..

목차리스트란?리스트의 연산리스트란?리스트는 가장 자유로운 선형 자료구조입니다. 선형 자료구조란 하나의 자료 뒤에 하나의 자료가 존재하는 형태의 자료 구조을 의미합니다. 리스트에서는 어떤 위치에서도 새로운 요소를 삼입할 수 있습니다. 이때 중요한 것은 어느 위치에 요소를 삼입하려면 이후의 모든 자료가 한 칸씩 뒤로 밀린다는 것입니다. 또한 리스트에서는 원소 사이에 순서라는 개념이 있습니다.리스트의 연산리스트의 주요 연산은 다음과 같이 정리할 수 있습니다.insert(pos, e): pos 위치에 있는 새로운 요소 e를 삼입delete(pos): pos 위치에 있는 요소를 꺼내서 반환getEntry(pos): pos 위치에 있는 요소를 삭제하지 않고 반환isEmpty(): 리스트가 비어 있으면 True, 아..

목차덱이란덱의 연산덱이란?덱(deque)은 double-ended queue의 줄임말로서 전단과 후단에서 모두 삼입과 삭제가 가능한 큐를 말합니다. 다만 여전히 중간에는 삼입, 삭제는 불가능합니다. 덱의 연산덱은 큐에서 몇가지 연산이 추가된다.addFront(e): 새로운 요소 e를 전단에 추가addRear(e): 새로운 요소 e를 후단에 추가deleteFront(): 덱의 전단 요소를 꺼내서 반환deleteRear(): 덱의 후단 요소를 꺼내서 반환getFront(): 덱의 전단 요소를 삭제하지 않고 반환getRear(): 덱의 후단 요소를 삭제하지 않고 반환isEmpty(): 덱이 비어있으면 True를 아니면 False를 반환isFull(): 덱이 가득 차 있으면 True를 아니면 False를 반환s..

목차큐란?큐의 연산큐란? 큐(queue)는 가장 먼저 들어간 자료가 가장 먼저 나오는 자료구조입니다. 마치 매표소를 기다리는 대기줄을 생각하면 이해하기 쉽습니다. 이처럼 큐는 먼저 들어간 데이터가 먼저 나가는 선입선출(FIFO: First-In First-On)의 특성을 같는 자료구조입니다. 스택은 a,b,c 이렇게 들어갔을때(삼입) 꺼내면(삭제) c, b, a 순으로 나갔지만 큐는 a, b, c로 삼입이 되면 삭제 순도 똑같이 a,b,c 순서로 나가게 됩니다. 이때 삼입이 일어나는 곳을 후단(rear)이라고 하며, 삭제가 일어나는 곳은 전단(front)이라고 합니다. 큐의 연산스택과 마찬가지로 큐에도 숫자나 문자열을 포함한 어떤 자료든 저장할 수 있습니다. 큐에서도 역시 삼입과 삭제가 가장 핵심적..
먼저 순환이라는 것이 무엇을 의미하는 말할 필요가 있을것 같습니다.순환이란 어떤 함수가 자기 자신을 다시 호출하여 문자을 해결하는 프로그래밍 기법입니다. 팩토리얼을 구할 수 있는 방법이라 하면 반복문과 순환을 이용하는 두가지 방법을 이용할 수 있는데 먼저 반복문 부터 봅시다. 1. 반복문반복문을 이용한 예입니다.def loop(n): a =1 for k in range(2, n+1): a = a * k return a우리에게 굉장히 친숙한 방법입니다. a = 1로 한 것은 알겠지만 0으로 하면 계속 0이 되기 때문입니다.이 예제는 그냥 1부터 n까지 계속 곱하는 간단한 식입니다.2. 순환순환을 사용한 예입니다.def recusion(n): if n == 1: ..

목차스택이란?스택의 연산 스택이란?스택이란 마지막에 들어간 자료가 가장 먼저 나오는 자료구조입니다.스택은 자료의 입출력이 후입선출(LIFO: Last-In Frist-Out)로 제한되는 자료구조입니다.스택은 다른 통로는 모두 막고 한쪽 만을 열어둔 구조이다. 이것을 보통 상단이라고 불립니다. 스택에 저장되는 것을 항복 또는 요소(element)라고 불립니다. 스택의 대표적인 예 중에서 하나는 인터넷의 이전 페이지 기능이나 한컴의 되돌리기 기능을 생각하면 되겠습니다.스택은 숫자나 문자열을 포함한 어떤 자료든 저장할 수 있다. 그건 큐나 트리 같은 다른 자료 구조들도 마찬가지 입니다.스택의 연산스택 자료형은 어떤 연산을 지원해야 할까? 그것을 삼입, 삭제가 가장 핵심적인 연산입니다. 이것은 스택 상태를 변화..