728x90 CS/DataStructure5 [Data Structure] Vector 와 List의 차이 Vector 연속적인 메모리 공간에 저장 동적임 삽입 삭제가 중간에서 발생할 시 원소를 옮겨줘야함 접근 O(1) 원소 변경시 iterator 변화 선할당이 발생(size와 capacity 값이 다른 이유) 메모리 할당은 미리 하기 때문에 LIST 보다 빠름(push_back은 list 보다 빠름) List Doubly Linked List로 구현 원소 접근이 느림O(n) list 중간에 삽입 삭제하는 것은 vector 보다 빠름 원소가 변경되도 iterator 동일 2023. 4. 10. [Data Structure] List 특징 Linked List로 구현 원소 접근 O(n) 원소가 변견되어도 iterator 동일 주의 아래 코드는 단방향 Linked List로 구현되어 있음 #include #include using namespace std; template class Node{ private: T data; Node*next; public: Node(T _data){ next = NULL; data = _data; } ~Node(){ if(next!=NULL){ delete next; } } T getData(){ return data; } Node*getNext(){ return next; } void setNext(Node*_next){ next = _next; } void setData(T _data){ data .. 2023. 4. 10. [Data Structure] Stack 특징 LIFO (후입선출) activision record 와 stack frame을 갖고 있음 activision record : 이전 stack frame의 pointer와 복귀주소 용례 함수의 CallStack 연산자 후위표기법 장점 구조가 단순 데이터 저장 읽기가 쉬움 단점 데이터 최대 개수를 미리 정해야함 저장공간의 낭비가 발생할 수 있음 삽입 삭제가 비효율적 #include #include using namespace std; template class Stack{ private: int size; T*stackArr; public: Stack(){ size = 0; } ~Stack(){ if(size!=0){ delete stackArr; } } int push(T _tmp){ if(size.. 2023. 4. 10. [DataStructure] Stack과 Queue 의 차이 Stack LIFO : 나중에 들어간 자료가 먼저 나옴 Queue FIFO : 먼저 들어간 자료가 먼저 나옴 2023. 4. 10. 이전 1 2 다음