원형큐(원형 큐)를 이용한 문자열 처리하기
- 최초 등록일
- 2004.10.12
- 최종 저작일
- 2004.10
- 1페이지/ 압축파일
- 가격 1,000원
소개글
원형 큐를 이용하여 문자열을 enqueue,dequeue 할 수 있는 소스 입니다. 원형큐를 이용하였기 때문에 메모리를 효율적으로 사용할 수 있고, 또 큐의 크기가 부족할때는 자동으로 증가할 수 있도록 해두었기 때문에 편리하기 사용할 수 있습니다.
컴파일 실행환경
Visual C++ 6.0 에서 작성되었습니다.
프로젝트 파일을 읽어 오신후 컴파일 하면 됩니다.
본문내용
이 프로그램은 원형큐를 이용해서 문자열을 큐에 넣고 다시 큐에서 가져오는 프로그램 소스입니다.
제가 만든 원형큐의 가장 큰 특징은 초기에 정해준 큐의 크기에 상관없이 큐에 확보된 버퍼가 부족할때는 스스로 버퍼의 크기를 늘려서 문자열을 무한히(메모리가 확보되는 한도내에서)넣을 수 있습니다. 사용하시는 분께서는 큐의 크기에 대해 따로 신경쓰지 않고 단순히 문자열을 enqueue 하고 dequeue 하면 되기 때문에 편리합니다.
예제는 x를 입력할때까지 사용자에게 문자열을 입력받고 그 문자열을 큐에 넣은 다음, p를 입력하면 현재까지의 문자열을 출력하는 소스입니다.
다음은 문자열을 처리하는 원형큐의 헤더를 나타낸 것입니다.
class CStrQue
{
public:
void print_all(); //큐의 있는 내용들을 모두 출력한다. 모든 문자열을 dequeue 한다.
CStrQue(int size);//생성자, size 만큼 버퍼를 확보한다.
~CStrQue();
int re_alloc(int size); //버퍼의 크기가 부족할때 크기를 늘려서 다시 확보한다.
int dequeue(char* string_buf);//큐의 가장 앞의 문자열을 꺼낸다.
int enqueue(char* string);//큐의 끝에 문자열을 추가한다.
char* buf; //문자열을 저장하는 버퍼
int buf_size; //버퍼의 크기
int head_point; //첫번째 문자열의 위치를 가리킨다.
int tail_point; //마지막 문자열의 위치를 가리킨다.
int last_point; //버퍼에서 데이터가 사용되고 있는 부분의 가장 마지막 위치를 가리킨다.
int element_size; //가지고 있는 문자열의 개수를 나타낸다.
};
압축파일 내 파일목록
string_deque.dsp
main.cpp
string_deque.dsw
strque.cpp
strque.h
설명.hwp
참고 자료
없음