|
조준회 님이 쓰신 글 :
: struct data {
: char name[20];
: struct data *next; --> next는 요기 있는데요..
: };
:
: 링크드 리스트는 자기참조 구조체를 이용해서..
: 각 노드들을 마치 체인처럼 연결하는 구조입니다.
:
: 싱글은 단방향 그러니까.. 보통 뒤쪽으로 한방향으로만 이동가능하고요.
: double은 양방향 앞뒤로 이동가능한 형태입니다.
:
: struct data {
: char name[20];
: struct data *next;
: };
:
: 이행태를 보면.. struct data라는 구조체 안에 struct data *next로 자기 자신과
: 같은형태의 포인터가 선언되어 있습니다. --> 이 포인터를 자기참조구조체라고 합니다.
:
: 이 포인터가 바로 다음 노드를 point 하게 됩니다.
:
: 실제 사용시에 다음노드를 필요로 할경우..
: current = current->next 이렇게하면..
: current에 current->next 의 포인터가 들어가므로..다음노드로 변경이 되겠지요..
:
: 1->2->3->4->NULL 이렇게 되어 있는 곳에서..current가 1을 point하고 있었다면..
: current= current->next 하면.. 2를 가리키게 됩니다.
: 한번 더 하면.. 3을 point 하게 되겠지요..
:
: double을 하게되면..
: struct data {
: char name[20];
: struct data *next;
: struct data *prev; --> 이렇게 하나더 선언하고..
:
: };
:
: prev는 앞에것을 가리키게 됩니다.
:
: current = current->prev 하게되면.. 현재위치가 2라고 하면.. 1로 이동되겠지요..
:
: 링크드 리스트는 매우 중요한 알고리즘입니다.
: 이걸 능수능란하게 다룰수 있으면..
: C언어 실력도 향상되고.. 나중에 트리등을 배울때 쉽게 이해를 할 수 있습니다.
: 꼭, 잘 보아두시기 바랍니다.
:
:
:
: 김경래 님이 쓰신 글 :
: : 죄송합니다.
: : 제가 책을보고있는데요
: : 링크드리스트인가 하고있거든요
: : 그런데 current=current-> next;
: : 예제에서 이렇게 된줄이있었습니다.
: : 그런데.. current는 위에 선언되어있는데
: : next라는것은 어디봐도 없었습니다.
: : 그러면 next라는것은 원래 c안에 들어있는거 인가용??
: :
: : 그럼 즐거운하루되세용
|