본문 바로가기

자료구조13

STL 컨테이너2 - Set 1. 셋이란?셋은 중복 허용X저장된 데이터 자동 정렬 컨테이너집합이라고도 표현함셋헤더 포함해야 쓸 수 있음2. 셋에서 원소 탐색하기-----------------------------------------------------------------------------------find() 아래는 똑같은 내용인데 삼항연산자 써본 것삼항연산자 : condition ? value_if_true : value_if_false; 3. 셋의 삽입--------------------------------------------------------------------------------------------------------------------------벡터랑 똑같이 insert 함수 쓰면 됨차이는? 시간 .. 2025. 1. 24.
STL 컨테이너 1 - 벡터 STL에서 컨테이너란?데이터를 저장하는 객체ex) 벡터, 셋, 맵, 우선순위 큐코테 풀 때는 컨테이너를 잘 선택해서 풀어야 함저장된 데이터에 배열처럼 임의 접근?  -> 벡터키-값 형태 저장? -> 맵 벡터배열이랑 비슷한 컨테이너데이터를 순차적으로 저장인덱스로 원소 쉽게 접근1) 아래는 1차원 벡터 예시임------------------------------------------------------------------------------------------------ 2) 2차원 벡터도 살펴보자------------------------------------------------------------------------------------------왜 V2 초기화  때  vector>V2(Ro.. 2025. 1. 24.
[자료구조] DFS와 BFS DFS 와 BFS란?DFS (Depth-First Search)와 BFS (Breadth-First Search)는 그래프 탐색 알고리즘그래프의 모든 노드를 탐색하는 방법임두 알고리즘은 탐색의 순서와 방식에서 차이 있음시간복잡도는 DFS/ BFS 동일함-> 왜냐? 모든 조건 내 모든 노드를 검색하니까--> But, 최단거리 구할 때는 BFS가 유리함 1. DFS (Depth-First Search)- 개념: DFS는 깊이 우선 탐색한 노드에서 시작하여 다음 분기로 넘어가기 전에!!해당 분기를 따라 최대한 깊이 내려가며 탐색하는 방법 - 특징: 스택 (Stack) 사용재귀 호출을 사용할 수 있음한 경로를 끝까지 탐색한 후, 다른 경로를 탐색 2. BFS (Breadth-First Search)- 개념:BF.. 2024. 8. 2.
[자료구조] Double Linked List (C++) 오늘 아침에 새로운 스터디에서 다시 더블링크드리스트를 공부했다.이전과 다르게 private member로 Tail을 추가했다.공부한 날 다시 짜서일까? 1시간 반 정도만에 완성했다. /*1023 더블링크드리스트*/#include using namespace std;typedef struct Node{ int Data; Node* PrevNode; Node* NextNode; Node(int NewData) : Data(NewData), PrevNode(nullptr), NextNode(nullptr) {};};class DoubleLinkedList{public: DoubleLinkedList() : Head(nullptr), Tail(nullptr), Count(0) {}; ~DoubleLinkedLi.. 2023. 10. 23.
[자료구조] Single Linked List (C++) 자료구조 스터디를 옆자리 짝꿍과 다시 시작했다.매주 1개씩 구현해보기로 했다.오랜만에 다시 짜니까 2시간 정도 걸렸다.  아래는 C++로 구현한 싱글링크드리스트!private member로 Head와 Count변수를 썼다.노드 추가 시 Count++,노드 제거 시 Count--해서 노드 수를 카운트 해줬다./*23-10-15 다시 짜본 싱글링크드리스트*/#include using namespace std;typedef struct Node{ int Data; Node* NextNode; Node(int NewData) : Data(NewData), NextNode(nullptr) {};};class SingleLinkedList{public: SingleLinkedList() : Head(nullptr).. 2023. 10. 15.
[자료구조] Stack 구현 (C++) 금요일에 짰던 초밥 스택을 Push랑 Pop하는 걸 복습할 겸 아래와 같이 다시 새로 짜보았다.감자초밥에서 초밥 한 접시 주문해보세요 :) #include using namespace std;struct SushiSt { string name = "초밥이름"; int price = 1004;};// 내가 구매한 접시 푸쉬하고 팝하려고 만든 클래스임class Stack { enum { MAX_ARRAY_SIZE = 10 };public: Stack() : m_top(0) { } // m_top을 0으로 초기화 해줌 void Push(string name, int price) { m_sushiAry[m_top].name = name; m_sushiAry[m_top++].price = price; } v.. 2023. 3. 19.