Unborn 8.0 Yellow Pointer
본문 바로가기

ㅃㄴㅇㅅㅅㅎㅇㅅ143

[42seoul/GNL] get_next_line 프로젝트 소개 보호되어 있는 글 입니다. 2022. 5. 20.
[DS/자료구조] 연결 리스트 - 다항식 계산 구현 다항식 계산 구현 #include "../include/polynomial.h" LinkedList*multiply(LinkedList *aList, LinkedList *bList) { intalen = getPolynomialListLength(aList) - 1; intblen; LinkedList*newList = createPolynomialList(); ListNode*newNode = calloc(1, sizeof(ListNode)); ListNode*aHeadNode = aList->headerNode.pRLink; ListNode*bHeadNode; while(alen--) { blen = getPolynomialListLength(bList) - 1; bHeadNode = bList->.. 2022. 4. 22.
[DS/자료구조] 연결 리스트 - 이중 연결 리스트(Doubly Linked List) 이중 연결 리스트(Doubly Linked List) 이중 연결 리스트는 각 노드가 노드와 노드가 서로 연결되어있다. 단순 연결 리스트와 다르게 이전 노드와 다음 노드로 구성되어있다. 선행 노드에 접근하기 위해 전체 리스트를 순회해야 하는 문제를 보완하기 위해 이중 연결 리스트가 있다. 좀 더 확대된 개념으로, 다중 연결 리스트(Multi Linked List)라는 말도 쓰인다. 특징 양쪽 방향으로 쉰회할 수 있도록 노드가 연결되어 있다. 두 개의 링크필드와 한 개의 데이터 필드로 구성되어있다. 장점이 크므로 이중 연결 리스트를 많이 사용한다. 장점과 단점 장점 연속적인 탐색이 이루어져야 하는 경우 탐색 시간을 줄일 수 있다. 삽입이나 삭제 연산이 빠르다.(접근 시작 위치 설정에 따라) 단점 포인터를 위.. 2022. 4. 21.
[DS/자료구조] 연결 리스트 - 원형 연결 리스트(Circular Linked List) 원형 연결 리스트(Circular Linked List) 원형 연결 리스트는 일반적인 연결 리스트에 마지막 노드와 처음 노드를 연결시켜 원형으로 만든 구조이다. 원형 연결 리스트에서 head는 마지막 노드를 가리키게 된다. 이렇게 되면 head의 첫 노드와 마지막 노드에 접근이 쉬워진다. 특징 헤드 노드의 link는 마지막 노드를 가리킨다. 헤드 노드의 link의 link는 첫 번째 노드가 된다. 리스트의 마지막에 노드를 삽입, 삭제가 용이해진다. 현재 노드에서 이전 노드를 접근하려면 첫 번째 노드부터 다시 접근해야 한다. 장점과 단점 장점 한 노드에서 다른 모든 노드로의 접근이 가능해 노드의 삽입, 실제가 단순해진다. 반복적인 순회에서 연결 리스트의 끝을 체크해야 할 필요가 없다. 구조상 끝이 존재하지.. 2022. 4. 21.
[42Seoul/ft_printf] 프로젝트 구현 1. 프로젝트 구조 mandatory part만 진행했으며 전체적인 구조는 아래와 같다. 📦ft_printf ┣ 📂includes ┃ ┗ 📜ft_printf.h ┣ 📂libft ┃ ┣ 📜ft_strlen.c ┃ ┣ 📜libft.h ┃ ┗ 📜Makefile ┣ 📂srcs ┃ ┣ 📜ft_checkbase.c ┃ ┣ 📜ft_formats.c ┃ ┣ 📜ft_printbase.c ┃ ┣ 📜ft_printf.c ┃ ┗ 📜ft_printstr.c ┣ 📜Makefile 2. 프로젝트 구현 libft 사용함수는 ft_strlen만 사용했고 사용하는 함수에 맞게 libft.h와 Makefile을 수정했다. - ft_printf.h #ifndef FT_PRINTF_H # define FT_PRINTF_H # include .. 2022. 4. 19.
[42Seoul/ft_printf] 서식지정자 (format specifier) 1. 서식지 정자 printf, sprintf, fprintf에서 사용하는 서식 지정자(format specifier)는 다양한 활용법이 있다. %[플래그][폭][. 정밀도][길이] 서식지정자 printf는 위와 같이 서식지정자를 조합해서 사용할 수 있다. 다양한 서식지정자가 있으나, ft_printf에서 구현할 서식 지정자는 c, s, d, i, u, p, x, X, % 이다. c : 문자, (va_arg type, int) s : 문자열, (va_arg type, char *) d, i : 부호 있는 10진 정수, (va_arg type, int) u : 부호 없는 10진 정수, (va_arg type, unsigned int) p : 포인터 메모리 주소, (va_arg type unsigned lo.. 2022. 4. 19.
[42Seoul/ft_printf] 가변인자(variable argument) 가변 인자란? 이번 ft_printf 프로젝트를 진행하면서 알아야 할 개념은 가변 인자이다. 매개변수의 개수가 정해지지 않은 함수에 들어가는 인수(argument)의 개수가 변하는 것을 가변 인자(가변 인수, variable argument)라고 한다. - 가변 인자 작성 방법 예 반환값 자료형함수이름 (자료형 고정매개변수, ...) { 코드 } 함수에서 가변 인자를 정의할 때는 고정 매개변수가 한 개 이상 있어야 하며 고정 매개변수 뒤에 ... 을 붙여 매개변수의 개수가 정해지지 않았다는 표시를 해준다. 또한 가변 인자 뒤에는 다른 매개변수를 저장할 수 없다. ft_printf의 경우 아래와 같이 쓰일 수 있다. #include #include intft_printf(const char *format,.. 2022. 4. 18.
[42Seoul/ft_printf] 프로젝트 소개 보호되어 있는 글 입니다. 2022. 4. 18.
[DS/자료구조] 리스트 - 배열 리스트와 연결 리스트 배열 리스트와 연결 리스트 리스트(List) 리스트는 자료를 순서대로 저장하는 자료구조이다. 리스트를 구현하는 방법에는 배열을 이용하거나 포인터를 이용하여 리스트를 구현할 수 있다. 기본적인 기능으로는 리스트 생성, 원소 추가, 원소 반환, 원소 제거(리스트 초기화), 리스트 삭제로 볼 수 있다. C언어의 경우 리스트를 지원하지 않는 대신 배열을 지원한다. 즉, 리스트를 사용하려면 직접 만들거나 라이브러리를 사용해야 한다. - 리스트의 대표 기능 엘리먼트를 추가/삭제하는 기능 리스트에 데이터가 있는지 체크하는 기능 모든 데이터에 접근할 수 있는 기능 배열 리스트(ArrayList) 배열은 인덱스와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다. 일반적으로 배열에는 같은 종류의 데이터들이 순차적.. 2022. 4. 17.
728x90
반응형