c 언어 데이터 구조 선형 표 - 링크 - 1 원 다항식 추가

18559 단어 필기 하 다.
C 언어 학습 노트 데이터 구조 기록 2
c 언어 데이터 구조 선형 표 - 링크 - 1 원 다항식 추가
  • 작업: 링크 로 두 개의 1 원 다항식 을 만 들 고 두 개의 다항식 을 실현 한다
  • .
  • 기능 은 꼬리 삽입 법 을 실현 하여 단일 체인 표 두 식 의 추가 인쇄
  • 를 만 듭 니 다.
    #include
    #include
    #define length sizeof(struct Polynode)
    
    //      
    typedef struct Polynode
    {
    	int coef;
    	int exp;
    	struct Polynode * next;  /*  next  */
    } Polynode, * PolyList;
    
    //    
    void InitList(PolyList L)   /*  PolyList      */
    {
    	(L) = (PolyList)malloc(sizeof(length));     /* L            */
    	(L) -> next = NULL;
    }
    
    //   
    PolyList creat_list(PolyList L)
    {
    	Polynode *head,*rear,*s;
    	int coef,exp;
    	// head = (Polynode)malloc(sizeof(Polynode));  //     
    	rear = L;  //     
    	printf("        
    "
    ); scanf("%d,%d",&coef,&exp); // while(coef != 0) { s = (PolyList)malloc(sizeof(Polynode)); // s -> coef = coef; s -> exp = exp; rear -> next = s; // rear = s; // printf("
    "
    ); scanf("%d,%d",&coef,&exp); // } rear -> next = NULL; return(head); } // void PolyAdd(PolyList L1,PolyList L2) { Polynode *p,*q,*tail,*temp; int sum; p = L1 -> next; q = L2 -> next; tail = L1; while(p!=NULL && q!=NULL) { if(p -> exp < q -> exp) { tail -> next = p; tail = p; p = p -> next; } else if (p -> exp == q -> exp) { sum = p -> coef + q -> coef; if (sum != 0) { p -> coef = sum; tail -> next = p; tail = p; p = p -> next; temp = q; free(temp); q = q -> next; } else { temp = p ; p = p -> next; free(temp); temp = q ; q = q -> next; free(temp); } } else { tail -> next = q; tail = p; q = q -> next; } if (p!= NULL) tail -> next = p; else tail -> next = q; } // return(tail); } // void print_list(PolyList L) { Polynode *p; if (L -> next != NULL) { p = L -> next; // printf("F(x) = "); while(p != NULL) { printf("%dX^%d",p -> coef,p -> exp); if (p ->next != NULL) printf("+"); else break; // 0 p = p -> next; } } else { printf(" !
    "
    ); } } int main() { void InitList(PolyList *L) ; PolyList creat_list(PolyList L); void PolyAdd(PolyList L1,PolyList L2); void print_list(PolyList L); Polynode A,B; PolyList L1,L2; L1 = &A;L2 = &B; printf("
    ...
    "
    ); creat_list(L1); print_list(L1); printf("
    ...
    "
    ); creat_list(L2); print_list(L2); PolyAdd(L1,L2); printf("
    ...
    "
    ); print_list(L1); }

    좋은 웹페이지 즐겨찾기