3.出栈 void Pop(STACK"'S, StackEntry *item) if( StackEmpty(*S)exit(“ Stack is empty”); else item=S->top->item; p=S->top; - >top=p->next; free(p) 西师大学数学与信启学院
ᷜߎ .3 void Pop(STACK*S, StackEntry *item) { if (StackEmpty(*S)) exit(³Stack is empty´); else { *item=S->top->item; p=S->top; S->top=p->next; free(p); } }
4.获取栈顶元素内容 void Gettop(stack s, StackEntry *item) if StackEmpty(S)exit("Stack is empty") else *item=S. top->item 5.判断栈S是否空 int StackEmpty(STACK S if(s top==NULL return TRUE else false: 西师大学数学与信启学院
4. 㦋পᷜ乊ܗ㋴ݙᆍ void GetTop(STACK S,StackEntry *item) { if (StackEmpty(S)) exit(³Stack is empty´); else *item=S.top->item; } 5. ߸ᮁᷜSᰃ৺ぎ int StackEmpty(STACK S) { if (S.top==NULL) return TRUE; else FALSE; }
3.1.4栈的应用举例 【举例1】将从键盘输入的字符序列逆置输出 比如,从键盘上输入: tset a si sihI;算法将输 出: This is a test 下面我们给出解决这个问题的完整算法。 typedef char StackEntry; void Reversereado STACK S; ∥定义一个栈结构S ar ch Initstack(&S);∥始化栈 西师大学数学与信启学院
3.1.4 ᷜⱘᑨ⫼В՟ ǏВ՟ǐᇚҢ䬂Ⲭ䕧ܹⱘᄫヺᑣ߫䗚㕂䕧ߎ ↨བˈҢ䬂ⲬϞ䕧ܹ˖tset a si sihT˗ㅫ⊩ᇚ䕧 ߎ˖This is a test ϟ䴶៥Ӏ㒭ߎ㾷އ䖭Ͼ䯂乬ⱘᅠᭈㅫ⊩DŽ typedef char StackEntry; void ReverseRead( ) { STACK S; //ᅮНϔϾᷜ㒧ᵘS char ch; InitStack(&S); //߱ྟ࣪ᷜ