본문 바로가기

C언어/자료구조3

[자료구조] 큐 ADT (C언어, 큐 개념, 배열로 큐 구현하기, 백준 18258번) 💻 오늘의 목표 : 큐 완전 정복 오늘은 큐 ADT 공부를 해볼 거예요 queue : 대기줄, 차례를 기다리는 사람이나 승용차의 열 줄 똑바로서! 할 때 다들 line을 생각하시겠지만 이건 영국식 표현이에요! 무언가를 기다릴 때 줄을 서면 먼저 온 사람이 먼저 들어가죠? 큐 ADT도 마찬가지로 대기열에 먼저 들어온 데이터가 먼저 나갑니다! FIFO(First In First Out) : 선입선출 - 먼저 들어간 데이터 먼저 나옴 큐 ADT : 먼저 들어간 데이터가 먼저 나오는 자료구조! 큐는 작업을 처리하는 요소에 부하를 주지 않으면서 처리 능력을 넘어서는 작업들도 놓치지 않고 수용할 수 있게 도와줍니다 위와 같은 특징 때문에 큐를 버퍼로 사용하는 사례가 있습니다. 버퍼(Buffer) - 데이터를 한 곳.. 2023. 3. 24.
[자료구조] 스택 ADT (스택 개념, 배열 스택 구현, 백준 10828번) 💻 오늘의 목표 : 스택 완전 정복 오늘 정리할 자료구조는 스택 ADT Stack : 무더기[더미] 영어 단어에서도 알 수 있듯이, 뭔가 쌓여있는걸 스택이라고 한다. 그러면 자료구조에서 부르는 스택은 데이터가 쌓여있는 것! 자료구조의 스택은 데이터의 입/출력에 규칙이 있다. 내가 건초더미를 한쪽에 열심히 쌓아 건초 스택을 쌓았다고 하자. 갑자기 건초가 필요해져서 내가 열심히 쌓아둔 스택 중간이나 밑바닥부터 건초를 빼기 시작하면, 내가 공들여 쌓은 스택이 그냥 무너져 내릴 것이다. 건초 더미를 잘 유지하는 방법은 건초를 쌓는 것도, 건초를 빼는 것도 맨 윗부분에서 해결하는 것! 자료구조 스택 ADT도 마찬가지로 데이터 입/출력이 항상 스택의 맨 위에서 이루어진다. LIFO (Last In-First Out.. 2023. 3. 15.
[자료구조] 리스트 ADT (개념, 단일연결리스트 Singly Linked List) 💻 오늘의 목표 : 리스트 완전 정복 리스트 공부 전 알아야할 내용 : 구조체, 포인터, 동적할당 오늘 정리할 자료구조는 리스트 코딩하면서 어쩌면 아주 자주 사용하게 될 ADT다. ADT : Abstract Data Types 추상 데이터 형식 리스트 ADT에서 꼭 알아두어야 할 자료구조 링크드 리스트 더블 링크드 리스트 환형 리스트 리스트 : 목록 형태로 이루어진 데이터 리스트가 갖춰야할 일련의 연산 : 추가, 삽입, 제거, 반환 [노드] 리스트를 이루는 개별 요소들 노드 1 [헤드 Head] 노드 2 노드 3 .... .... 노드 n [테일 Tail] 맨 앞 노드를 헤드 노드라고 부르고 맨 뒤 노드를 테일 노드라고 부른다 리스트의 길이 = 노드의 개수 연결리스트 vs 배열 배열 연결리스트 공통점 -.. 2023. 3. 10.