환형연결리스트 요셉의 문제
헤벌심
질문 제목 :
환영 연결리스트, 요셉의 문제 크드입니다.
예를들어 m(노드개수) 6 입력, n(노드간격) 2 입력할 경우
[1]-[2]-[3]-[4]-[5]-[6] 이렇게 6개의 노드가 환형으로 생성됩니다.
그리고 2 - 4 - 6 - 3 - 1 - 5 순으로 삭제되어야 합니다.
(첫노드 부터 삭제하지 않습니다. n(노드간격)은 처음 삭제할 노드의 순서를 의미하기도 합니다.)
파란색 질문, 빨간색 에러
답변 부탁드립니다.
질문 내용 :
#includestdio.h
#includestring.h
#includestdlib.h
typedef struct DATA
{
int num;
struct DATA *next;
}*LINK;
LINK head;
void jesephus(int m, int n);
void insert(int m);
void del(LINK node);
void main()
{
int m,n; //m: 노드 개수, n: 노드 삭제간격
while(1)
{
scanf(%d%d, &m,&n);
getchar();
if(m=0||n=0) //0이나 음수가 입력되면 종료
{
return;
}
jesephus(m,n);
}
}
void jesephus(int m, int n)
{
LINK node;
int i;
insert(m);
node=head;
while(node!=node-next)
{ //node!=node-next가 연결리스트에 노드가 남아있을 동안을 의미하는 이유는 무엇인가요?
for(i=n; in+n; i++) //ex) 2가 입력되면 두번째 노드부터 2간격으로 삭제하려 합니다.
{
node=node-next;
printf(%d, node-next-num);
del(node); //del함수로 넘겨주는 node값은 삭제할 노드 전노드의 주소값으로 알고 있습니다.
}//그런데while문 안에서 node가 어떻게삭제할노드의 전노드값이 되었는지 이해하기 어렵습니다.
printf(%d, node-num);
}
void insert(int m)
{ //Declaration syntax error
int i;
LINK node;
node=(DATA)malloc(sizeof(DATA));
node-nun=1; //노드가 하나인 경우
head=node;
for(i=0;i=m;i++) //노드가 2개 이상인 경우
{
node-next=(DATA)malloc(sizeof(DATA));
node=node-next;
node-num=i;
}
node-next=head;
}
void del(LINK node) //josephus함수의 for문 에서 node값을 받아옴
{
LINK temp;
temp=node-next;
node-next=node-next-next; //삭제할 노드의 이전노드와 다음노드를 연결
free(temp);
} //Declaration missing;//Compound statement missing}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692483 | C언어 함수, Header | 떠나간그놈 | 2025-04-23 |
2692451 | 이 문제좀 풀어주세요 ^^ | 게자리 | 2025-04-23 |
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |