[리스트] 이중 연결 리스트의 구현
🔍 이중 연결리스트(Doubly Linkedlist)란? 이중 연결리스트의 모습 이중 연결리스트는 말 그대로 노드 간의 연결이 이중으로 되어있는 리스트 자료구조이다. 노드에는 다음 노드의 정보뿐만 아니라 이전 노드를 가르키고 있는 포인터도 가지고있다. 여태까지 연결리스트의 2가지 버젼 (단순 연결리스트, 원형 연결리스트)에 대해 알아보았으니 이번...
🔍 이중 연결리스트(Doubly Linkedlist)란? 이중 연결리스트의 모습 이중 연결리스트는 말 그대로 노드 간의 연결이 이중으로 되어있는 리스트 자료구조이다. 노드에는 다음 노드의 정보뿐만 아니라 이전 노드를 가르키고 있는 포인터도 가지고있다. 여태까지 연결리스트의 2가지 버젼 (단순 연결리스트, 원형 연결리스트)에 대해 알아보았으니 이번...
🔍 원형 연결리스트(Circular linkedlist)란? 원형 연결리스트 지난 시간에 알아본 단순 연결리스트는 리스트에 끝에 도달하면 뒤로 되돌아갈 수 없다는 단점을 가지고 있다. 이를 개선하여, 리스트에 끝을 다시 리스트의 맨 앞과 연결하는 형태로 만든 리스트를 원형 연결리스트라고 한다. 잘 생각해보면 원형 큐와 모습이 비슷하다. 어떤 데이...
iOS의 미리알림 앱 🔍 리스트란? 우리는 일상생활에서 리스트 자료구조를 굉장히 많이 접한다. 당장 핸드폰의 전화번호부를 열어보면 알 수 있다. 전화번호부 앱에는 연락처들이 일렬로 저장된다. 또 다른 예시로는 To-Do 리스트 (할 일 리스트)가 있다. 원하는 우선순위에 따라 중요한 할 일은 위로 드래그 해서 둘 수도 있고, 이미 완료한 심부름이라면...
🔍 덱이란? 덱의 기능들 덱(Deque - Double ended queue)은 이름에서 알 수 있듯이, 큐이긴 큐인데 양쪽을 쓸 수 있는 큐이다. 뒤쪽에서 넣고, 앞쪽에서 빼는 큐의 기능에다가, 앞쪽에서 넣고, 뒤에서 빼는 추가적인 기능이 존재한다. 잘 생각해보면, 스택의 기능도 가지고 있다. 뒤쪽에 넣고 뺴는 연산은 스택의 push, pop ...
그림의 글씨가 이쁘지 않은 점 양해 부탁드립니다. 아이패드로 글씨쓰면 뭔가 안 이쁨.. 🔍원형 큐란? 선형 큐의 문제점 지난시간에 만든 선형 큐에는 하나의 문제점이 있다. Enqueue, Dequeue연산을 반복하다보면 큐의 맨 앞, 뒤 요소를 가르키는 front, rear 변수가 큐 배열의 맨 뒤에 쳐박히는다는 사실이다. 이렇게 되면 배열 ...
사람들이 줄을 서있는 사진 🏪🚶♀️🚶♂️🚶♂️🚶♀️ 큐(Queue)란? 큐는 우리 일상생활에서 많이 찾아볼 수 있다. 어떤 가게에 가서 줄을 서서 물건을 사는 경우, 사람들이 줄지어 서있는 대기열을 큐라고 한다. 먼저 온 사람이 먼저 서비스를 제공받는 시스템이다. 이를 FIFO (First in, First out; 선입선출) 방식이라고 한다...
🔎 후위표기식? 중위표기법(좌)과 후위표기법(우) 우리가 수식을 작성할 때, 두 숫자 사이에 연산자를 적어 두 숫자를 연산한다. 이처럼 연산자를 가운데에 적는 표기법을 중위표기법 (Infix) 이라한다. 반면에 컴퓨터에 중위표기법으로 수식을 입력하면 이를 후위표기식으로 변환하여 연산한다. 두 피연산자를 먼저 적고 나중에 연산자를 뒤이어 적는 방법을...
🔎 동적 크기 스택? 지난 포스트에서는 고정된 크기의 배열을 사용하는 스택 자료구조를 구현했다. 배열의 크기가 고정되어 있는 만큼 불편함도 따른다. 이번 포스트에서는 <stdlib.h> 헤더 내의 malloc(), realloc() 함수를 활용하여 배열의 크기를 조정하면서 사용하는 동적 크기 스택에 대해 알아본다. realloc() 함수?...
📚 스택이란? 책 무더기 영어단어 스택(Stack)이란 명사로는 무더기, 혹은 동사로는 쌓다, 쌓이다 라는 뜻을 가지고 있다. 자료구조에서 스택은 어떤 자료들을 쌓아놓은(stacked) 형태의 자료구조를 의미한다. 어떤 의미있는 자료들을 순서대로 받아와서 아래부터 차곡차곡 쌓고, 위에서부터 순서대로 하나씩 제거하며 자료들을 사용한다. 이를 선입후...
GitHub Page와 Jekyll로 개인 블로그를 만들어 봅시다.