본문 바로가기

자료구조3

[자료구조] 3. 연결리스트 선형 리스트 리스트: 데이터를 순서대로 나열한 자료구조 가장 단순한 구조를 가진 리스트 = 선형리스트, 연결리스트 각 노드가 데이터와 함께 다음 노드를 가리키는 포인터를 가지고 있음 배열의 문제점 쌓이는 데이터의 크기를 미리 알아야 함 데이터의 삽입, 삭제에 따라 데이터를 모두 옮겨야하므로 효율이 좋지 않음 포인터로 연결리스트 만들기 연결리스트가 비어있는지 확인하는 법: head == NULL(head가 비었으면 리스트가 비어있음) class Node { public: int data; node* next; Node(int x, node* next = NULL) : data(x) , next(next){} }; class List { private: Node* head; Node* crnt; 노드 1개인.. 2023. 2. 14.
[자료구조] 2. 스택(stack), 큐(queue) 1. 스택 데이터를일시적으로 저장하기 위한 자료구조 후입선출(LIFO, Last In First Out) push: 데이터를 넣음 pop: 데이터를 꺼냄 top, bottom 함수 호출, 실행 시 스택 사용 스택 만들기 공부한 책은 C언어 기반이라 구조체로 구현했지만 우린 C++에서 클래스를 배웠으므로 C++로 다시 만들어보았다 #include using namespace std; class stack { private: int max;//스택 용량 int ptr;//스택 데이터의 개수 int* stk;//스택 데이터를 넣을 배열(동적할당) public: stack(int max) : ptr(0), max(max) {//초기화 stk = new int[max]; } ~stack() { delete[] s.. 2023. 1. 25.
[자료구조] 1. 배열(Array) 배열의 정의 배열은 같은 자료형의 변수로 이루어진 요소가 직선모양으로 줄지어 있는 자료구조이다. int arr[5]; 위와 같이 선언하면 길이가 5인 int형 배열이라는 의미 연산자 [ ]를 이용해 배열의 요소들에 접근한다. 첫번째 요소는 arr[0], 마지막 요소는 arr[n-1]이다. 또한 배열의 요소는 일반 변수와 성질이 같다. 길이가 n인 Type형 배열의 자료형은 Type[n]으로 나타낸다. 위 배열의 자료형은 int[5]형. 배열을 초기화 할 땐 { }안에 요소들을 쉼표로 구분해주면 된다. #include int main(){ int a[5] = {1, 2, 3, 4, 5};//배열 초기화 return 0; } 배열의 요소 개수를 구할 땐 sizeof(arr)/sizeof(arr[0])을 해주.. 2023. 1. 14.