리 턴 판단 (C 언어, 스 택 으로 해결)

10446 단어 데이터 구조
  • 답장: 왼쪽 에서 읽 기 = 오른쪽 에서 읽 기
  • C 언어 로 스 택 을 작성 하 는 기능
  • #include
    #include
    #include
    using namespace std;
    
    #define MAXSIZE 100
    typedef char ElemType;
    typedef struct{ 	//        
    	ElemType *base;
    	ElemType *top;
    	int stacksize;	
    }Stack;
    
    //    
    int Init(Stack &S){
    	S.base = new ElemType[MAXSIZE];
    	if(!S.base) exit(-2);
    	S.top = S.base;
    	S.stacksize = MAXSIZE;
    	return 1;
    }
    
    //  
    int Push(Stack &S, ElemType x){
    	if(S.top - S.base == S.stacksize){
    		cout<<"     !";
    		return 0;
    	}
    	*S.top++ = x;
    	return 1;
    }
    
    //  
    int Pop(Stack &S, ElemType &e){
    	if(S.base == S.top){
    		cout<<"  !";
    		return 0;
    	}
    	e = *--S.top;
    	return 1;
    }
    
    //      
    ElemType GetTop(Stack S){
    	if(S.base != S.top){
    		return *(S.top - 1);
    	}
    }
    
    int main(){
    	Stack A;
    	ElemType x[100], e; //  x            ,    100
    	int length, n;
    	cout<<"         :";
    	cin>>n;
    	
    	cout<<"        :"<<endl;
    	cin>>x;
    		
    	length = n/2; //        
    	Init(A);
    	for(int i = 0; i < n; i++){
    		Push(A, x[i]);
    	}
    	for(int i = 0; i < length; i++){
    		Pop(A, e); 
    		if(e != x[i]){
    			cout<<"    !";
    			return 0;
    		}	
    	}
    	cout<<"   !"; 
    	return 0;
    }	
    

    참고 자료: 엄 울 민 이동 매 오 위 민

    좋은 웹페이지 즐겨찾기