Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[709] 답변감솨합니다[냉무]
±è°æ·¡ [] 1657 읽음    2002-06-06 02:40
조준회 님이 쓰신 글 :
: 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안에 들어있는거 인가용??
: :
: : 그럼 즐거운하루되세용

+ -

관련 글 리스트
704 초짜의질문 -_-;; 김경래 1669 2002/06/05
705     Re:초짜의질문 -_-;; 조준회 1669 2002/06/05
709         답변감솨합니다[냉무] ±è°æ·¡ 1657 2002/06/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.