수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

단순 연결 리스트 질문입니다!

보담

2023.09.13

질문 제목 : 단순 연결 리스트 질문입니다!질문 요약 :void remove_odd_node(ListNode **phead)이함수는 홀수번째 노드를 삭제하는 함수 인데요. 제가 생각하기로는
제대로 코딩을 한것같은데, 결과값이 이상하게 나옵니다. 원래의 결과값으로는 짝수만 나와야 하는데,결과값이 8만 지워집니다. 이게 어떻게 된건지요ㅠ 무엇이 잘못된건지 고수님들 가르쳐주세요!ㅠㅜ

질문 내용 :
#include stdio.h
#include stdlib.h
typedef struct ListNode {
int data;
struct ListNode *link;
} ListNode;

void insert_node(ListNode **phead, ListNode *p, ListNode *new_node)
{
if(*phead==NULL){
new_node-link=NULL;
*phead=new_node;
}
else if(p==NULL){
new_node-link=*phead;
*phead=new_node;
}
else{
new_node-link=p-link;
p-link=new_node;
}
}
ListNode *create_node(int data, ListNode *link)
{
ListNode *new_node;
new_node=(ListNode *)malloc(sizeof(ListNode));
new_node-data=data;
new_node-link=link;
return(new_node);
}
void remove_odd_node(ListNode **phead)
{
ListNode *p;

*phead = (*phead)-link;
p=*phead;

if(*phead == NULL) return;
while(p==NULL && p-link == NULL){
p-link = p-link-link;
p=p-link;
free(p-link);
}
}
void display(ListNode *head)
{
ListNode *p=head;
while(p!=NULL){
printf(%d-, p-data);
p=p-link;
}
printf(\n);
}
void main()
{
ListNode *list=NULL;
insert_node(&list, NULL, create_node(1, NULL));
insert_node(&list, NULL, create_node(2, NULL));
insert_node(&list, NULL, create_node(3, NULL));
insert_node(&list, NULL, create_node(4, NULL));
insert_node(&list, NULL, create_node(5, NULL));
insert_node(&list, NULL, create_node(6, NULL));
insert_node(&list, NULL, create_node(7, NULL));
insert_node(&list, NULL, create_node(8, NULL));
display(list);
remove_odd_node(&list);
display(list);
}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 옆집언니 2023-09-13

    홀수번째 노드만 제거 한다구요 ?.. 그렇게 되나요 ?..
    *phead = (*phead)-link;
    p=*phead;
    여기서 첫번째 노드를 날려버렸네요..

    while(p==NULL && p-link == NULL)
    그 다음 노드부터는 이 조건에 안들어가니까.. 실행이 안되는거 같은데..

번호 제 목 글쓴이 날짜
2697432 서버 만드는 함수에서 궁금한게있어요~ 파랑 2025-06-07
2697401 열혈강의 문제오류 (1) 꿈 2025-06-07
2697374 기초적인 C언어 프로그래밍 입니다. 얼 2025-06-07
2697341 좌우대칭 문제인데 Q가 입력되면 종료가 되야하는데 되지않습니다 무지개 2025-06-07
2697314 fprintf와 fscanf 로 파일 입출력 할떄 밝음이 2025-06-06
2697293 툴 소스 뽑아내는법 도움 2025-06-06
2697264 소소한거 두어가지 질문할께요~ (8) 별솔 2025-06-06
2697235 scanf로 인풋 받을 때?! 보담 2025-06-06
2697207 열혈강의 연습문제 질문이요~ (2) 맥적다 2025-06-05
2697182 strcmp, strtok - 어떤 기능을 하는지... 루다 2025-06-05
2697129 [질문] 아래 저축액을 계산하는 프로그램 ㅠ 추가 질문 (7) 찬늘 2025-06-05
2697072 쌩초보 질문! (1) 얀 2025-06-04
2697050 도움부탁드립니다.. 화이트 2025-06-04
2697023 gotoxy함수, 어떻게 사용하죠? (3) 적송 2025-06-04
2696994 c언어를 막 시작한 초보인데 질문이 있어용 ㅠㅠ (2) 귀1여운렩 2025-06-03
2696944 윈도우 콘솔프로그램 질문드립니다 (2) 꽃님이 2025-06-03
2696882 c언어 입력받기 질문 입니다 (2) 흰추위 2025-06-02
2696853 문자열은 정적메모리에 할당된다고 하는데 정적메모리가 뭡니까?? (6) 다온 2025-06-02
2696799 c c++언어입문전에 파이톤이나 자바스크립트배워두면.. (2) 앨런 2025-06-02
2696747 size of 연산자에 대해 질문이 있습니다. (3) 유진공주 2025-06-01
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com