창고 의 정의 와 조작

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

좋은 웹페이지 즐겨찾기