[Computer Science]
[자료구조] 연결리스트(1) : C언어
리스트(list) 자료를 정리하는 방법 중에 하나 리스트의 기본 연산 1. 삽입 연산 리스트에 새로운 항목을 추가 2. 삭제 연산 리스트에서 항목을 삭제 3. 탐색 연산 리스트에서 특정한 항목을 검색 리스트의 구현 방법 리스트는 배열과 연결리스트를 이용하여 구현 가능 장점 단점 배열 간단하게 구현가능, 크기가 고정 1. 데이터를 중간에 삽입할 경우에 데이터들이 이동해야함 2. 데이터를 삽입할 경우 공간이 부족하면 더 큰 배열을 만들어서 데이터를 기존 복사하고 새로운 데이터를 추가 => cpu시간을 낭비시킴 연결 리스트 1. 중간에 쉽게 삽입/삭제 가능 2. 리스트의 크기가 제한되지 않음 임의의 항목에 접근할 경우 배열보다 시간이 오래 걸림 구조체로 정의한 리스트 #define MAX_LIST_SIZE 1..
[C/C++] const의 위치에 따른 의미 정리
const란? 값을 변경하지 못하도록 상수화 시키는 명령어입니다. C++에서 const명령의 위치에 따른 의미를 정리하겠습니다. 1. 변수 앞 const const int num = 10; // 변수 num을 상수화 2. *앞 const const int *ptr = &value; // 포인터가 가르치키는 값(실체)가 불변 const int *ptr = &value; 이렇게 적용이 된다. &value의 값이 불변이 되어버렸기 때문에 -> *ptr = 10 ( X ) 하지만 포인터 변수는 자유롭기 때문에 새로운 변수를 포인터에 연결하는 ptr = &value2는 가능하다. 3. *뒤 const int * const ptr = &value; // 포인터 변수가 불변 int * const ptr = &valu..
2개 이상의 class 파일 분할
직전 글에서 C++ 파일 분할하는 방법을 알아봤습니다. 이번엔 서로 연관 있는 2개의 클래스를 분할하는 방법을 알아보겠습니다. 이전 글의 응용이고 특정 조건만 추가해 주면 됩니다. https://hgk5722.tistory.com/27 C++ 파일 분할(visual studio)microsoft visual studio를 이용한 파일 분할 방법을 알아보겠다. 파일 분할이란 긴 코드를 작게 나누어 여러 개의 파일로 저장하는 방법이다. 어떠한 프로그램이건 하나의 파일에 모든 것을 담진 않는hgk5722.tistory.com 이번에도 visual studio 2022 버전을 사용합니다. 분할 하기전 원형 코드 #include using namespace std; class FruitSeller { privat..
C++ 파일 분할(visual studio)
microsoft visual studio를 이용한 파일 분할 방법을 알아보겠다. 파일 분할이란 긴 코드를 작게 나누어 여러 개의 파일로 저장하는 방법이다. 어떠한 프로그램이건 하나의 파일에 모든 것을 담진 않는다. C++도 클래스 별로 헤더 파일과 소스파일을 생성해서 클래스의 선언과 정의를 분리한다. 파일 분할을 하는 이유는 다음과 같다. 긴 코드를 작은 단위로 나눠 가독성을 높게한다. 선언부와 정의부를 분리시켜 코드의 재사용을 가능하게 한다. 공부한 책의 예제를 사진 캡처와 함께 사용법을 공유하겠다. 분할을 하기 전 코드 전체를 보도록 하자. #include #include using namespace std; namespace CAR_CONST { enum { ID_LEN = 20, MAX_SPD ..
누가 범인일까? - 이산 수학 과제
discrete Mathematics with applications - susanna s.epp. fifth edition http://book.naver.com/bookdb/book_detail.naver?bid=14434970 Discrete Mathematics with Applications, Metric EditionDISCRETE MATHEMATICS WITH APPLICATIONS, 5th Edition, Metric Edition explains complex, abstract concepts with clarity and precision and provides a strong foundation for computer science and upper-level mathematics c..