[주제]- 클래스를 활용하여 배열 기반의 스택 구현하기 [중요]- 'playerCls' 객체를 이용하여 'DTOClass'에 접근 후 멤버 변수의 값을 저장 ※ 'playerCls'라는 가상의 껍데기만 있는 선수를 만든 후 정보(man_id ~ money)를 입력 후 저장 - 'dto'라는 배열(스택) 객체를 통해 'DTOClass'에 접근하여 배열 인덱스에 'playerCls'를 저장 [소스 코딩]■ DTOClass.javapackage sampleDao; public class DTOClass { private int man_id; private String first_name; private String last_name; private String position; private int money..
[계산기 처리 과정] - 중위표기법 수식 → ConvToRPNExp 함수(후위표기법으로 변환) → EvalRPNExp 함수(후위표기법 계산) → 연산 결과 [소스 코딩] ※ 스택은 이전에 '연결 리스트 기반으로 구현된 스택' 소스를 활용※ 후위표기법으로 변환 처리는 이전에 'InfixToPostfix' 소스를 활용※ 후위표기법 계산 처리는 이전에 'PostCalculator' 소스를 활용 ■ ListBaseStack.h #ifndef __LB_STACK_H__#define __LB_STACK_H__ #define TRUE 1#define FALSE 0 typedef int Data; // 사용자 정의 int형 Data 선언 typedef struct _node // 사용자 정의 구조체 'Node' 정의{..
[소스 코딩]※ 스택은 이전에 '연결 리스트 기반으로 구현된 스택' 소스를 활용 ■ ListBaseStack.h #ifndef __LB_STACK_H__#define __LB_STACK_H__ #define TRUE 1#define FALSE 0 typedef int Data; // 사용자 정의 int형 Data 선언 typedef struct _node // 사용자 정의 구조체 'Node' 정의{ Data data; // 입력 받은 데이터를 저장할 data 선언 struct _node * next; // 다음 노드를 가리킬 노드 포인터 next 선언} Node; typedef struct _listStack // 사용자 정의 구조체 'ListStack' 정의{ Node * head; // ListSta..
[구현 원칙]- 피연산자는 무조건 스택으로 옮김- 수식 조회 시 연산자를 만나면 스택에서 2개의 피연산자를 꺼내어 계산 처리- 계산결과는 다시 스택에 저장 [계산 시 중요 포인트]- 스택에서 먼저 꺼낸 피연산자가 두 번째 피연산자가 됨(오른쪽)- 나중에 꺼낸 피연산자가 첫 번째 피연산자가 됨(왼쪽) [후위표기법 계산 과정] - 중위표기법에서 후위표기법으로 변환된 상태- 변환된 수식에서 맨 왼쪽부터 하나씩 처리 - 피연산자는 무조건 스택에 저장 - 피연산자는 스택에 저장 - 피연산자는 스택에 저장 - 연산자는 계산 수식으로 이동 - 연산자가 조회되면 스택에서 2개의 피연산자를 꺼냄- 처음 꺼낸 피연산자는 계산 수식의 연산자 '오른쪽'으로 이동- 다음 꺼낸 피연산자는 계산 수식의 연산자 '왼쪽'으로 이동 -..
[소스 코딩]※ 스택은 이전에 '연결 리스트 기반으로 구현된 스택' 소스를 활용 ■ ListBaseStack.h #ifndef __LB_STACK_H__#define __LB_STACK_H__ #define TRUE 1#define FALSE 0 typedef int Data; // 사용자 정의 int형 Data 선언 typedef struct _node // 사용자 정의 구조체 'Node' 정의{ Data data; // 입력 받은 데이터를 저장할 data 선언 struct _node * next; // 다음 노드를 가리킬 노드 포인터 next 선언} Node; typedef struct _listStack // 사용자 정의 구조체 'ListStack' 정의{ Node * head; // ListSta..
[구현하는 계산기 기능]- '후위 표기법 변환 알고리즘'을 사용하여 구현└ 중위 표기법 수식 방식으로 사용자에게 입력 받음 → 프로그램에서 후위 표기법 수식으로 변경 → 계산 및 출력 ※ 이유: 연산자의 우선순위를 신경쓰지 않아도 되고, 소괄호도 처리할 필요가 없기 때문 [구현 시 중요한 부분]- 소괄호를 파악하여 그 부분을 먼저 연산- 연산자의 우선순위를 근거로 연산의 순위를 결정 [구현 시 제한사항]- 수식을 이루는 피연산자는 한자리 숫자(0~9)로만 이뤄진다고 가정 [수식의 표기법] ※ 예) 5 + 2 / 7 1. 중위 표기법(infix notation): 5 + 2 / 7- 피연산자 사이에 연산자가 존재하는 일반적인 표기법 2. 전위 표기법(prefix notation): + 5 / 2 7- 각 ..
[소스 코딩]■ ListBaseStack.h#ifndef __LB_STACK_H__#define __LB_STACK_H__ #define TRUE 1#define FALSE 0 typedef int Data; // 사용자 정의 int형 Data 선언 typedef struct _node // 사용자 정의 구조체 'Node' 정의{ Data data; // 입력 받은 데이터를 저장할 data 선언 struct _node * next; // 다음 노드를 가리킬 노드 포인터 next 선언} Node; typedef struct _listStack // 사용자 정의 구조체 'ListStack' 정의{ Node * head; // ListStack에 노드 포인터 'head' 선언} ListStack; typede..
[소스 코딩] ■ ArrayBaseStack.h12345678910111213141516171819202122232425#ifndef __AB_STACK_H__#define __AB_STACK_H__ #define TRUE 1#define FALSE 0#define STACK_LEN 100 typedef int Data; // 사용자 정의 int형 Data 선언 typedef struct _arrayStack // 사용자 정의 구조체 'ArrayStack' 정의{ Data stackArr[STACK_LEN]; // 100의 배열 구조를 갖는 스택 선언 int topIndex; // 가장 위(마지막 데이터)를 가리키는 topIndex 선언} ArrayStack; typedef ArrayStack Stack..
[스택의 개념] - 나중에 저장된 데이터가 먼저 나오는 후입선출(LIFO. Last-In, First-Out) 구조의 자료구조 [스택의 ADT] void StackInit(Stack * pstack) - 스택의 초기화를 진행 - 스택 생성 후 제일 먼저 호출되어야 하는 함수 int SIsEmpty(Stack * pstack) - 스택이 빈 경우 TRUE(1)을, 그렇지 않은 경우 FALSE(0)을 반환 void SPush(Stack * pstack, Data data) - 스택에 데이터를 저장. 매개변수 data를 전달된 값을 저장 Data SPop(Stack * pstack) - 마지막에 저장된 요소를 삭제 ★ - 삭제된 데이터는 반환 - 본 함수의 호출을 위해서는 데이터가 하나 이상 존재함이 보장되어..
- Total
- Today
- Yesterday
- 설명
- 왕초보 영어회화 100일의 기적
- java
- 자료구조
- 교육센터
- 상황
- 작문
- SysUtils
- Pte
- 독해
- 일기
- 알고리즘
- 말하기
- 정렬
- 영어
- 여행영어 100일의 기적
- tdataset
- SWT
- ADODB
- 계산기
- 문법
- 응용
- RA
- VCL
- 스택
- System
- Delphi
- 대상
- Reference
- wfd
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |