포트폴리오 만들기

9.Map 문자열 사전식 정렬 / map + Script time stemp

Roka_is_back 2023. 12. 22.

1.Map 수정사항

사전식 비교를 위한 수정

기존 문자열 비교가 사전순으로 이루어지지 않은 부분에 대해 추가 작업을 하였다.

특수화 처리하기는 코드가 길어질 것 같아서 아래와 같이 template를 변경하였다.

RBT.h

기본적으로 아무 입력값이 없다면 기본 greater 와 less 를 사용하도록 했다.

문자열의 경우 operator를 지정해줘야 하기 때문에 아래와 같이 한다.

mapTestCode

 

그러면 문자열의 비교는 어떻게 이루어질까?

사전식 비교를 하도록 operator를 구현했다.

operator.h
RBT.h

 

+ Equal 도 추가했다.

테스트

기본 테스트

디버깅으로 node들의 구성을 확인한 결과 rbt 시뮬레이션과 동일하게 삽입이 이루어졌다.

mapTestCode
rbt 시뮬레이션

문자열 테스트

문제가 나의 정렬방식 아래와 같다.

[1] 문자열 길이가 짧은게 우선순위가 높다.

[2] 문자열 길이가 서로 같으면 문자 요소의 사전적 우선순위를 비교한다.

 

그런데 시뮬레이터의 경우 1)의 조건이 없는 것 같다.
aa -> abc -> ac 입력이 주어졌을 때
aa  = root

abc = left (aa 보다 [1] 조건에 의해 우선 순위가 낮다.)

ac = right (aa 보다 [2] 조건에 의해 우선 순위가 높다.)

아래의 두번째 이미지 처럼 노드가 형성되어야 한다.

그런데 시뮬레이터의 경우 아래와 같이 구성되지 않는다.

abc 입력
ac 입력
알고리즘에 의한 정렬 결과

따라서 문자열에 관한 테스트는 시뮬레이터와 내 조건이 다르기 때문에 결과도 다르게 나온다.

2.Map +TimeStemp Test Code

rokaProj

3.FileManager 만드는 중.

script manager 를 script 파일들 읽어서 빌드하면 알아서 코드가 생성되도록 하기 위해서 
filemanager 를 만드는 중이다.

 

댓글