전체 글
[자료구조] 연결리스트(Linked List)란?
개요 Linked List란 모든 노드들이 자신의 값과 나의 다음 값을 pointing하는 자료구조이다. 왜 사용하는가? 해당 자료구조를 왜 사용하는지 간단한 예시를 들겠다. 예를 들어, 이러한 모양의 배열이 있는데 현재 나는 4와 6 사이에 5라는 값을 넣고 싶다. 이럴땐 어떻게 해야할까? 사진 2와 같이 6과 8을 오른쪽으로 밀어서 공간을 확보한다. 공간을 확보한 후 5를 insert 한다. 얼핏 보면 이게 당연한 것처럼 느껴질 수 있다. 하지만 해당 방법은 굉장히 비효율적이다. 이러한 번거로움을 해결하기 위한 자료구조가 Linked List 즉 연결리스트이다. Linked List의 구조 Linked List는 하나의 메모리 공간(Node)에 데이터와 포인터를 저장한다. 그렇다면 이 자료구조를 사용..
[자료구조] C언어 Pointer에 대하여
개요 알고리즘은 선행 지식으로 자료구조에 대한 이해를 필요로 한다. 자료구조의 경우엔 포인터에 대한 사전 지식이 있다면 이해하기 좋다. 본 글에서는 C언어의 포인터 변수에 대한 아주 기초적인 내용을 다룬다. Pointer란? C언어에서 포인터는 '메모리의 주소를 저장하는 변수' 이다. '&' operator는 어떤 변수의 주소를 받아올 수 있다. '*' operator는 참조한 값을 다시 역으로 따라간다. 포인터는 기본적으로 4byte를 할당받는다. 이렇게 설명하면 어려울 수 있으니 예제코드와 함께 설명하겠다. #include int main() { char a = 'A'; char* pointer = &a; printf("%c %p\n", a, pointer); printf("%p %p\n", &a, ..