알고리즘 디자인 학습: 스 택 알고리즘
1687 단어 알고리즘 설계
분석: 즉, 문 제 를 해결 하 는 과정 에서 하나의 상태 가 나 타 났 지만 기 존의 조건 으로 현재 의 상태 가 해결 할 수 있 는 지 판단 할 수 없 으 므 로 기록 하고 나중에 현재 상 태 를 해결 할 수 있 는 조건 이 나타 나 면 돌아 와 서 해결 해 야 한다.스 택 으로 해결 합 니 다. 스 택 은 기억 기능 을 가지 고 있 습 니 다. 이것 은 스 택 FILO 의 연장 입 니 다.
코드:
int match(char exp[], int n)
{
char stack[maxSize]; //
int top = -1;
int i;
for ( i = 1; i <= n; ++ i )
{
if ('(' == exp[i]) // ‘(’, ,
{
stack[ ++ top] = '('; //
}
if (')' == exp[i])
{
if ( -1 == top) // ‘)’ , , 0
{
return 0;
}
else
{
top --; // , 。 ‘(’ ‘)’ 。
}
}
}
if ( -1 == top ) // ,
{
return 1;
}
else //
{
return 0;
}
}
(2) 제목: 노드 가 없 는 단일 체인 시트 로 체인 스 택 을 저장 하고 디자인 초기 화, 빈 스 택 판단, 스 택 과 스 택 등 알고리즘
분석: 앞장 서지 않 는 단일 체인 표 lst 가 비어 있 는 조건 은 lst = = NULL 이 고 스 택 출입 은 모두 표 머리 에서 이 루어 집 니 다.
//
void initStackl(LNode *&lst)
{
st = NULL;
}
//
int isEmptyl(LNode *lst)
{
if (NULL == lst)
{
return 1;
}
else
{
return 0;
}
}
//
void Pushl(LNode *&lst, int x)
{
LNode *p;
p = (LNode *)malloc(sizeof(LNode));
p->next = NULL;
p->data = x;
p->next = lst; //
lst = p;
}
//
int Pop(LNode *&lst, int &x) //
{
LNode *p;
if (NULL == lst)
{
return 0;
}
//
p = lst; //p
x = p->data;
lst = p->next;
free(p);
return 1;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
검지 offer 제2판(Python3)-면접문제 38: 문자열의 배열면접 문제 27: 두 갈래 나무의 거울 면접 문제 29: 시계 방향 인쇄 매트릭스 면접 문제 30:min 함수를 포함하는 창고 면접 문제 31: 창고의 압입, 팝업 서열 면접 문제 면접 문제 33: 두 갈래 검색 트...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.