체인 스 택 의 간단 한 실현
2212 단어 이루어지다
스 택 의 결산 점 은 데이터 필드 와 링크 필드 를 포함 합 니 다:
struct StackNode
{
int data;
StackNode *link;
};
스 택 의 추상 적 인 데이터 형식 은 클래스 를 사용 하여 표시 합 니 다. 중요 한 방법 은 스 택 에 들 어가 고 스 택 을 나 가 며 출력 스 택 의 내용 세 가지 가 있 습 니 다.
class Stack{
protected:
StackNode *top; //
public:
Stack() //
{
top=new StackNode; //
StackNode *p=top;
p->link=NULL; // 1: NULL
}
~Stack(); //
// 、
void PushStack(int data); //
void PopStack(); //
void OutputStack(); //
};
다음은 세 가지 알고리즘 에 중심 을 두 고 논술 한다.
스 택 알고리즘: 1. 이 top 지침 을 새로 만 들 고 기본 값 으로 값 을 초기 화한 다음 data 를 할당 합 니 다.
void Stack::PushStack(int data)
{
StackNode *newNode=new StackNode; // ,
if(newNode==NULL){cout<<" !"<<endl;} //
top->data=data; //
//top->link=newNode; //
//top=newNode; // ??
newNode->link=top;
//top->link=NULL; // link ,
top=newNode;
}
스 택 내 요 소 를 출력 하 는 알고리즘: 1. 스 택 상단 포인터 가 가리 키 는 위치 에 있 는 데이터 필드 가 할당 되 지 않 았 기 때문에 top - > link 의 값 을 출력 해 야 합 니 다.
void Stack::OutputStack()
{
top=top->link;
while(top!=NULL)
{
cout<<top->data<<" ";
top=top->link;
}
cout<<endl;
}
스 택 알고리즘: 1. 스 택 상단 포인터 가 아래로 이동 하고 스 택 의 요 소 를 되 돌려 주 며 임시 포인터 로 이 값 을 받 습 니 다.2. 임시 포인터 가 가리 키 는 셀 을 삭제 합 니 다.
void Stack::PopStack()
{
StackNode *p=top;
top=top->link;
delete p;
}
요약:
1. 오류 가 가장 많이 발생 한 것 은 포인터 의 지향 문제 입 니 다. 프로 그래 밍 에서 포인터 의 방향 을 항상 추적 하고 빈 포인터 로 문장 과 이상 처 리 를 많이 해 야 합 니 다.
2. 이상 처리 와 디 버 깅 을 사용 하면 디 버 깅 프로그램의 시간 을 절약 할 수 있 습 니 다.
3. 책 을 버 리 고 CV 전사 가 아니 라 스스로 프로그램 을 구축 하려 고 시도 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
마우스를 멈추고 밝게 보이기 - 각각 gridview와 데이터 grid에서데이터grid의 ItemDataBound 이벤트에 다음 코드를 씁니다. girdview의 RowDataBound 이벤트에 다음 코드를 입력합니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.