*현*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 3
검색어 입력폼
  • [c언어] 재귀하향식 사칙연산 계산기
    사칙연산 계산기입니다.문자열로 입력받으며, 괄호처리, 연산자우선순위에 맞게 계산합니다.실수도 처리 가능합니다.재귀하향식으로 구현햇으며, 스택, 링크드리스트와 무관합니다.
    프로그램소스| 2011.12.13| 2,000원| 조회(585)
    미리보기
  • [c언어] 스택+링크드 리스트 계산기
    /** [ ]key = temp->key;if( item == NULL ){*top = temp->link;free(temp);}else{strcpy( item->key, temp->data.key ); // step 1item->attr = temp->data.attr; // step 1*top = temp->link; // step 2free(temp); // step 3}return 1;}// top이 가리키는 element를 item에 복사int peek(STACK* top, ELEMENT* item){if( top == NULL ){return 0;}else{//*item = top->data;strcpy( item->key, top->data.key );item->attr = top->data.attr;return 1;}}///////////////////////////////////////////////////////////// 문자열을 링크드리스트로 /////////////////////////////////////////////////////////////void tokenize(STACK** top, char *expr){int i = -1;ELEMENT item;item.attr = -1;int is_white = 0;int is_point = 0;char buf[BUF_LEN];int j = 0;while( expr[++i] != '' ){if( expr[i] == ' ' || expr[i] == 't' ){is_white = 1;continue;}if( ('0'data.key);return;}///////////////////////////////////////////////////////////// 후위표현식으로 바꾸기 //////////////////////////////////////////////////////////////** 1. cur이 NUM이면, post에 push* 2. cur이 ADD,SUB,MUL,DIV이면, bucket 검사* bucket가 빌때까지 혹은 LP가 나올때까지* bucket의 peek가 지금 연산자보다 우선순위가 높으면* pop(bucket, item), push(post, bucket)* 그리고 push(bucket, cur.item)* 3. cur이 LP이면, push(bucket, cur.item)* 4. cur이 RP이면, bucket가 비거나 .LP가 나올때까지 pop(bucket,item), push(post,item)* 5. cur이 NULL이면, bucket이 빌때까지 pop(bucket,item), push(post,item)*/void postfix(STACK** cur, STACK** post){static STACK* bucket;static int end = 0;ELEMENT item;if( *cur == NULL ){end--;return ;}end++;postfix(&((*cur)->link), post);switch( (*cur)->data.attr ){case NUM:push( post, (*cur)->data );break;case ADD: case SUB: case MUL: case DIV:if( peek(bucket,&item) && ( priority(item.attr) > priority((*cur)->data.attr) ) ) {while( peek(bucket,&item) && (item.attr!= LP)){pop( &bucket, &item);push( post, item);}}push( &bucket, (*cur)->data );break;case LP:push( &bucket, (*cur)->data );break;case RP:while( peek(bucket,&item)&&(item.attr!=LP||(!pop(&bucket,NULL))) ){pop( &bucket, &item);push( post, item);}break;default:printf("unexpected operator(%d)n",__LINE__);exit(1);}if( end < 1){while( peek(bucket,&item) ){pop( &bucket, &item );push( post, item);}}end--;}///////////////////////////////////////////////////////////// 전위표현식으로 바꾸기 /////////////////////////////////////////////////////////////void prefix(STACK** cur, STACK** pre){int i=0;static STACK* bucket;static STACK* temp;static int end = 0;ELEMENT item;if( *cur == NULL ){while( peek(*pre, &item) ){pop( pre, &item );push( &temp, item );}while( peek(bucket, &item) ){pop( &bucket, &item );push( &temp, item );}while( peek(temp, &item) ){pop( &temp, &item );push( pre, item );}return ;}switch( (*cur)->data.attr ){case NUM:while( peek(*pre, &item) ){pop( pre, &item );push( &temp, item );}push( pre, (*cur)->data );while( peek(temp, &item) ){pop( &temp, &item );push( pre, item );}break;case ADD: case SUB: case MUL: case DIV:/*1. pre에서 temp로 다뺀다2. 연산자 넣는다3. pre를 다시 temp에서 넣는다*///printf("operatorn");while( peek(*pre, &item) ){pop( pre, &item );push( &temp, item);}while( peek(bucket,&item) && (priority(item.attr) > priority((*cur)->data.attr)&&(item.attr!=RP))){pop( &bucket, &item );push( pre, item );}push( &bucket, (*cur)->data );while( peek(temp,&item) && (item.attr != RP) ){pop( &temp, &item);push( pre, item);}break;case RP:push( &bucket, (*cur)->data );break;case LP:while( peek(*pre,&item) ){pop( pre, &item );push( &temp, item );}while( peek(bucket,&item)&&(item.attr!=RP||(!pop(&bucket,NULL))) ){pop( &bucket, &item);push( &temp, item);}while( peek(temp, &item) ){pop( &temp, &item );push( pre, item );}break;default:printf("unexpected operatorn");exit(1);}prefix(&((*cur)->link), pre);}///////////////////////////////////////////////////////////// 후위표현식 계산 /////////////////////////////////////////////////////////////const float eval_postfix(STACK** post){static STACK* bucket;ELEMENT item;static int end = 0;char var1[BUF_LEN], var2[BUF_LEN];if( !peek(*post,&item) ){end--;exit(1);}end++;eval_postfix(&((*post)->link));pop(post,&item);switch( item.attr ){case NUM:push(&bucket,item);break;case ADD:pop(&bucket, &item); strcpy(var1,item.key);pop(&bucket, &item); strcpy(var2,item.key);sprintf(item.key,"%f",atof(var1) + atof(var2));push(&bucket,item);break;case SUB:pop(&bucket, &item); strcpy(var1,item.key);pop(&bucket, &item); strcpy(var2,item.key);sprintf(item.key,"%f",atof(var2) - atof(var1));push(&bucket,item);break;case MUL:pop(&bucket, &item); strcpy(var1,item.key);pop(&bucket, &item); strcpy(var2,item.key);sprintf(item.key,"%f",atof(var1) * atof(var2));push(&bucket,item);break;case DIV:pop(&bucket, &item); strcpy(var1,item.key);pop(&bucket, &item); strcpy(var2,item.key);if(-0.00000001
    프로그램소스| 2011.12.13| 2,000원| 조회(1,468)
    미리보기
  • [자료구조 C++] 이중 연결 리스트(Linked List)를 이용한 간단한 주소록 평가A좋아요
    이름, 전화번호, 주소를 입력받아 저장한다.기존 주소록에 삽입, 검색, 수정, 삭제, 출력, 저장, 불러오기를 할 수 있다.검색할 때 이름, 전화번호, 주소중 검색어와 부분적으로 일치하는 것을 모두 검색해줌
    프로그램소스| 2008.04.25| 1,000원| 조회(1,654)
    미리보기
전체보기
받은후기 2
2개 리뷰 평점
  • A+최고예요
    0
  • A좋아요
    1
  • B괜찮아요
    1
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 20일 수요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
5:58 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감