(5)进栈Push(&S,e):将元素e插入到栈s中作 为栈顶元素。 ()出栈Pop(&s,&e):从栈s中退出栈顶元素, 并将其值赋给e。 (7)取栈顶元素 GetTop(s,&e):返回当前的栈 顶元素,并将其值赋给e。 (8)显示栈中元素 DispStack(s):从栈顶到栈 底顺序显示栈中所有元素
(5)进栈Push(&S,e):将元素e插入到栈s中作 为栈顶元素。 (6)出栈Pop(&s,&e):从栈s中退出栈顶元素, 并将其值赋给e。 (7)取栈顶元素GetTop(s,&e):返回当前的栈 顶元素,并将其值赋给e。 (8)显示栈中元素DispStack(s):从栈顶到栈 底顺序显示栈中所有元素
∥3.1.2栈的顺序存情结构及其基本运算奥现 假设栈的元素个数最大不超过正整数 Maxsize,所有的元素都具有同一数据类型 ElemType,则可用下列方式来定义栈类型 Sastack. typedef struct ElemType elem MaxSizel int top 栈指针* SqStack
3.1.2 栈的顺序存储结构及其基本运算实现 假设栈的元素个数最大不超过正整数 MaxSize,所有的元素都具有同一数据类型 ElemType,则可用下列方式来定义栈类型 SqStack: typedef struct { ElemType elem[MaxSize]; int top; /*栈指针*/ } SqStack;
例3.1设有4个元素a、b、c、d进栈,给 出它们所有可能的出栈次序。 答:所有可能的出栈次序如下 abcd abdc acbd acdb adcb bacd bade bcad beda bdca cbad cbda cdba dcba
例3.1 设有4个元素a、b、c、d进栈,给 出它们所有可能的出栈次序。 答:所有可能的出栈次序如下: abcd abdc acbd acdb adcb bacd badc bcad bcda bdca cbad cbda cdba dcba
例3.2设一个栈的输入序列为A,B,C,D,则 借助一个栈所得到的输出序列不可能是 (A)A, B, C, B)D, C,B,A (C)A, CD, B D) D,A, B, C 答:可以简单地推算,得容易得出D,A,B,C 是不可能的,因为D先出来,说明A,B,C,D均在 栈中按照入栈顺序在栈中顺序应为D,C,B,A, 出栈的顺序只能是D,C,B,A。所以本题答案 为D
例3.2 设一个栈的输入序列为A,B,C,D,则 借助一个栈所得到的输出序列不可能是 。 (A) A,B,C,D (B) D,C,B,A (C) A,C,D,B (D) D,A,B,C 答:可以简单地推算,得容易得出D,A,B,C 是不可能的,因为D先出来,说明A,B,C,D均在 栈中,按照入栈顺序,在栈中顺序应为D,C,B,A, 出栈的顺序只能是D,C,B,A。所以本题答案 为D
例33已知一个栈的进栈序列是1,2,3 ●●● n 其输出序列是P1P2…Dn,若p=n,则p的值。 (A)i (B)n-1 (C)n-计+1(①D)不确定 答:当p=n时,输出序列必是n,n-1,3,2,1, 则:p2=n-1,p3=n-2,…,pn=1,推断出p=n-+1,所以 本题答案为C
例3.3 已知一个栈的进栈序列是1,2,3,…,n, 其输出序列是p1 ,p2 ,…,pn ,若p1=n,则pi的值 。 (A) i (B) n-i (C) n-i+1 (D) 不确定 答:当p1=n时,输出序列必是n,n-1,…,3,2,1, 则:p2=n-1,p3=n-2,…,pn =1,推断出pi=n-i+1,所以 本题答案为C