stack.c

来自「操作系统课程设计」· C语言 代码 · 共 69 行

C
69
字号
#include "stack.h"

#include <stdio.h>
#include <stdlib.h>

PSTACK CreateStack()
{
	PSTACK stack = (PSTACK)malloc(sizeof(STACK));
	if(NULL == stack)
	{
		printf("memory overflow!\n");
		exit(1);
	}

	stack->top = 0;
	return stack;
}

BOOL DestroyStack(PSTACK * stack)
{
	if(NULL == *stack)
		return FALSE;
	else
	{
		free(*stack);
		*stack = NULL;
		return TRUE;
	}
}
BOOL PushStack(PSTACK stack, STACK_ELEMENT_TYPE elem)
{
	if(stack->top >= MAX_STACK_SIZE)
		return FALSE;

	stack->data[stack->top] = elem;
	++stack->top;
	return TRUE;
}

BOOL PopStack(PSTACK stack, STACK_ELEMENT_TYPE * elem)
{
	if(stack->top == 0)
		return FALSE;

	*elem = stack->data[stack->top - 1];
	--stack->top;
	return TRUE;
}

BOOL StackEmpty(PSTACK stack)
{
	if(0 == stack->top)
		return TRUE;
	else
		return FALSE;
}

BOOL StackFull(PSTACK stack)
{
	if(MAX_STACK_SIZE == stack->top)
		return TRUE;
	else
		return FALSE;
}

SIZE_T StackLength(PSTACK stack)
{
	return (SIZE_T)stack->top;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?