stack.cpp

来自「一个开发程序」· C++ 代码 · 共 53 行

CPP
53
字号
// 程 式 名: LinkStack.c
// 程式功能: 链栈的实现
// 功能描述: 置栈空、判栈空、压栈、出栈、取栈顶元素 
// 置栈空
#include "stack.h"
void Initial(LinkStack *s)
{
	s->top = 0;
}

// 判栈空
int IsEmpty(LinkStack *s)
{
	return s->top == 0;
}

// 压栈
void Push(LinkStack *s, DataType x)
{
	// 将元素x插入链栈头部
	StackNode *p = (StackNode *)malloc(sizeof(StackNode));
	p->data = x; 
	p->next = s->top; 
	s->top = p;       
}

// 出栈
DataType Pop(LinkStack *s)
{
	DataType x;
	StackNode *p = s->top;
	if (IsEmpty(s))
	{
		printf("栈为空\n");
		exit(1);
	}
	x = p->data;
	s->top = p->next;
	free(p);
	return x;
}

// 取栈顶元素
DataType Top(LinkStack *s)
{
	if (IsEmpty(s))
	{
		printf("栈为空\n");
		exit(1);
	}
	return s->top->data;
}

⌨️ 快捷键说明

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