PTA: 6 - 5 싱글 체인 테이블 짝수 노드 삭제 (20 점)

빅 뱅 반기 데이터 구조
데이터 구조 제목 집합
단일 체인 테이블 짝수 노드 삭제
이 문 제 는 두 가지 함 수 를 실현 하고 읽 은 데 이 터 를 단일 체인 표 로 저장 하 며 링크 의 쌍 수 치 를 삭제 해 야 합 니 다.링크 노드 정 의 는 다음 과 같 습 니 다.
struct ListNode {
    int data;
    struct ListNode *next;
};

함수 인터페이스 정의:
struct ListNode *createlist();
struct ListNode *deleteeven( struct ListNode *head );

함수 createlist 는 표준 입력 에서 일련의 정 수 를 읽 고 읽 는 순서에 따라 단일 체인 표를 만 듭 니 다.− 1 까지 읽 었 을 때 입력 이 끝 났 음 을 표시 하고 함 수 는 단일 체인 표 두 결점 을 가리 키 는 지침 을 되 돌려 야 합 니 다.함수 deleteeven 은 싱글 체인 시트 head 의 짝수 값 의 결산 점 을 삭제 하고 결과 체인 시트 의 헤드 포인터 로 되 돌려 줍 니 다.심판 테스트 프로그램 샘플:
#include 
#include 

struct ListNode {
    int data;
    struct ListNode *next;
};

struct ListNode *createlist();
struct ListNode *deleteeven( struct ListNode *head );
void printlist( struct ListNode *head )
{
     struct ListNode *p = head;
     while (p) {
           printf("%d ", p->data);
           p = p->next;
     }
     printf("
"); } int main() { struct ListNode *head; head = createlist(); head = deleteeven(head); printlist(head); return 0; } /* */

입력 예시:
1 2 2 3 4 5 6 7 -1

출력 예시:
1 3 5 7 

문제 풀이:
struct ListNode *createlist()
{
 struct ListNode *head,*p1,*tail;
 int num;
 head=(struct ListNode *)malloc(sizeof(struct ListNode));
 p1=tail=(struct ListNode *)malloc(sizeof(struct ListNode));
 p1->next=tail->next=head->next=NULL;
 while(1)
 {
  scanf("%d",&num);
  if(num!=-1)
  {
   
   p1->data=num;
   if(head->next==NULL)
   {
    head->next=p1;
   }
   else 
   {
    tail->next=p1;
    tail=p1;
   }
   p1=(struct ListNode *)malloc(sizeof(struct ListNode));
   p1->next=NULL;
  }
  else 
  break;
 }
 return head;
}
struct ListNode *deleteeven(struct ListNode *head)
{
 struct ListNode *num,*p;
 p=head;
 num=head->next;
 while(num!=NULL)
 {
  if(num->data%2==0)
     {
      p->next=num->next;
  }
  else
  p=p->next;
  num=num->next;
 }
 return head->next;
}
1.         ,   head     ,            , 
                (   head     NULL,head->next
  NULL   ,    )。
2.             head        ( head  NULL   ,
    )。
3.         ,                   (     
         ,eg:  ),                    。
4.                  ,             。  ,
            ,                  ,    
   。(                )

좋은 웹페이지 즐겨찾기