• 전문가 요청 쿠폰 이벤트
*욱
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 2
검색어 입력폼
  • 알고리즘 과제 3 Sort & Stassen’s Algorithm
    #include <stdio.h>#include <stdlib.h>void merge(int low, int mid, int high);void mergeSort(int low, int high);void printArr(int a[], int n);void copyArray(int start, int end);//배열크기#define number 100000// 빈 배열 static int mergeArr1[number];// 정렬되지 않은 배열 static int mergeArr2[number];// 합병정렬함수 void mergeSort(int low, int high) { int mid; if(low < high) { mid = (low + high)/2; mergeSort(low, mid); mergeSort(mid+1, high); merge(low, mid, high);}}void merge(int low, int mid, int high) { int i = low; int j = mid+1; int k = low;
    공학/기술| 2019.09.17| 9페이지| 3,000원| 조회(91)
    미리보기
  • 최재영 알고 과제 2 스택을 사용하는 정수 계산기
    알고리즘 과제 #2과 목알고리즘담당교수최재영제 출 일‘18.10.01.전 공컴퓨터학과4. 스택을 사용하는 정수 계산기 프로그래밍하기#1 헤더 및 소스코드//헤더파일//Calculator.h#ifndef CALCULATOR_H#define CALCULATOR_H#include #include #include "LinkedListStack.h"typedef enum{LEFT_PARENTHESIS = '(', RIGHT_PARENTHESIS = ')',PLUS = '+', MINUS = '-',MULTIPLY = '*', DIVIDE = '/',POWER = '^', MOD = '%',SPACE = ' ', OPERAND}SYMBOL;intIsNumber(char Cipher);intIsCalculator(char Cipher);intIsOperator(char Cipher);unsigned intGetNextToken(char* Expression, char* Token, int* TYPE);intIsPrior(char Operator1, char Operator2);voidGetPostfix(char* InfixExpression, char* PostfixExpression);doubleCalculate(char* PostfixExpression);char*RemoveSpace(char* Expression);intCheckExpression(char* InfixExpression);#endif//LinkedListStack.h#ifndef LINKEDLIST_STACK_H#define LINKEDLIST_STACH_H#include#include#includetypedef struct tagNode{char* Data;struct tagNode* NextNode;}Node;typedef struct tagLinkedListStack{Node* List;Node* Top;}LinkedListStack;void LLS_CreateStack(LinkedListStafind the node which located at top and make a link*/Node* OldTop = Stack->List;while (OldTop->NextNode != NULL)OldTop = OldTop->NextNode;OldTop->NextNode = NewNode;}//apply new top nodeStack->Top = NewNode;}//팝함수Node* LLS_Pop(LinkedListStack* Stack){Node* TopNode = Stack->Top;//스택에 노드가 하나만 남았다면 Stack이 List와 Top이 NULL이 된다.if (Stack->List == Stack->Top) {Stack->List = NULL;Stack->Top = NULL;}//새로운 Stack의 Top을 등록한다.else{Node* CurrentTop = Stack->List;while (CurrentTop != NULL && CurrentTop->NextNode != Stack->Top){CurrentTop = CurrentTop->NextNode;}Stack->Top = CurrentTop;CurrentTop->NextNode = NULL;}return TopNode;}//스택 탑 설정 함수Node* LLS_Top(LinkedListStack* Stack){return Stack->Top;}//스택 갯수 세는 함수int LLS_GetSize(LinkedListStack* Stack){intCount = 0;Node*Current = Stack->List;while (Current != NULL){Current = Current->NextNode;Count++;}return Count;}//스택 비우는 함수int LLS_IsEmpty(LinkedListStack* Stack){return (Stack->List == NULL);}//Calculator.c#include "Calculator.h"#pragma warning(disable:은 크기로 바꿔 반환하기char* Result = (char*)malloc(j);memset(Result, 0, j+1);strncpy(Result, Temp, j);return Result;}//중위 표기식에서 토큰을 하나씩 분리하는 함수다.unsigned int GetNextToken(char* Expression, char* Token, int* TYPE){unsigned int i = 0;unsigned int j = 0;//문자열의 끝이 아닐 동안while(Expression[i] != 0){//문자열에서 토큰을 하나씩 받아온다.//Token[j++] = Expression[i];//만약 숫자(양수)라면if (IsNumber(Expression[i]) == 1){//토큰을 저장하고Token[j] = Expression[i];//TYPE을 OPERAND(피연산자, 숫자)로 표기*TYPE = OPERAND;//숫자가 아니라면 토큰 읽기를 중단한다.if (IsNumber(Expression[i+1]) != 1) {break;}//다음 토큰의 컴포넌트도 숫자라면 다음 토큰 컴포넌트도 읽기 위해 j인덱스를 증가시킨다.j++;}//만약 숫자(양수)가 아니라면else{//음수라면 다음 토큰을 읽을 수 있도록 한다.if (Expression[i] == MINUS) {if (IsNumber(Expression[i + 1])==1) {Token[j++] = Expression[i++];*TYPE = OPERAND;continue;}//뺄셈 표기라면 토큰을 받고 반복문을 종료한다.else {Token[j] = Expression[i];*TYPE = Expression[i];break;}}//공백 문자가 온다...else{if (Expression[i] == ' ') {*TYPE = Expression[i];break;}else{//TYPE에 Expression[i]를 저장하고 중단한다.*TYPE = Expression[i];Token[j] = Expression[i];b = LLS_Pop(Stack);if (Popped->Data[0] == LEFT_PARENTHESIS){LLS_DestroyNode(Popped);break;}else{strcat(PostfixExpression, Popped->Data);strcat(PostfixExpression, " ");LLS_DestroyNode(Popped);}}}//숫자도 우괄호도 아니라면else {//공백의 경우 넘어가고if (Type == SPACE);//좌괄호, 연산자일 경우//스택이 비지 않고, 스택 안의 연산자의 우선순위가 더 높다면//꺼내서 후위 표기식에 집어 넣도록 한다.else {while (!LLS_IsEmpty(Stack) && !IsPrior(LLS_Top(Stack)->Data[0], Token[0])){Node* Popped = LLS_Pop(Stack);if (Popped->Data[0] != LEFT_PARENTHESIS)strcat(PostfixExpression, Popped->Data);LLS_DestroyNode(Popped);}LLS_Push(Stack, LLS_CreateNode(Token));}}}//스택에 남아 있는 연산자들을 모두 꺼낸다.while (!LLS_IsEmpty(Stack)){Node* Popped = LLS_Pop(Stack);if (Popped->Data[0] != LEFT_PARENTHESIS)strcat(PostfixExpression, Popped->Data);LLS_DestroyNode(Popped);}LLS_DestroyStack(Stack);}double Calculate(char* PostfixExpression){LinkedListStack* Stack;Node* ResultNode;double Result;char Token[32];int Type = -1;unsigned int Read = 0;unsigned int Length = strlen(PostfixExpression);LLS_CreateStackesult;}//표기식의 유효성을 검사하는 함수다.int CheckExpression(char* InfixExpression) {int parenthesis = 0;//Expression을 읽으면서 좌괄호의 개수보다 우괄호의 개수가 더 많은 순간이 오면//잘못된 수식이라고 생각할 수 있다.for (int i = 0; InfixExpression[i] != 0; i++) {if (InfixExpression[i] == LEFT_PARENTHESIS)parenthesis++;if (InfixExpression[i] == RIGHT_PARENTHESIS)parenthesis--;if (parenthesis < 0){return 0;}}//좌괄호와 우괄호의 갯수가 맞지 않으면if (parenthesis != 0){return 0;}//중위 연산식이 숫자도 아니고 연산자도 아니고 스페이스바도 아니라면for (int i = 0; InfixExpression[i] != 0; i++) {if (!IsNumber(InfixExpression[i]) && !IsOperator(InfixExpression[i]) && InfixExpression[i] != SPACE)return 0;}int result = 0;//연속적으로 나오는 연산자의 개수를 세는 변수int index = 0;//연산자가 2개 연속으로 나오는 경우는 오류가 있는 수식이다.while (InfixExpression[index] != 0) {//공백이라면 스킵if (InfixExpression[index] == SPACE)index++;//마이너스 부호 다음에 숫자가 바로 나오지 않으면 뺄셈기호로 간주한다.else if (InfixExpression[index] == MINUS && !IsNumber(InfixExpression[index + 1]))result++;//음수 기호를 제외한 연산자라면 (괄호도 제외)else if (IsCalculator(InfixExpression[index]))result++;/실행결과
    공학/기술| 2019.05.17| 21페이지| 3,000원| 조회(252)
    미리보기
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 18일 토요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
7:35 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감