창고 의 정의 와 조작
1624 단어 데이터 구조
스 택 은 조작 이 제 한 된 선형 표 로 삽입, 삭 제 를 허용 하 는 한 끝 을 스 택 지붕 이 라 고 하고 다른 한 끝 을 스 택 바닥 이 라 고 합 니 다.
창고 의 분류
스 택 은 주로 정적 스 택 과 동적 스 택 으로 나 뉘 는데 정적 스 택 은 배열 과 유사 하 며 동적 스 택 은 링크 와 유사 하지만 링크 의 한 끝 만 조작 할 수 있 습 니 다.본 고 는 주로 정적 스 택 을 토론 한다.
정적 스 택 표시
#define stack_size 100
typedef int SDataType;// 。
typedef struct stack
{
SDataType array[stack_size];
int top;
}stack;
창고 작업
#ifndef STACK_H_
#define STACK_H_
#include
#include
#define Max_Size 100
typedef int SDataType;
typedef struct Stack
{
SDataType array[Max_Size];
int top;
}Stack;
//
void InitStack(Stack *s)
{
s->top = 0;
}
//
void PrintS(Stack s)
{
if (s.top == 0)
{
printf("
");
return;
}
int i = 0;
for (; i < s.top; i++)
{
printf("%d ", s.array[i]);
}
printf("
");
}
//
void StackDestroy(Stack *s)
{
s->top = 0;
}
//
void StackPush(Stack *s,SDataType data)
{
assert(s->top < Max_Size);
s->array[s->top++] = data;
}
//
void StackPop(Stack *s)
{
assert(s->top > 0);
s->top--;
}
// , , 1; , 0.
int Isempty(Stack s)
{
if (s.top == 0)
{
return 1;
}
else
{
return 0;
}
}
//
int Scount(Stack s)
{
return s.top;
}
//
SDataType TopStack(Stack s)
{
if (s.top == 0)
{
return -1;
}
return s.array[s.top - 1];
}
void test1()
{
Stack s;
InitStack(&s);
StackPush(&s, 1);
//StackPop(&s);
PrintS(s);
StackDestroy(&s);
PrintS(s);
//printf("%d
",TopStack(s));
}
#endif
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.