본문 바로가기

반응형

programming/자료구조

(6)
[자료구조] - C언어를 활용한 그래프의 구현 1. 개요 소프트웨어 마에스트로 코딩테스트를 봤다. 사실상 네문제를 풀었지만... 제출을 못해서 세문제... 처참한 결과였다. 정식적으로 알고리즘을 공부하려다 보니 DFS와 BFS를 만나게 되었는데, 이를 공부하면서 그래프라는 자료구조를 또 만나게 되었다. 사실 DFS 알고리즘인지를 모르고 사용한 적이 있었는데, 이를 더 공부해볼 생각이다. 다음은 내가 푼 문제이다. apape1225.tistory.com/61 [백준 알고리즘] 1012번 - 유기농 배추 (DFS 알고리즘) 1. 문제 및 예시 실행결과 이 글의 소제목이 DFS 알고리즘이지만, 나는 DFS알고리즘을 모르는 상태이다...... 그냥 내가 생각한 방식대로 풀었더니 그것이 DFS 알고리즘이었던 것이다. 다른점이 있 apape1225.tistor..
[자료구조] - LCRS_TREE 구현 (C++) 1. 개요 이번 자료구조는 TREE의 종류 중 하나인 LCRS_TREE이다. LCRS는 Left Child Right Sibling의 약자로 왼쪽 포인터는 자식을, 오른쪽 포인터는 형제를 가리키는 TREE이다. 학교에서는 이 LCRS트리를 배운적은 없다. 일반적인 트리에 대한 개념을 배우고 이진 트리(이진 탐색 트리)와 수식트리를 배웠다. 따라서 LCRS트리는 스스로 모든 메소드를 구현해야 했는데 오히려 배운점이 더 많았다. 다음은 LCRS트리의 이론이다. 2. 이론 LCRS트리는 앞에서 설명했듯이 왼쪽은 자식을 오른쪽은 형제를 가리키는 트리이다. 즉 data를 기리키는 필드 하나와 왼쪽, 오른쪽 포인터의 역할을 기리키는 포인터 두개로 구성되어있다. 다음은 LCRS트리이다. 내가 배운 책에서는 LCRS트..
[자료구조] - LinkedQueue 구현 (C++) 1. 개요 이번에 정리할 내용은 LinkedQueue에 관한 내용이다. Queue는 구현 방법에 따라 CircularQueue와 LinkedQueue 등으로 나눌 수 있는데 이 블로그에서는 LinkedQueue에 대한 설명만 진행할 것이다. 사실 Queue의 기능을 구현하는 방법은 정말 다양하지만 대표적인 두 방법으로 배열과 나머지연산을 활용하는 CircularQueue와 연결리스트로 구현하는 LinkedQueue가 있으니 CircularQueue도 꼭 공부해보기를 바란다. 2.이론 큐는 '나오는 방식이 조금 다른 스택' 이라고 생각하면 편하다. Stack과 같은 경우는 먼저 들어간 데이터가 가장 나중에 나오는 FILO 구조이지만, Queue와 같은 경우 가장 먼저 들어간것이 가장먼저 나오는 FIFO(F..
[자료구조] - CircularDoubledLinkedList의 구현 (C++) 1. 개요 이번에 정리할 내용은 바로 Circular Doubled Linked List(원형 이중 연결 리스트) 이다. 드디어 객체지향 언어를 사용할 수 있게 되었다 ㅠㅠ 사실 OOP(객체 지향저) 적인 코드를 작성하는 회사에서는 이 OOP를 디자인하는 시간이 몇달이 걸린다고도 한다. 저번 글과 현재 작성하고 있는 글에 차이가 있다면 일주일동안 들은 객체지향 특강에서 배운 지식을 활용했다는 것이다. LinkedList를 C++로 작성하려고 해도 시도하지 못했지만, 이제는 C로 작성된 원형 이중 연결 리스트의 이론과 코드를 참고하여 C++로 구현하였다. 나름 뿌듯함을 느끼는 중이다. 2. 이론 사실 원형이중연결 리스트의 기능은 연결리스트와는 다르지 않다. 다만, 차이가 있다면 마지막을 찾는 연산을 하지 ..
[자료구조] - LinkedList의 구현 (C언어) 1. 개요 공부를 많이 했다고는 하지 못하지만, 나름 자료구조라는 과목에는 학교에서든(성적은 잘 모르겠지만 ㅠㅠ) 독학에서든 노력을 했다고 생각한다. 그러나 아직도 자료구조가 뭔지 모르겠다고 느껴질 때가 많다. 이번에 구현한 LinkedList는 바로 직전에 자료구조 카테고리로 작성한 글인 Stack과는 코드스타일이 조금 다른느낌일 수 있다고 생각한다. 다른 책을 참고하였기 때문이다...... ㅠㅠ 사실 Stack은 서적을 참고했다기 보다는 거의 나의 힘으로 작성한 것이지만 LinkedList의 경우는 서적을 참고하였다. 자료구조의 책을 한 세권정도 읽었는데(그중 하나는 학교강의) 한 자료구조에 해당하는 주요 연산의 기능을 해낼수만 있다면 코드는 조금씩 다르다는 것을 알게되었다. 결국 중요한 것은 자료구..
[자료구조] - Stack의 구현( C, C++ ) 1. 개요 항상 무언가를 공부하거나 새로운 지식을 학습할 때, 알아야하는 것은 내가 학습하려는 것이 어디에 사용되고, 본질이 무엇인지에 대해서이다. 그러나 이것이 내가 공부하는 모든 지식에 적용되지는 않는 것 같다. 그 중 하나가 바로 자료구조이다. (적어도 나에게는) 자료구조라는 과목이 얼마나 중요한지는 유튜브에 '개발'이나 '프로그래밍' 이라는 키워드로 3분동안만 검색해봐도 알 수 있는 사실이다. 그렇게 악명 높은 코딩 테스트도 가장 기초가 되는 부분이 바로 자료구조라는 사실은 조금만 찾아봐도 알 수 있다. 그러나 나는 아직도 내가 배우는 이 자료구조들이 실무에서 어떤 모습으로 사용되는지는 알지 못한다. 그저 원리와 구현 방법 그리고 이론으로 설명되는 활용 방법과 응용 문제들을 푸는 수준이다. "이런..