栈的几种基本运算(1)初始化栈InitStack(&s) : *构造一个空栈s(2)销毁栈ClearStack(&s)释放栈s占用的存储空间(3)求栈的长度StackLength(s)返回栈s中的元素个数(4)判断栈是否为空 StackEmpty(s)中若栈s为空,则返回真;否则返回假
6 (1)初始化栈 InitStack(&s): (2)销毁栈 ClearStack(&s) : (3)求栈的长度 StackLength(s): (4)判断栈是否为空 StackEmpty(s): 栈的几种基本运算: 构造一个空栈s。 释放栈s占用的存储空间。 返回栈s中的元素个数。 若栈s为空,则返回真;否则返回假
(5)入栈Push(&S,e):将元素e插入到栈s中作为栈顶元素。aneaia21(6)出栈Pop(&s,&e):从栈s中退出栈顶元素,并将其值赋给e。a1an-1a2
7 (5)入栈 Push(&S,e):将元素e插入到栈s中作为栈顶 元素。 a1 a2 an . . e (6)出栈 Pop(&s,&e):从栈s中退出栈顶元素,并将其 值赋给e。 a1 a2 an a . . n-1
(7)取栈顶元素GetTop(s,&e):返回当前的栈顶元素,并将其值赋给ealana2(8)显示栈中元素DispStack(s):从栈顶到栈底顺序显示栈中所有元素
8 (7)取栈顶元素 GetTop(s,&e):返回当前的栈顶元 素,并将其值赋给e。 (8)显示栈中元素 DispStack(s):从栈顶到栈底顺序 显示栈中所有元素。 a1 a2 a . . n
3.1.2栈的顺序存储结构及基本运算实现假设栈的元素个数最大不超过正整数MaxSize所有的元素都具有同一数据类型ElemType,则可用下列方式来定义栈类型SqStack :typedef structElemType elem[MaxSizel ;/*栈指针*/int top :} SqStack;
9 3.1.2 栈的顺序存储结构及基本运算实现 假设栈的元素个数最大不超过正整数MaxSize,所 有的元素都具有同一数据类型ElemType,则可用下 列方式来定义栈类型 SqStack: typedef struct { ElemType elem[MaxSize]; int top; /*栈指针*/ } SqStack;
例3.1设有4个元素a、b、c、d进栈,给出它们所有可能的出栈次序。所有可能的出栈次序如下:abcd abdc acbd acdbadcb bacd badc bcadbcda bdca cbad cbdacdbadcba10
10 例3.1 设有4个元素a、b、c、d进栈,给出它们 所有可能的出栈次序。 所有可能的出栈次序如下: abcd abdc acbd acdb adcb bacd badc bcad bcda bdca cbad cbda cdba dcba