창고 체인 테이블 의 실현
스 택 의 링크 를 정의 합 니 다.
typedef struct Stack
{
int nValue;
struct Stack *pNext;
}Stack, *PStack;
그리고 스 택 링크 를 만 들 면 먼저 해당 하 는 저장 공간 을 엽 니 다.
대상 에 게 해당 하 는 값 부여 하기;
PStack CreateStack()
{
PStack pStack = (PStack)malloc(sizeof(Stack));
pStack->nValue = 0;
pStack->pNext = NULL;
return pStack;
}
스 택 링크 가 비어 있 는 지 확인 하 는 것 은 대상 이 데 이 터 를 저장 하 는 지 아 닌 지 를 보 는 것 입 니 다.
bool IsEmpty(PStack pStack)
{
if(NULL == pStack)
{
printf(" !
");
}
return pStack->pNext == NULL;
}
그리고 스 택 링크 에 데 이 터 를 누 르 십시오:
PStack PushStack(PStack pStack, int nValue)
{
if(NULL == pStack)
{
printf(" !
");
return NULL;
}
PStack pTmp = (PStack)malloc(sizeof(Stack));
pTmp->nValue = nValue;
pTmp->pNext = pStack->pNext;
pStack->pNext = pTmp;
return pStack;
}
그 중의 데 이 터 를 삭제 합 니 다.int PopStack (PStack pStack) {if (NULL = = pStack) {printf ("창고 가 생 성 되 지 않 았 습 니 다!");} PStack pTmp = pStack->pNext; pStack->pNext = pTmp->pNext; int nValue = pTmp->nValue; free(pTmp); return nValue; }
전체 코드:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include<assert.h>
typedef struct Stack
{
int nValue;
struct Stack *pNext;
}Stack, *PStack;
PStack CreateStack()
{
PStack pStack = (PStack)malloc(sizeof(Stack));
pStack->nValue = 0;
pStack->pNext = NULL;
return pStack;
}
bool IsEmpty(PStack pStack)
{
if(NULL == pStack)
{
printf(" !
");
}
return pStack->pNext == NULL;
}
PStack PushStack(PStack pStack, int nValue)
{
if(NULL == pStack)
{
printf(" !
");
return NULL;
}
PStack pTmp = (PStack)malloc(sizeof(Stack));
pTmp->nValue = nValue;
pTmp->pNext = pStack->pNext;
pStack->pNext = pTmp;
return pStack;
}
// PStack *pStack;
int PopStack(PStack pStack)
{
if(NULL == pStack)
{
printf(" !
");
}
PStack pTmp = pStack->pNext;
pStack->pNext = pTmp->pNext;
int nValue = pTmp->nValue;
free(pTmp);
return nValue;
}
void Destroy(PStack pStack)
{
while (!IsEmpty(pStack))
{
PopStack(pStack);
}
free(pStack);
pStack = NULL;
}
int main()
{
PStack pStack = CreateStack();
for (int i = 0; i < 10; i++)
{
pStack = PushStack(pStack, i);
}
while (!IsEmpty(pStack))
{
printf("%d ", PopStack(pStack));
}
Destroy(pStack);
system("pause");
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.