dev, tech/c, c++18 연결리스트 연결리스트- 구성 : 노드(node) : 실제의 정보를 담고 있는 하나의 단위 링크(link) : 인접 노드의 위치를 저장하고 있어 연결 리스트의 순서를 유지할 수 있게 하는 연결 고리 - 특징 : 동적인 자료 구조 -1. 필요에 의해 할당/해제하므로 배열처럼 여분의 공간을 마련할 필요가 없다. 그러므로, 메모리를 절약할 수 있는 이점이 있다.2. 메모리의 연속된 공간을 차지하지 않는다. 링크에 의해서 가능 - 형태 : 링크의 개수와 링크의 연결 상태에 따라, 단순 연결 리스트, 환형 연결 리스트, 이중 연결 리스트, 이중 환형 연결 리스트 등이 있다. 2006. 4. 7. <img src="http://blogimgs.naver.com/nblog/ico_scrap01.gif" class="i_scrap" width="50" height="15" alt="본문스크랩" /> 2차원 배열과 포인터 (3) 10. 2차원 포인터 이것만은 알아두자. 지금까지는 2차원 포인터의 개념에 대해서 설명하였다.지금부터는 2차원 포인터 변수를 이용하여 어떻게 값을 취하는지 중점적으로 살펴보기로 하자. 2차원 포인터에서는 다음의 문장들만 완벽하게 이해한다면 큰 무리 없이 배열 요소의 값을 취할 수 있게 된다. int arr[3][2] = { 3, 5 , 12, 54, 534, 923 };int (*p)[2];p = arr; p -----> 1*p = *(p +0) -----> 2p + i -----> 3* ( p + i ) + j -----> 4* ( * ( p + i ) + j ) -----> 5**p -----> 6 1) p 가장 중요한 것은 5번째 이다. 이것을 이애하기 위해서 다른 것이 필요하다고 해도 과언이 아니.. 2006. 4. 7. 포인터 #7(배열을 함수의 인자로 넘기는 방법) -1차원 배열을 함수의 인자로 넘기기C에서 배열의 크기는 메모리 공간을 할당할 때만 필요하지 실행시에는 배열의 크기에 대해서 컴파일러가 신경써주지 않는다. 그래서, 함수가 배열을 인자로 받을 때 그 배열이 몇 개의 요소를 가지는지는 전혀 알 방법이 없다. 해결 방법으로, 1.배열 자체에 배열의 끝을 나타내는 요소가 있으면배열의 크기를 넘길 필요가 없다. 대표적인 예로, 문자열을 다룰 때 쓰인다. char형의 배열을 구현하는데 특별히 문자열의 크기에 신경을 쓰지 않음을 알고 있을 것이다. 그것은 배열의 끝을 나타내는 0(NULL)이 문자열의 끝에 붙어 있기 때문이다. 배열에 실제 데이터를 저장하기 위해 이용할 수 있는 유연성이 감소된다. 2.함수에게 인수로서 배열의 크기를 전달하는 것이다. 함수는 2개의 .. 2006. 4. 6. 포인터 #6 (배열의 첨자) 배열의 첨자에 대한 처리는 포인터에 대한 처리로 대치된다. 예를 들어,배열명 array는 배열에 확보된 메모리 공간의 선두 번지를 의미한다. 그래서, array[4] 와 같은 것은 *(array+4)와 완전히 동일하다. 배열의 이름, 즉 메모리 공간의 선두 번지는 포인터와 동일하게 취급해도 되지만, 한 가지 주의점이 있다. 그것은배열의 이름은 포인터가 아니라는 것이다. 포인터는 주소를 저장하는 '변수'이다. 하지만,배열 이름은 주소 그 자체를 가리키는 상수에 불과하다. 그래서 이름에 따로 공간을 할당하지는 않는다.그래서, array를 포인터로 취급해서 그 값을 변경하려고 하면 에러가 발생한다. 2006. 4. 6. 이전 1 2 3 4 5 다음