데이터 구조 - C 언어 는 스 택 의 초기 화, 입, 출, 스 택 지붕 보기 등 작업 을 실현 합 니 다.
2086 단어 c 언어 학습
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
#define length 10
typedef int DataType;
typedef int size_t;
typedef struct Stack
{
DataType* _top;
DataType* _end; //
int stackSize;
}Stack;
//
void StackInit(Stack* s);//
void StackPush(Stack* s, DataType x);//
DataType StackPop(Stack* s);//
DataType StackTop(Stack* s);//
size_t StackSize(Stack* s);//
int StackEmpty(Stack* s);//
int main()
{
Stack s;
int x;
int i;
StackInit(&s);
StackPush(&s, 2);
StackPush(&s, 5);
StackPush(&s, 3);
//x = StackTop(&s);
//x = StackTop(&s);
//x = StackTop(&s);
//x = StackPop(&s);
//x = StackPop(&s);
//x = StackPop(&s);
x = StackSize(&s);
i = s.stackSize;
printf("%d,%d",i,x);
system("pause");
return 0;
}
void StackInit(Stack* s)
{
//
s->_end = (DataType*)malloc(length * sizeof(DataType));
//
if (!s->_end)
{
exit(0);
}
//
s->_top = s->_end;//
s->stackSize = length;
return;
}
void StackPush(Stack* s, DataType x)
{
//
assert(s);
if (s->stackSize == s->_top - s->_end)
{
printf(" , ");
s->_end = (DataType*)realloc(s->_end, (s->stackSize + length) * sizeof(DataType));
if (!s->_end)
{
exit(0);
}
s->_top = s->_end + s->stackSize;//
s->stackSize += length;//
}
*(s->_top) = x;// x
s->_top++;
return;
}
DataType StackPop(Stack* s)
{
assert(s);
if (StackEmpty(s))
{
printf(" ");
return;
}
return *--(s->_top);
}
DataType StackTop(Stack* s)
{
assert(s);
if (StackEmpty(s))
{
printf(" ");
return;
}
return *(s->_top - 1);
}
size_t StackSize(Stack* s)
{
return (s->_top - s->_end);
}
int StackEmpty(Stack* s)
{
return 0 == (s->_top - s->_end);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 구조 - C 언어 는 스 택 의 초기 화, 입, 출, 스 택 지붕 보기 등 작업 을 실현 합 니 다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.