체인 스 택 의 간단 한 실현

2212 단어 이루어지다
체인 스 택 의 실현: 1. 스 택 의 특징 스 택 지붕 에 요 소 를 삽입 하고 요 소 를 삭제 합 니 다.2. 체인 스 택 의 결산 점: 데이터 필드 와 링크 필드 이기 도 합 니 다.3. 스 택 은 클래스 를 사용 하여 이 루어 집 니 다. 1) 스 택 상단 지침 top 을 설정 하고 첫 번 째 요 소 를 가리 키 며 2) 본 데이터 구 조 는 세 가지 중요 한 방법 을 실현 해 야 합 니 다. 스 택 에 들 어가 고 스 택 을 나 가 며 스 택 안의 요 소 를 출력 하 는 세 가지 방법 이 필요 합 니 다.
스 택 의 결산 점 은 데이터 필드 와 링크 필드 를 포함 합 니 다:
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 전사 가 아니 라 스스로 프로그램 을 구축 하려 고 시도 합 니 다.

좋은 웹페이지 즐겨찾기