자료구조

이진탐색트리에 노드를 삽입/삭제/중위순회로 출력하는 코드입니다! 중요하게 봐야 할 곳은, 1. 아직 트리가 만들어지지 않았을 때 노드를 삽입하는 경우 2. 트리 삭제 시 노드를 찾았는데, 1.자식이 0개라면 node를 지운 후 해당 node를 nullpointer로 바꿔준다. 2.왼쪽 자식만 있다면 왼쪽 자식을 해당 노드로 바꿔준 후 찾았던 걸 삭제한다. 3.오른쪽 자식만 있다면 오른쪽 자식을 해당 노드로 바꿔준 후 찾았던 걸 삭제한다. 4.왼쪽 오른쪽 자식 둘 다 있다면 왼쪽 노드 중에서 가장 큰 값을 찾아서 그 노드로 바꿔준다. 3. 노드의 왼쪽 자식/오른쪽 자식으로 이동할 때 pointer 값!! (null pointer도 잘 생각해주자) main.cpp 파일 #include "binarysearc..
뭐든 기초를 확고히 하자. 자료구조가 바로 그 기초의 근간!! 알고리즘 실력을 늘릴 수 있을 것 같은 과목이다.. 프로그래밍 언어를 접하고 코드를 기술하기 이전에 꼭 알고 넘어가야 하는 기초가 있다. 시스템 생명주기 요구사항 모든 경우에 대한 입력과 출력을 정밀하게 기술한다. 분석 문제를 작은 단위로 나누어 상향식/하향식 접근 방법으로 세분화한다. 설계 objects와 operations를 나누는 관점에서 시스템에 접근한다. 다르게 표현하면 objects는 과목, 학생, 교수이고 operations는 삽입, 삭제 등이 될 수 있다. 설계 시 구현(implementation)을 위한 결정 사항들, 예를 들어 트리를 쓸지, 전화번호 데이터도 포함시킬지 등은 가능한 뒤로 미룸으로써 선택한 언어의 범주 내에서 ..
class와 queue 개념을 활용하여 카드를 정렬하는 알고리즘 학교 과제로 해결했던 카드 정렬 알고리즘에서 원형큐를 잘 이해해버린 것 같다! 평소 python에서 쓰던 .popleft() .append .pop(3) 이런 함수들을 내가 구현해버린 기분.. 😋 queue.h #include using namespace std; class CircularQueue { private: int queue[6] = {}; int front; //front = 0 으로 초기화 int rear; //rear는 꼬리로 배열이 차있는 영역까지라고 생각하면 된다 int maxQueueSize; public: CircularQueue(int); void isEmpty(); void isFull(); void enQueue..
jeonyoungseo
'자료구조' 태그의 글 목록