본문 바로가기

분류 전체보기140

스택 (stack) 스택은 후입선출의 입출력형태를 나타낸다. (Last-in, First-out)ADT 추상 자료형으로 스택을 나타내면 다음과 같다.객체: 0개 이상의 원소를 가지는 유한 선형 리스트연산:create(size) ::= 최대 크기가 size인 공백 스택을 생성is_full(s) :=  is_empty(s)push(s,item)pop(s)peek(s)  전역변수와 1차원 배열을 이용한 스택 구현#include #include #define MAX_STACK_SIZE 100typedef int element;element stack[MAX_STACK_SIZE];int top = -1;int is_empty(){ return (top == -1);}int is_full(){ return (top == (MAX_ST.. 2024. 7. 22.
C++에서의 구조체 C와 달리 C++에서는 구조체에 함수를 포함시킬 수 있다. 이는 데이터만을 포함하는 일반적인 구조체와 달리데이터의 처리 기능을 포함하기 때문에 클래스로 칭한다. (클래스=데이터+처리기능)1. C++에서는 별도의 typedef선언 없이 구조체 변수를 선언할 수 있다.2. 구조체 안에 함수를 삽입할 수 있다.구조체 안의 함수임에도 불구하고 전역함수의 형태를 띠는데, 구조체 안의 함수들이 구조체에 종속적임을 잊어선 안된다.따라서 다른 영역에서 이 함수를 호출하면 안된다.struct Car{ char gamerID[ID_LEN]; // 소유자ID int fuelGauge; // 연료량 int curSpeed; // 현재속도 void ShowCarState() { cout=MAX_SPD) { curSp.. 2024. 7. 21.
이름 공간 (namespace) #include namespace BestComImpl{ void SimpleFunc(void) { std::cout 함수 이름이 같아도 이름공간을 다르게 지정하고 함수를 정의하면 충돌없이 사용가능하다.또한 namespace 블록 안에 꼭 함수를 정의할 필요 없다. 다음과 같이 나타낼 수 있다.#include namespace BestComImpl{ void SimpleFunc(void);}namespace ProgComImpl{ void SimpleFunc(void);}int main(void){ BestComImpl::SimpleFunc(); ProgComImpl::SimpleFunc(); return 0;}void BestComImpl::SimpleFunc(void){ std::cout참고로 동일.. 2024. 7. 17.
기수 변환 정수값을 임의의 기수(cardinal number)로 변환하는 알고리즘10진수 정수를 n진수 정수로 변환하려면 정수를 n으로 나눈 나머지를 구하는 동시에 그 몫에 대해 나눗셈을 반복해야 함이 과정을 몫이 0이 될 때까지 반복하고, 이런 과정으로 구한 나머지를 거꾸로 늘어 놓은 숫자가 기수로 변환한 숫자이다.  #define _CRT_SECURE_NO_WARNINGS#include /*---type형 x값과 y값을 교환하는 매크로---*/#define swap(type,x,y) do{type t=x;x=y;y=t;}while(0)/*---정수값 x를 n진수로 변환한 숫자 문자의 정렬을 배열 d에 저장---*/int card_conv(unsigned x, int n, char d[]){ char dchar[.. 2024. 7. 16.
scanf를 대신하는 데이터의 입력 #include int main(void){ int val1; std::cout > val1; int val2; //c++에서는 변수의 선언위치에 제한을 두지 않는다. std::cout > val2; int result = val1 + val2; std::cout  1.데이터 입력에 사용되는 std::cin과 >>연산자std::cin>>'변수';위는 키보드로부터 정수를 하나 입력 받아서 변수에 저장하라는 의미이다.실수형의 입력을 원한다면 변수 선언시에 실수형 자료형인 double로 바꿔주기만 하면된다.C++에서는 데이터의 입력도 데이터의 출력과 마찬가지로 별도의 포맷 지정이 필요 없기 때문이다.//C에서의 문자열 입력char str[100];scanf("%s",str);//C++에서의 문자열 입력char.. 2024. 7. 15.
HELLO WORLD #include int main(void){ int num = 20; std::cout  1.헤더파일 선언문 #include std,cout,endl 사용하려면 위의 헤더파일 선언문이 있어야한다.표준 헤더파일 선언시에는 확장자를 생략하여도 된다. 외에는 C언어와 마찬가지로 .h이다.이면 구버전 컴파일러, 이면 신버전 2.std::cout, std::cout 3.std::cout 2024. 7. 15.