본문 바로가기
반응형

분류 전체보기155

C++ LinkedList 만들기 (version 4 - Doubly LinkedList) C++로 Doubly LinkedList 만들기 https://suldenlion.tistory.com/97 (C로 자료구조 구현하기) LinkedList 만들기 (version 2 - Doubly LinkedList) C로 LinkedList 구현하기 Doubly LinkedList를 C로 구현해 보겠다. Doubly LinkedList는 Singly LinkedList의 단점을 보완해 만든 LinkedList로, Library에 있는 LinkedList는 Doubly LinkedList로써 구현되어 있다. Singly LinkedList suldenlion.tistory.com 위의 C로 Doubly LinkedLIst 만들기의 코드를 참고하여 C++ Doubly LinkedList를 만들어 보겠다... 2023. 3. 31.
C LinkedList 만들기 (version 2 - Doubly LinkedList) C로 LinkedList 구현하기 Doubly LinkedList를 C로 구현해 보겠다. Doubly LinkedList는 Singly LinkedList의 단점을 보완해 만든 LinkedList로, Library에 있는 LinkedList는 Doubly LinkedList로써 구현되어 있다. Singly LinkedList의 단점으로는 크게 두가지가 있는데, add로 데이터를 추가할때, 맨 끝 노드에 값을 추가하기 위해 매번 traverse를 해줘야 한다는 점과 LinkedList를 traverse 하고자 할 때 정방향으로밖에 못한다는 점이 있다.(역순 traverse 불가) Doubly LinkedList나 Singly LinkedList나 전체적인 로직은 비슷하지만 몇가지 차이점이 있으니 한번 살펴.. 2023. 3. 30.
진수 변환 정리 & 진수 변환 트릭 프로그램 며칠전 연구실 동생 아누삭이 진수 변환하는 법을 물어봐서 알려준 기억이 있는데, 이를 좀 구체적으로 정리해보고 예전에 만든 진수 변환 트릭 프로그램도 소개해보도록 하겠다. 우리가 사용하는 수의 체계인 10진법(Decimal)은 컴퓨터 내에서 2진법(Binary), 8진법(Octal), 16진법(Hexadecimal) 등으로 사용된다. 우선, 위와 같은 진법들의 사용 이유에 대해 간단히 알아보자면, 컴퓨터는 1과 0의 두 가지 상태밖에 표현하지 못한다. 하지만 이런 단순한 연산 구조를 가지고 필요한 모든 정보를 함축하고 모든 연산을 해낼 수 있다. 10진수의 모든 수를 2진수로 표현할 수 있으며 이것은 전기 신호가 켜지고 꺼지는 두 가지 조합을 통해서 우리가 사용하는 모든 수를 표현할 수 있는 것이다. 즉.. 2023. 3. 30.
STL Sorting 실험 및 정리 C++ 다양한 타입의 collection들의 정렬은 어떤 식으로 되는건지 직접해보고, 몇 가지 내용을 정리해 볼 것이다. 실험 1) 배열에 무작위 int 값 넣고 sorting #include using namespace std; #include #include int compareInt(const void *x, const void *y) // 값 읽기만 { int *p = (int *)x; int *q = (int *)y; return *p - *q; } void main() { int x[10]; srand((int)time(NULL)); //seeding - time, process id for (int i = 0; i < 10; i++) { x[i] = rand() % 100; // pseudo.. 2023. 3. 29.
Default Argument (디폴트 인수) C++의 Default Argument에 대해서 알아보겠다. Default argument란 디폴트 인수나 부재 인수라고 하며, 기본값이 미리 정의되어 있는 인수를 의미한다. 함수를 호출할때, 인수를 전달하지 않으면, 해당 함수는 자동으로 미리 정의해둔 디폴트 인수 값을 사용하게 된다. 하지만 인수를 전달하여 함수를 호출하면 Default argument가 아닌 전달받은 argument로 함수를 호출할 수 있다. 즉, 미리 지정한 argument를 쓸거면 쓰고 말거면 말라는 식이다. Default argument를 사용해 보자. #include using namespace std; int add(int a, int b) { return a + b; } int add(int a, int b, int c) .. 2023. 3. 28.
Function Pointer (함수 포인터) C와 C++의 Function Pointer 제도에 대해서 무엇인지 알아보겠다. Function Pointer란, 함수 포인터 즉, 변수가 아닌 함수를 가리키는 포인터를 뜻한다. Function Pointer를 쓰는 이유로는 콜백 함수(Callback function = 어떤 이벤트에 의해 호출되어지는 함수, 다른 함수에 매개변수로 넘겨진 함수)를 구현할때 사용된다. 간단한 덧셈, 뺄셈, 곱셈, 나눗셈을 하고 싶을 때, 함수를 필요에 따라 그때 그때 불러오는 프로그램을 짜보며 자세히 보겠다. #include void add(int x, int y) { printf("%d + %d = %d\n", x, y, x+y); } void subtract(int x, int y) { printf("%d - %d =.. 2023. 3. 28.
반응형