Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++로 전화번호부 디자인하기

<시간/>

다음 작업을 지원하는 전화 디렉토리를 설계한다고 가정합니다.

  • get - 이것은 누구에게도 할당되지 않은 번호를 제공합니다.

  • check - 번호를 사용할 수 있는지 여부를 확인합니다.

  • release - 번호를 재활용하거나 해제합니다.

이니셜라이저를 사용하여 처음에 n개의 숫자를 초기화할 수 있습니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 한 세트 정의

  • 사용 가능한 하나의 대기열 정의

  • 이니셜라이저는 maxNumbers를 사용합니다.

  • N :=maxNumbers

  • initialize i :=0의 경우, i

    • 사용 가능한 항목에 i 삽입

  • get()

    함수 정의
  • 사용 가능한 크기가 0과 같으면 -

    • 반환 -1

  • x :=사용 가능한 첫 번째 요소

  • s에 x 삽입

  • 사용 가능한 요소에서 삭제

  • x를 반환

  • check() 함수를 정의하면 숫자가 필요합니다.

  • 숫자>=N 또는 숫자 <0이면 -

    • 거짓 반환

  • 반환 true 숫자가 s에 없습니다.

  • release() 함수를 정의하면 숫자가 필요합니다.

  • 체크(숫자)인 경우 -

    • 반환

  • x :=숫자

  • s에서 x 삭제

  • 사용 가능한 위치에 x 삽입

예시

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

#include 네임스페이스 std;class PhoneDirectory {public:set=N || number <0) return false; return s.find(숫자) ==s.end(); } 무효 릴리스(int number){ if (check(number)) return; 정수 x =숫자; s.삭제(x); 사용 가능.푸시(x); }};main(){ PhoneDirectory ob(3); cout <<(ob.get()) < 

입력

ob.get();ob.get();ob.check(2);ob.get();ob.check(2);ob.release(2);ob.check(2); 

출력

011201