데이터 구조 실험의 창고 8: 창고 의 기본 조작 간단 한 방법

2246 단어
데이터 구조 실험의 창고 8: 창고 의 기본 조작
Time Limit: 1000MS Memory Limit: 65536KB
Submit  Statistic
Problem Description
스 택 은 기본 적 인 데이터 구조 이다.스 택 은 두 가지 기본 조작 방식 을 가지 고 있 습 니 다. push 화해시키다 pop。push 값 은 스 택 꼭대기 에 눌 러 줍 니 다. pop 창고 꼭대기 의 값 을 팝 업 합 니 다.이제 창고 의 사용 을 검증 해 보 겠 습 니 다.
Input
먼저 정수 t (1 < = t < = 10) 를 입력 하고 테스트 의 그룹 수 를 대표 하 며 그 다음 에는 t 그룹 입력. 각 그룹의 테스트 데이터 에 대해 첫 줄 에 두 개의 정수 를 입력 하 다 m (1 < = m < = 100), n (1 < = n < = 1000), 그 중에서 m 는 현재 창고 의 최대 길 이 를 대표 하고 n 은 본 그룹의 테스트 아래 입력 할 조작 수 를 대표 한다. 이후 의 n 줄, 각 줄 의 첫 번 째 문 자 는 'P' 또는 'O' 또는 'A' 일 수 있 습 니 다. 'P' 라면 뒤에 하나의 정수 가 따라 이 데 이 터 를 스 택 에 넣 는 것 을 표시 합 니 다. 'O' 라면 스 택 꼭대기 요소 가 스 택 에서 나 오 는 것 을 의미 합 니 다. 'A' 라면 현재 스 택 꼭대기 의 값 을 묻 는 것 을 의미 합 니 다.
Output
 각 그룹의 테스트 데이터 에 대해 그 중의 명령 문자 에 따라 스 택 을 처리 합 니 다. (1) 모든 'P' 작업 에 대해 스 택 이 가득 차 면 'F' 를 출력 합 니 다. 그렇지 않 으 면 스 택 작업 을 완성 합 니 다. (2) 모든 'A' 작업 에 대해 스 택 이 비어 있 으 면 'E' 를 출력 합 니 다. 그렇지 않 으 면 스 택 꼭대기 의 값 을 출력 합 니 다. (3)모든 'O' 작업 에 대해 스 택 이 비어 있 으 면 'E' 를 출력 합 니 다. 그렇지 않 으 면 스 택 상단 요소 의 값 을 출력 하고 스 택 에서 나 오 게 합 니 다. 모든 출력 은 한 줄 을 차지 하고 각 그룹 테스트 데이터 (마지막 그룹 제외) 가 완 료 된 후에 빈 줄 을 출력 합 니 다.
Example Input
25 10AP 9AP 6P 3P 10P 8AP 2O2 5P 1P 3OP 5A

Example Output
E98F835

Hint
#include
#include
using namespace std;
typedef struct
{
    int *base,*top,size;
} stack;
int T,n,m;
void Initstack(stack &s,int m)
{
    s.base=new int [1010];
    s.top=s.base;
    s.size=m;
}
int empty(stack &s)
{
    if(s.top==s.base)
        return 1;
    else
        return 0;
}
int gettop(stack &s)
{
    int e=*(s.top-1);
    return e;
}
void Push(stack &s,int e)
{
    *s.top++=e;
}
int Pop(stack &s)
{
    int e=*--s.top;
    return e;
}
void OP(stack &s,int n)
{
    char a[110];
    for(int i=0; i>t;
            if(s.top-s.base>=s.size)
                cout<>T;
    while(T--)
    {
        cin>>m>>n;
        Initstack(s,m);
        OP(s,n);
        cout<

좋은 웹페이지 즐겨찾기