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

C++빌더 Q&A
C++Builder Programming Q&A
[53031] Re:구조체 포인터 관련 급질입니다.
넘초보 [mspower] 1145 읽음    2008-04-07 08:53
khnet 님이 쓰신 글 :
: 도저히 이해가 안가는 부분이 있어서...
:
:
: struct list {
: int no;
: struct list *shortlink;
: };
: typedef struct list node;
:
: node *head=NULL;
:
: int deletenode(int rno)
: {
: node *current=head;
: node *newnode=head;
: node *temp;
:
: if(current->no==rno)
: {
: newnode=current;
: current=current->shortlink;
: head=current;
: return(1);
: }
: else
: {
: while(newnode->shortlink->shortlink!=NULL)
: {
: if(newnode->shortlink->no==rno)
: temp=newnode->shortlink;
: newnode->shortlink=newnode->shortlink->shortlink;
: head=current;
: return(1);
: }
: newnode=newnode->shortlink;
: }
: if(newnode->shortlink->shortlink==NULL && newnode->shortlink->no==rno)
: newnode->shortlink=NULL;
: head=current;
: return(1);
: }
: else return(0);
: }
: }
:
: 여기서 newnode->shortlink->shortlink가 무슨 의미죠?--;
: 이중 구조체도 아닌데...  이런식의 표현은 너무 생소해서...
: 그리고 return(1), return(0)은 rno값으로 1이랑 0을 되돌린다는 뜻인가요?
: 그리고 전체적인 뭘하는 프로그램인지도 감이 안잡히네요..
: 부디 알려주시면 감사드리겠습니다.
: 많이 급하니 최대한 빠른 답변 부탁드립니다.(__)

shortlink 가 다음 객체를 가리키는 링크드 리스트네요.

3개의 객체가 연결되어 있을때, 중간 객체가 삭제될경우 첫번째 객체의 shortlink 는 삭제된 두번째 객체를 가리키게 되죠. 첫번째 객체가 세번째 객체를 알수 있는 방법은 두번째 객체의 shortlink 를 참조하는 방법 뿐입니다.

그래서, 두번째 객체를 삭제하기 전에 두번째 객체의 shortlink 가 가지고 있는 값을 첫번째 객체의 shortlink 에 저장하는 것입니다. 그러면, 첫번째 객체는 세번째 객체를 가리키게 되죠.

+ -

관련 글 리스트
53026 구조체 포인터 관련 급질입니다. khnet 1052 2008/04/06
53031     Re:구조체 포인터 관련 급질입니다. 넘초보 1145 2008/04/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.