구현 썸네일형 리스트형 <자료구조 알고리즘> 큐 구현 큐 구현 이번에는 큐을 구현해보자. 동적 배열을 이용해서도 구현을 할 수 있기는 하겠지만 크기가 계속 바뀌어야 하니 굉장히 비효율 적일 것이다. 또한 중간에 있는 데이터에 접근하는 일도 없을 테니 연결리스틀 사용하는 것이 더 효율적일 것이다. 데이터를 삽입하는 곳을 rear(뒤) 삭제하는 곳을 front(앞)이라고 하고 연결리스트 양 끝의 주소를 rearNode와 frontNode에 계속 저장해 놓을 것이다. 연결리스트가 연결되어있는 방향을 잘 보아야 한다. 위 사진과 같이 각 노드의 다음노드는 더 늦게 추가된 데이터를 가르키고 있어야 한다. 삽입 할 때에는 연결리스트의 한쪽 끝(rear)에 데이터를 넣고 그 주소를 rearNode에 저장한다. 삭제 할 때에는 frontNode에 다음 노드를 저장(fro.. 더보기 <자료구조 알고리즘> 스택 구현 스택 구현 이번에는 스택을 구현해보자. 구현은 동적 배열을 이용해서도 구현을 할 수 있기는 하지만 중간에 있는 데이터에 접근하지는 않을 것이고 끝에 추가 삭제를 많이 할 테니 연결 리스트를 사용하는 것이 더 효율적일 것이다. 옆 그림과 같이 일반 연결 리스트를 이용해서 쉽게 구현할 수 있다. head가 가르키는 곳이 스택의 가장 윗부분이다. 데이터를 추가할 때는 새로운 노드의 다음 노드로 원래 head노드를 저장하고 head가 새로운 노드를 가르키게 하면 된다. 데이터를 꺼낼 때는 head가 가장 위 노드의 다음 노드를 가르키게 하면 된다. 코드로 구현해 보면 다음과 같다. template struct list { T val; list* next; list() : val(NULL), next(NULL) .. 더보기 <자료구조 알고리즘> 그래프 표현 3. edge list (간선 리스트) 그래프가 무엇인지 모르시는 분들은 아래 글을 참고하길 바랍니다. https://jjoonleo.tistory.com/11 그래프 개념 그래프란? 정점(vertex)과 간선(edge)로 이루어진 자료구조이다. 수학에서 자주 보던 좌표평면에 그리는 그 그래프가 아니다. 쉽게 이해하기 위해서 정점을 마을 간선을 마을 사이를 잇는 길이라고 jjoonleo.tistory.com 그래프의 표현 방식 이번 글에서는 그래프의 표현 방식에 대해 알아 보도록 하겠다. 그래프는 배열이나 큐 스택과는 다르게 어떻게 구현해야 할지 바로 떠오르지는 않는 것 같다.(나만 그랬나??) 그래프의 표현 방식에는 3가지가 있다. 1. Adjacency List (인접 리스트) 2. Adjacency matrix (인접 행렬) 3. edg.. 더보기 <자료구조 알고리즘> 그래프 표현 2. adjacency Matrix (인접 행렬) 그래프가 무엇인지 모르시는 분들은 아래 글을 참고하길 바랍니다. https://jjoonleo.tistory.com/11 그래프 개념 그래프란? 정점(vertex)과 간선(edge)로 이루어진 자료구조이다. 수학에서 자주 보던 좌표평면에 그리는 그 그래프가 아니다. 쉽게 이해하기 위해서 정점을 마을 간선을 마을 사이를 잇는 길이라고 jjoonleo.tistory.com 그래프의 표현 방식 이번 글에서는 그래프의 표현 방식에 대해 알아 보도록 하겠다. 그래프는 배열이나 큐 스택과는 다르게 어떻게 구현해야 할지 바로 떠오르지는 않는 것 같다.(나만 그랬나??) 그래프의 표현 방식에는 3가지가 있다. 1. Adjacency List (인접 리스트) 2. Adjacency matrix (인접 행렬) 3. edg.. 더보기 <자료구조 알고리즘> 그래프 표현 1. adjacency List (인접 리스트) 그래프가 무엇인지 모르시는 분들은 아래 글을 참고하길 바란다. https://jjoonleo.tistory.com/11그래프의 표현 방식이번 글에서는 그래프의 표현 방식에 대해 알아 보도록 하겠다. 그래프는 배열이나 큐 스택과는 다르게 어떻게 구현해야 할지 바로 떠오르지는 않는 것 같다.(나만 그랬나??) 그래프의 표현 방식에는 3가지가 있다. 1. Adjacency List (인접 리스트) 2. Adjacency matrix (인접 행렬) 3. edge list (간선 리스트) 1. Adjacency Listadjacency list는 각 노드에 연결된 노드를 리스트로 저장한다. 위의 그래프를 adjacnecy list로 표현해 보자면 다음과 같을 것이다. 0: [ 1, 3 ] 1: [ ] 2: [ 0.. 더보기 이전 1 다음