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에 따라 라이센스가 부여됩니다.