Archive/CS & App
-
[자료구조] Linked ListArchive/CS & App 2021. 2. 11. 19:07
자료구조 03 / Linked List 정의 연결 리스트는 배열과 달리 떨어진 곳에 존재하는 데이터를 각 주소끼리 연결하는 데이터 구조 (배열 : 순차적으로 연결된 공간에 데이터를 나열 하는 데이터 구조) 파이썬, 스위프트 등의 최근 고급 언어에서는 배열 자체도 동적으로 할당받을 수 있어서 (연결 리스트 형태와 유사하게 동작하기도 한다) Linked List는 노드 (Node)의 묶음으로 볼 수 있는데 Node는 값을 갖는 Data와 다음 노드를 가리키는 포인터(Pointer)를 포함함 Node를 Class로 구현하는 경우 클래스의 객체를 = 할당하는 건 참조(포인터 연결)와 같은 기능을 하기 때문에 C/C++ 언어와 달리 Swift는 따로 포인터 없이 객체를 바로 할당한다. github GitHub -..
-
[자료구조] StackArchive/CS & App 2021. 1. 21. 00:06
자료구조 02 / Stack 정의 "쌓다" 개념을 가진 자료구조 후입선출 LIFO (Last-In First-Out) 의 원리를 가짐 예를들어 책을 쌓고 다른 곳으로 옮길때 맨위에 책부터 다시 하나씩 빼는 모습으로 볼 수 있다. 장점 : 구조 단순해서 구현이 쉽다. 단점 : 저장 공간 낭비가 발생 할 수 도 있다. 주요기능 push() : 스택에 데이터 쌓기 pop() : 스택의 가장 마지막 데이터 빼기 top() : 스택의 가장 마지막 데이터 empty() : 스택이 비어있는 지 확인하는 활용 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 (return) - 함수 동작을 시작할때 돌아갈 시점(반환주소)을 스택에 쌓고 함수동작이 끝나는 데로 가장 마지막으로 쌓인 시점부터 돌아간다 예상하지 못한 Stack..
-
[자료구조] QueueArchive/CS & App 2021. 1. 20. 17:02
전체적으로 알고는 있지만 생각보다 정리를 한 기억이 없어서 개념적인 부분 정리와 Swift 코드를 이용해서 예제 만들어보기 또는 나만의 도구들로써 코드를 작성해보려한다. 이렇게 정리를 한뒤 알고리즘 문제에 접근해서 하나씩 완성해보자.. 자료구조 01 / Queue 정의 컴퓨터 자료구조로 처리할 항목을 순차적으로 대기열에서 처리하는 방법 가장 먼저 대기중인 데이터를 먼저 처리하는 구조 선입선출 FIFO(First-in First-Out) 줄 서는 모습과 유사하다고 볼 수 있음 - 멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용됨(OS) 주요기능 enqueue() : 큐에 데이터 쌓기 dequeue() : 큐의 맨 앞 데이터 빼기 front() : 큐의 맨 앞 데이터 empty() : ..