컴퓨터공학51 C++ 공부 섹션8 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션8 드디어 손꼽아 기다리던 객체지향에 대하여 공부할 수 있었다. 먼저 명품 C++ 에서 3단원인 객체지향을 읽어본후 강의 까지 듣느라 시간이 좀 걸렸다. 내일도 진도를 나가기 보단 복습과 LearnCPP를 읽고 예제문제를 풀어볼 생각이다. ◆ class에서 constructor를 만들때 다음 사진과 같이 default값을 지정해줄 수 있었다. ◆ 또한 초기화를 할때 constructor를 사용할때 값의 대입이 아닌, 멤버 초기화 목록을 사용할 수 있었다. ◆ 위임생성자는 다른 생성자.. CS/C++ 2022. 1. 16. C++ 공부 섹션7 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션7 이번단원에서 가장 흥미로웠던 주제는 함수의 오버로딩이다. 같은 함수명임에도 불구하고 다른 기능으로 사용할수 있다니. 정말 편리한 것이 아닌가 싶다!! ◆ 참조형을 반환값으로 사용하는 예를 볼 수 잇었다. 위의 사진에서는 반환값을 참조형으로 하여 값을 수정하는 예를 보이고 있다. 우선 메모리를 main함수 안에서 정의하여 get함수가 실행된후 stack에서 사라지는 오류를 피한다. 또한 get에서 my_array[ix]의 별명을 반환하고 있는것이다. 그 별명에 1024를 대입하니 원.. CS/C++ 2022. 1. 16. C++ 공부 섹션6 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션6 초중반부 까지의 포인터와 배열은 어렵지 않았는대 뒤에 for_each문 나오는 부분부터 조금 이해가 안갔다. 생소해서 사용법이 익숙하지 않은 것 같다. 내일은 진도를 빼지말고 섹션6의 후반부를 조금더 복습해야 겠다. ◆ enum을 배열에서 활용하는 방식이 독특하여 캡쳐해 두었다. enum 마지막 element로 NUM_STUDENTS가 있는대 이를 전체 학생수로 활용할 수 있었다. main에서 배열을 이를 활용하여 선언하는 것 을 볼수 있었다. ◆ 뭐 당연한거기는 한대 arra.. CS/C++ 2022. 1. 16. C++ 공부 섹션4 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션4 ◆ 주로 자료형에 관한 수업을 들었다. string에 대하여 처음 공부하게 되었으며, 신기한 auto형 또한 알게되었다. ◆ 전역변수 내용 자체야 어렵지 않으니 기억하고 있었다. 중요한것은 global scope 연산자 이다. 가령 위의 사진처럼 main함수 안에서 같은 변수명의 지역변수와 전역 변수가 둘다 사용된다면, int value = 1; 이후의 행부터는 value가 지역변수이다. 하지만 전역 변수를 사용하기 위해 변수 앞에 ::를 붙혀주면 이는 전역변수를 사용하는 것 이다.. CS/C++ 2022. 1. 16. C++ 공부 섹션1 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션1 ◆ 섹션1 의 내용은 몇가지를 제외하고는 C와 거의 동일한 내용이라서 크게 어려움 없이 1.5배속으로 빠르게 들었다. ◆ 기억남는 것 중 하나가 바로 initialization과 assignment의 구분이였다. 사실 C를 공부했기에 둘의 개념을 모르지는 않았다. 다만 둘은 약간은 혼용하여 사용하고 있었던 스스로를 반성할 수 있었다. 초기화의 경우 변수가 생성됨과 동시에 값이 바로 들어가는 것 이고, 대입의 경우에는 선언된 변수에 추후 값을 넣어주는 것 이다. 둘간의 차이가 없어.. CS/C++ 2022. 1. 16. C++ 공부 섹션0 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. ◆ 이전 C 공부의 과정 어느덧 C언어를 처음 공부시작한지 6개월쯤 되가는것 같다. 짧은 시간안에 몰아처 공부하는쪽이 효율면에서 습득하기에 좋다 생각하기에 C언어또한 따배씨 강좌와 책을 통해 딱 31일 동안 완강하였고, 이론서 한권을 병행하여 부족한 부분을 읽어가며 C에 대한 전반적인 이해를 했었다. 이후 학교 수업에서 컴퓨터공학과의 전공수업인 시스탬프로그래밍(리눅스) 를 들으며 리눅스 환경에서 GCC를 사용해 가면서 C에 대한 이해를 한층 높혀갔다. 시스템콜에 관해 공부했으며, process.. CS/C++ 2022. 1. 15. [자료구조] C++로 쉽게 풀어쓴 자료구조 : 11장, 그래프 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 11장. 그래프(Graph) Graph의 ADT " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 데이터: 정점의 집합과 간선의 집합 연산: - creat(): 그래프를 생성한다. - isEmpty(): 그래프가 비어있는지 확인한다. - insertVertex(v): 그래프에 정점 v를 삽입한다. - insertEdge(u, v): 그래프에 간선 (u, v)를 삽입한다. - deleteVertex(v): 그래프의 정점 v를 삭제한다. - deleteDdge(u, v): 그래프의 간선(u, v)를 삭제한다. - adjacent(v): 정점 v에 인접한 모든 정점의 집합을 반.. CS/Data Structure (2021-1) 2022. 1. 15. [자료구조] C++로 쉽게 풀어쓴 자료구조 : 10장, 힙 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 10장. 힙(Heap) " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 힙은 부모 노드의 키 값이 자식 노드의 키 값보다 큰(or작은) 이진트리 를 말한다. A가 B의 부모 노드라고 가정하면, key(A) >= key(B) 인경우가 최대 힙이 되며, key(A) HTML 삽입 미리보기할 수 없는 소스 insert(key) heapSize HTML 삽입 미리보기할 수 없는 소스 void heapSort(int a[], int n) { MaxHeap h; for (int i = 0; i = 0.. CS/Data Structure (2021-1) 2022. 1. 15. [자료구조] C++로 쉽게 풀어쓴 자료구조 프로그래밍 프로젝트 9-1 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 프로그래밍 프로젝트 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 1) 9.2절에서 이진 탐색 트리의 탐색 연산을 트리 클래스에서 구현했고 노드 클래스에서도 구현해 보았다. 트리의 각 노드들을 모두 자신을 루트로 하는 서브트리를 대표한다고 보면 많은 트리의 연산들을 노드에서 구현할 수 있다. 8장의 프로그램 8.1과 프로그램 8.2를 수정하여 BinaryTree 클래스에서 구현했던 다음 멤버함수들을 BinaryNode 클래스에서 구현해라. void BinaryNode::inorder(); void BinaryNode::preorder(); void BinaryNode::po.. CS/Data Structure (2021-1) 2022. 1. 15. C++로 쉽게 풀어쓴 자료구조 : 9장, 이진 탐색 트리 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 9장. 이진 탐색 트리 이진 탐색 트리는 이진트리 기반의 탐색을 위한 자료구조로 효율적인 탐색 작업을 위한 구조이다. 1) 모든 노드는 유일한 키를 갖는다. 2) 왼쪽 서브트리의 키들은 루트의 키보다 작다. 3) 오른쪽 서브트리의 키들은 루트의 티보다 크다. 4) 왼쪽과 오른쪽 서브트리도 이진 탐색 트리이다. 정의 9.1 245페이지 Binary Search Tree ADT " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 데이터: Binary Search Tree의 특성을 만족하는 이진트리: 어떤 node x의 왼쪽 서브트리의 key들은 x의 key보다 작고, 오른쪽의 .. CS/Data Structure (2021-1) 2022. 1. 15. C++로 쉽게 풀어쓴 자료구조 프로그래밍 프로젝트 8 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 프로그래밍 프로젝트 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 (1) 이진트리가 완전 이진트리인지를 검사하는 연산 (2) 임의의 node의 레벨을 구하는 연산을 구현한다, 만약 node가 트리 안에 있지 않으면 0을 반환한다. (3) 이진트리의 모든 노드에서 왼쪽 서브트리와 오른쪽 서브트리의 높이의 차이가 2보다 작으면 이 트리를 균형잡혀있다라고 한다. 현재 이진트리가 균형 잡혀 있는지를 검사하는 다음 연산을 구현한다. (4) 이진트리에서 경로의 길이를 루트에서부터 모든 자식 노드까지의 경로의 길이의 합이라고 하자. 경로의 길이를 구하는 연산을 구현한다 (5) 이진트리를.. CS/Data Structure (2021-1) 2022. 1. 14. [자료구조] C++로 쉽게 풀어쓴 자료구조 : 7장, 순환 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 7장. 순환 이번장은 재귀, 순환에 대하여 배웠다. 사실 재귀는 친숙하면서도 새로운 개념이다. 이전에도 재귀를 사용해 미로 찾기, 하노이탑 등등 몇가지 문제들을 접한적이 있는데, 이번시간에도 다시 점검한다는생각으로 배웠다. 간단하게 미로찾기 코드정도만 올려야 겠다. 교제와 다른 방식으로 구현한 미로찾기 #include #include using namespace std; const int N = 8; const int PATHWAY = 0; const int WALL = 1; const int BLOCKED = 2; const int PATH = 3; int maze[N][N] = { {0,0,0,0,.. CS/Data Structure (2021-1) 2022. 1. 14. 이전 1 2 3 4 5 다음