데이터 구조의 순환 대기 열
주어진 공간 구조의 순서 에 따라 대기 열 을 순환 시 키 고 대기 열 을 채 우 는 방법 은 하나의 요소 공간 을 적 게 사용 하도록 규정 합 니 다.예 를 들 어 5 개의 요소 공간 구조 순환 대기 열 을 지정 하면 4 개의 요소 만 저장 할 수 있 습 니 다.입 대 및 출 대 작업 에 따라 대열 의 마지막 요소 저장 상황 을 판단 하고 마지막 대열 의 요소 값 을 출력 합 니 다. 즉, 주어진 입 대 및 출 열 작업 을 완료 한 후 한꺼번에 모든 팀 의 요소 값 을 출력 합 니 다.순서 대기 열 로 완성 을 요구 합 니 다.
입력
입력 한 첫 번 째 행 위 는 자연수 n 으로 구 조 를 요구 하 는 순서 순환 대기 열 공간 수 를 표시 합 니 다.두 번 째 행 위 는 k 를 조작 하고 그 다음 에 k 행 위 는 팀 에 들 어가 서 조작 하 며 각 줄 은 한 번 씩 조작 합 니 다.입단 용 in 은 출전 용 out 은 입단 이 라면 in 이 빈 칸 을 사이 에 두 고 하나의 정수 로 입단 요소 수 치 를 나타 낸다.
출력
출력 이 모든 입 대 를 완료 한 후, 한꺼번에 팀 원 소 를 출력 합 니 다.빈 칸 으로 격 리 하 다.팀 이 모든 조작 을 완성 한 후에 비어 있 지 않다 고 가정 할 수 있다.
샘플 입력
4 7 in 1 in 2 in 5 in 6 out out in 8
샘플 출력
5 8
#include
#include
int n;
using namespace std;
typedef struct
{
int *base;
int front;
int rear;
}sque;
void Init(sque &l)
{
l.base=(int *)malloc(n*sizeof(int));
if(!l.base)return ;
l.front=l.rear=0;
return ;
}
int rudui(sque &q)
{
int in;
cin>>in;
if((q.rear+1)%n==q.front)return 0;
q.base[q.rear]=in;
q.rear=(q.rear+1)%n;
return 1;
}
int chudui(sque &q,int &e)
{
if(q.front==q.rear)return 0;
e=q.base[q.front];
q.front=(q.front+1)%n;
return 1;
}
int main()
{
sque l;
string c;
int m,e,f=0;
while(cin>>n>>m)
{
Init(l);
while(m--)
{
cin>>c;
if(c=="in")rudui(l);
else if(c=="out")chudui(l,e);
}
while(chudui(l,e))
{
if(f==0)
cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
물체 검출의 평가 지표 IoU의 계산 방법Yolo나 SSD 등 물체 검출에서 평가 지표로 사용되는 IoU에 대해 조사했으므로 정리했습니다. IoU (Intersection over Union)는 두 영역이 얼마나 겹치는지를 나타내는 지표입니다. 두 영역의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.