연재 완료/자료구조 이론

8. 스택 활용 -a. 문자열 뒤집기 -b. 진법변환

라이피 (Lypi) 2018. 11. 7. 03:51
반응형

스택을 이용해서 문자열 뒤집기

  # 입력받은 문자열의 길이를 확인할 수 있으므로 배열 기반 스택을 사용했다.

#include "stack_array.h"
#include <iostream>
#include <tchar.h>

#if defined(UNICODE) || defined(_UNICODE)
#define tcout std::wcout
#define tcin std::wcin

#else
#define tcout std::cout
#define tcin std::cin

#endif

int main()
{
	TCHAR str[256] = { 0, };
	tcout << "뒤집을 문자열을 입력하세요" << std::endl;
	tcin >> str;

	int strLen = _tcslen(str);
	StackArray<TCHAR> rStr(strLen);
	
	for (int i = 0; i < strLen; i++) {
		rStr.Push(str[i]);
	}

	for (int i = 0; i < strLen; i++) {
		tcout << rStr.Peek();
		rStr.Pop();
	}
	tcout << std::endl;
}


스택을 이용해서 10진수를 2진수로 변환하기.

  # 스택에 몇개의 데이터가 입력될지 예상할 수 없으므로 연결 리스트 기반 스택을 사용했다.

#include "StackList.h"
#include <iostream>

int main()
{
	int decimal = 0;
	std::cout << "2진수로 변환할 10진수를 입력하세요." << std::endl;
	std::cin >> decimal;

	StackList<int> binary;

	do {
		binary.Push(decimal%2);
		decimal /= 2;
	} while (decimal != 0);

	while (binary.Count() != 0) {
		std::cout << binary.Pop();
	}
}


반응형