데이터 구조 (1) - 스 택 의 특성 및 간단 한 응용
스 택 의 두 가지 가장 중요 한 작업: push: 스 택 상단 포인터 가 위로 이동 하여 하나의 요 소 를 스 택 에 밀어 넣 습 니 다.pop: 스 택 상단 의 요 소 를 팝 업 하고 스 택 상단 지침 을 아래로 이동 합 니 다.포인터 의 이동 순 서 는 어 셈 블 리 언어 에서 이렇게 규정 되 어 있 기 때문에 가능 한 한 본성 을 유지 하 세 요. 물론 순 서 를 뒤 바 꿀 수도 있 습 니 다. 직접 해 보 세 요.
응용: 스 택 의 선진 적 인 후 출 특성 으로 인해 많은 목적 을 실현 할 수 있 습 니 다. 1. 진법 전환 은 먼저 계산 한 나머지 를 마지막 으로 보관 해 야 하기 때문에 스 택 을 이용 하여 실현 할 수 있 습 니 다.여기 에는 기본 적 인 사상 만 을 소개 한다
void main()
{
int num;
int x;
printf(" 10 :");
scanf("%d", &num); // 10
while (num)
{
push(num % 2);//
num /= 2;//
}
while (!isempty())//
{
printf("%d", pop());// 1010
}
system("pause");
}
2. 역 폴란드 (접미사) 표현 식 의 값 기본 사상 을 계산 합 니 다. 왼쪽 에서 오른쪽으로 문자열 을 순서대로 옮 겨 다 니 면 숫자 가 스 택 에 들 어 갑 니 다. 문자 라면 두 개의 요소 연산 을 순서대로 팝 업 하여 스 택 에 들 어 갑 니 다.
// , , ,
switch (c)
{
case '+':
Pop(&s, &e);
Pop(&s, &d);
Push(&s, d + e);
break;
case '-':
Pop(&s, &e);
Pop(&s, &d);
Push(&s, d - e);//
break;
case '*':
Pop(&s, &e);
Pop(&s, &d);
Push(&s, d*e);
break;
case '/':
Pop(&s, &e);
Pop(&s, &d);
if (e != 0)// 0
{
Push(&s, d / e);//
}
else
{
printf("
: !
");
return -1;// main -1
}
break;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.