C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[18760] 도와주세요.. 에러가 16개.. ㅠ.ㅠ 전혀 모르겠네요..
언푸레 [unpre] 896 읽음    2002-05-23 01:54
혼자 데이터구조를 공부하는데 너무 어렵네요.
교재도 잘못 고른듯하고요..(해답이 없어서 초보인 입장으로선 전혀 돌파구가 없네요)
해답까지 전부 있고 설명 좋은 데이터구조 교재를 1권만 추천해주셨으면 합니다.(돈 사정이 여의치 않아서 1권밖에 못 삽니다..오늘 추천해주신 김백일님 책도 검토해보겠습니다.)
아래는 단순연결리스트를 이용해서 d=a+b 를 표현해보려고 한건데요..
에러가 16개나 떠요...
게다가 지금 제가 하려는건 head노드를 가진 환형연결 리스트로 바꿔줘야 하거든요...
coef- exp- link 이런 노드를 이용한거에요.
avail 리스트를 이용해서 만들라고 하는데... 뭐가 뭔지... 머리가 너무 복잡하네요.
6가지가 있는데 그중 우선 1, 2, 3번만 잡아주시면 안 될까요?(바쁘시면 1 번만이라도..)
평생 은혜 안 잊겠습니다.
1) pread
다항식을 읽어서 환형 연결 리스트 표현으로 변환하고 그 다항식의 head노드의 포인터를 반환.
(2) pwrite
일반적인 다항식의 형태로 출력한다.
(3) padd
d = a + b 를 계산한다. a 와 b 를 바꾸지 말것.
(4) psub
d = a - b 를 계산한다. a 와 b 를 바꾸지 말것.
(5) eval
실수형 상수인 x에 대해 다항식의 값을 계산하여 그 결과를 반환한다.
(6) perase
avail 리스트에 환형 연결 리스트로 표현된 다항식을 반환한다.


#include <stdio.h>
void main()
{

typedef struct polyNode *polyPtr;
typedef struct{
    int coef;
    int exp;
    polyPtr link;
}polyNode;
polyPtr d,a,b;


polyPtr padd(polyPtr a, polyPtr b)
{
    polyPtr temp, temp1, temp2;
    int sum;
    temp2 = (polyPtr)malloc(sizeof(polyNode));
    if (IS_FULL(temp2)) return;
    temp1 = temp2;
    while (a && b)
        switch (compare(a->exp, b->exp))
    {
        case -1 : attach(b->coef, b->exp, &temp2);
                b = b->link;
                break;
        case  0 : sum = a->coef + b->coef;
                if(sum)
                    attach(sum, a->exp, &temp2);
                a = a->link;
                b = b->link;
                break;
        case  1 : attach(a->coef, a->exp, &temp2);
            a = a->link;
    }
    for (;a;a = a->link) attach(a->coef, a->exp, &temp2);
    for (;b;b = b->link) attach(b->coef, b->exp, &temp2);
    temp2->link = NULL;
    temp = temp1;
    temp1 = temp1->link;
    free(temp);
    return temp1;
}
}

void attach(int coeff, int expo, polyPtr *ptr)
{
    polyPtr temp;
    temp = (polyPtr)malloc(sizeof(polyNode));
    if (IS_FULL(temp)) return;
    temp->coef = coeff;
    temp->exp = expo;
    (*ptr)->link = temp;
    *ptr = temp;
}

+ -

관련 글 리스트
18760 도와주세요.. 에러가 16개.. ㅠ.ㅠ 전혀 모르겠네요.. 언푸레 896 2002/05/23
18762     Re:도와주세요.. 에러가 16개.. ㅠ.ㅠ 전혀 모르겠네요.. 만해 877 2002/05/23
18763         Re:Re:네 감사드립니다 만해님. 언푸레 755 2002/05/23
18764             Re:Re:Re:네 감사드립니다 만해님. 만해 796 2002/05/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.