栈的基本概念及其描述
栈是一种特殊的线性表,规定它的插入运算和删除运算均在线性表的同一端进行,进行插入操作和删除操作的那一端称为栈顶,另一端称为栈底。
栈的插入操作和删除操作分别称为进栈和出栈。
FILO(First In Last Out)后进先出/先进后出
eg.有1.2.3号火车一次进站,它们的出栈顺序可以是
1.2.3(1来,1走,2来,2走,3来,3走)
2.1.3(1来,2来,2走,1走,3来,3走)
1.3.2(1来,1走,2来,3来,3走,2走)
3.2.1(1来,2来,3来,3走,2走,1走)
2.3.1(1来,2来,2走,3来,3走,1走)
栈的主要操作是插入操作和删除操作。
栈(顺序存储)主要要掌握以下操作:
1、初始化
2、判断栈是否为空
3、读栈顶节点值
4、栈的插入操作
5、栈的删除操作
运行环境:Code::Blocks 17.12
下面是头文件
#ifndef SEQSTACK_H_INCLUDED
#define SEQSTACK_H_INCLUDED
#define MAXSIZE 100
#include "stdio.h"
#include "stdlib.h"
typedef int datatype;
typedef struct
{
datatype a[MAXSIZE];
int top;
}sequence_stack;
//栈(顺序存储)的初始化
void init (sequence_stack *st)