Algorithm&DataStructure/Data Structure4 자료구조 - Linked List ( 링크드 리스트) 1. linked list... 조금씩 어려워 진다. 하지만 걱정말자! 연결리스트라고도 하는 이 구조는 순차적으로 연결된 공간에 데이터를 나열하는 배열과는 다르게, 떨어진 곳에 존재하는 데이터를 열결해서 관리하는 데이터 구조. C에서 많이 사용되는 구조이지만 공부하는 입장에서 알아두면 좋겠다. 2. 본론 1) 기본 구조와 용어 노드 - 데이터 저장 단위로 구성. 포인터 - 각 노드 안에서 다음이나 이전 노드와의 연결 정보를 가지고 있는 공간 장점은 미리 공간을 할당하지 않아도 됨. 단점은 연결을 위한 별도의 공간이 필요하므로 공간에 대한 효율성이 낮음 연결정보를 찾아야하기때문에 속도가 느림, 중간 데이터를 삭제하면 데이터의 연결을 재구성해야함. 단일연결리스트와 이중 연결 리스트, 원형 연결 리스트가 존재.. 2020. 9. 14. 자료구조 - 스택 1. Stack! 데이터를 제한적으로 접근할 수 있는 구조 - 한쪽 끝에서만 자료를 넣거나 뺄수 있음. 가장 나중에 쌓은 데이터를 가장 먼저 뺄수 있다. (LIFO) 큐가 프로세스에서 대기하도록 만든 데이터라면 스택은 실제 프로그램에서 recursive한 처리를 할때 많이 사용된다. 그렇다면 스택은 어떤 구조를 나타내는지 살펴보자. 2. 본론 1) 스택 구조 스택은 LIFO(Last in, First Out) 데이터 관리 방식을 따름. 대표적으로는 컴퓨터 내부의 프로세스 구조의 함수 동작 방식을 나타낼수 있다. 주요 기능으로는 pop, push가 있다. 언어의 뜻대로 pop은 스택에서 꺼내는 것이고, push는 스택에 넣는 기능이다. 하노이 탑 같은 경우가 될 것 같다. 2) 스택구조와 프로세스의 스택 .. 2020. 9. 14. 자료구조 - 큐(Queue) 1. 큐의 구조 큐는 FIFO, LILO 구조 혹은 선입선출의 개념을 가지고 있다. 예를 들어 줄서는 개념과 같은데 먼저 줄을 선 사람이 먼저 나가고 늦게 들어온 사람은 늦게 나가는 것과 같은 개념이다. 2. 본론 1) 큐의 용어 1) enqueue 큐에 데이터를 넣는 기능 2) dequeue 큐에서 데이터를 빼내는 기능 2) 특수한 형태의 큐 - 원형 큐(링버퍼) 큐를 통해서 데이터를 저장할때 dequeue를 해주게 되면 데이터를 한칸씩 앞으로 이동시켜야 하는 단점이 있다. 그렇지 않다면 큐의 정해진 사이즈 때문에 out of index 에러가 생길것이다. 이를 방지하기 위한 원형 큐가 존재한다. 논리적으로 따지자면 큐의 맨 끝과 맨 앞으로 연결해 놓은것이다. front와 rear라는 포인터를 두고 데.. 2020. 9. 14. 자료구조 - 배열 1. 대표적인 자료구조중 하나 자료구조에 대해 정리를 좀 해보고자 한다. 이직시에 반드시 나오는 질문중 하나가 자료구조에 대한 설명이지 않을까? 그리고 알고리즘이나 운영체제 들도? 학과시절에 공부하긴 했지만 지금은 잊어버린것도 많고 다시 정리해가면서 공부를 하고자 한다. 일단 배열이란 것은 무엇인가? 데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성한 데이터의 구조 파이썬은 리스트타입이 배열의 기능을 하고있음. 여기서 자료구조는 효율화, 추상화, 재사용화가 가능하다. 효율화는 상황에 맞는 자료구조를 사용함으로써 시간적 공간적 효율성을 증대시킬수 있다는 점이다. 추상화는 복잡한 자료, 모듈, 시스템으로부터 핵심적인 개념, 기능을 간추려 낸다는 점이다. 그래서 딱히 언어에 종속적이지 않고 개념을 알면 .. 2020. 9. 14. 이전 1 다음