c 언어 로 스 택 구현
                                            
 2193 단어  데이터 구조
                    
스 택 의 순서 저장 구 조 는 순서 스 택 이 라 고 약칭 한다.
순서 스 택 의 c 언어 구현:
#define STACKSIZE 100
typedef int DataType;
typedef struct  
{
	DataType data[STACKSIZE];
	int top; //    , -1 ,      
}SeqStack;
bool InitStack(SeqStack *pSS)
{
	pSS = (SeqStack *)malloc(sizeof(SeqStack));
	if (pSS == NULL)
		return false;
	pSS->top = -1;
	return true;
}
bool IsEmptyStack(SeqStack *pSS)
{
	if (pSS->top == -1)
		return true;
	else
		return false;
}
bool IsFullStack(SeqStack *pSS)
{
	if (pSS->top == (STACKSIZE - 1))
		return true;
	else
		return false;
}
bool PushElement(SeqStack *pSS, DataType dData)
{
	if (IsFullStack(pSS))
		return false;
	pSS->top++;
	pSS->data[pSS->top] = dData;
	return true;
}
bool PopElement(SeqStack *pSS, DataType *pData)
{
	if (IsEmptyStack(pSS))
		return false;
	*pData = pSS->data[pSS->top];
	pSS->top--;
	return true;
}
bool GetTopElement(SeqStack *pSS, DataType *pData)
{
	if (IsEmptyStack(pSS))
		return false;
	*pData = pSS->data[pSS->top];
	return true;
}  스 택 의 체인 저장 구 조 는 체인 스 택 이 라 고 약칭 한다.
체인 스 택 의 c 언어 구현:
typedef int DataType;
typedef struct node
{
	DataType data;
	struct node *next;
}LinkStack;
bool InitStack(LinkStack *pTop)
{
	pTop = (LinkStack *)malloc(sizeof(LinkStack)); //pTop          ,                
	if (pTop == NULL)
		return false;
	pTop->next = NULL;
	return true;
}
bool IsEmptyStack(LinkStack *pTop)
{
	if (pTop->next == NULL)
		return true;
	else
		return false;
}
bool PushElement(LinkStack *pTop, DataType dData)
{
	LinkStack *p = NULL;
	p = (LinkStack *)malloc(sizeof(LinkStack));
	if (p == NULL)
		return false;
	p->data = dData;
	p->next = pTop->next;
	pTop->next = p;
	return true;
}
bool PopElement(LinkStack *pTop, DataType *pData)
{
	LinkStack *p;
	if (IsEmptyStack(pTop))
		return false;
	p = pTop->next;
	*pData = p->data;
	pTop->next = p->next;
	free(p);
	return true;
}
bool GetTopElement(LinkStack *pTop, DataType *pData)
{
	if (IsEmptyStack(pTop))
		return false;
	*pData = pTop->next->data;
	return true;
}
                이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.