링크드 리스트 자기참조 구조체
핫핑크
질문 제목 :
링크드 리스트, 자기참조 구조체
Linked like로 데이터를 입력하는 프로그램입니다.
질문은 주석을 참고하시면 됩니다.
그리고 linked list에 대한 설명이 자세히 나온 책이 있으면 추천해 주세요.
질문 내용 :
#includestdio.h
typedef struct record
{
char name[20];
int birth;
struct record* next; //구조체 포인터
} *LINK;
//typedef struct record의 데이터 타입을 포인터로 한 이유는 무엇입니까?
void list_record();
LINK start; //전역변수
void list_record()
{
LINK current; //지역변수
/*LINK start, LINK current 이렇게 전역과 지역변수를
각각 선언하는 이유는 무엇입니까? */
printf(\nstart=0x%5x\n,start);
for(current=start; current; current=current-next)
/*1.for문 초기식에서 current와 start를 대입하는 이유?
2.조건식이 current인 이유?
3.증감식이 current=current-next인 이유? */
printf(0x%5x %-20s 0x%5x\n, current,current-name,current-next);
}
-
청력
네! 답변 감사합니다. ^_^
-
치에미
보통 끝에있는 노드에는 NULL이라는 값을 세팅(C-next = NULL)되어 있어서 끝으로 인식하게 하는데
current = C이렇게 되어 있으면 current-next 는 NULL이겠죠... 그럼 NULL(값으로는 0)은 조건식에서 거짓이 되어서 조건식을 빠져나오게 됩니다. -
나미
하나 더 물어보겠습니다. for문에서 조건식이 current인데 current 조건을 만족할 때까지 계속 수행한다는 얘긴가요? 그렇다면 current조건식을 만족한다는 건 무얼 말하는 건가요?
-
조심해
자세한 설명 감사합니다. 좋은 하루 보내세요^^
-
갤2
3. for에서 ++, --연산이 필요없구 current=current-next라는 연산식이 다음노드 즉 현재 종이컵에서 연결선(current-next)을 따라서 가면 자동으로 다음 노드에 도착한다 그곳에 현재의 포커스를 위치하는 것임
[ A(start, current)---B----C ] 현재 A에 있다가 current = current-next이 식을 만나면
[ A(start)---B(current)----C ] 이렇게 포이터를 이동하게 됩니다.
-
알찬바로
1. struct record* next; //구조체 포인터
로 하는 이유는 선영 구조체를 만들기 위해서 현재와 다음의 LINK라는 노드를 연결하기 위해서 필요한것 즉 실고리에 종이컵을 여러개 연결할때 처음 종이컵에서 실을 하나 뽑아서 다음 종이컵에 연결할때 이 실처럼 연결을 하는 용도로 쓰이는 것이 위이 구조체 내에 쓰이는 포인터입니다.
2. start는 전역으로 쓰여서 여러개의 종이컵이 연결된 부분의 머리 부분을 표시해둠으로써
항상 start를
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676182 | 숫자 순서대로 배열하는법 | 권뉴 | 2024-11-24 |
2676152 | 기본적인거 하나 질문드립니다. | 개미 | 2024-11-24 |
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |