91-95.c个人练习。

来源:互联网 发布:ps是什么软件 编辑:程序博客网 时间:2024/05/18 00:58
#include<stdio.h>#include<malloc.h>#define MaxSize 100typedef char ElemType;typedef struct { ElemType elem[MaxSize]; int top;/*栈指针*/}SqStack;void InitStack(SqStack * &s)/*[初始化栈s*/{ s=(SqStack *)malloc(sizeof(SqStack)); s->top=-1;}void ClearStack(SqStack * &s)/*释放栈s*/{ free(s);}int StackLength(SqStack *s)/*求栈s的长度*/{ return(s->top+1);}int StackEmpty(SqStack *s)/*判断栈s是否为空*/{ return(s->top==-1);}int Push(SqStack * &s,ElemType e)/*进栈元素e*/{ if(s->top==MaxSize-1)  return 0; s->top++; s->elem[s->top]=e; return 1;}int Pop(SqStack * &s,ElemType &e)/*出栈一个元素*/{ if(s->top==-1)  return 0; e=s->elem[s->top]; s->top--; return 1;}int GetTop(SqStack *s,ElemType &e)/*取栈顶元素*/{ if(s->top==-1)  return 0; e=s->elem[s->top]; return 1;}void DispStack(SqStack * s)/*从栈顶到栈底输出元素*/{ int i; for(i=s->top;i>=0;i--)  printf("%c",s->elem[i]); printf("\n");}


#include<stdio.h>#include<malloc.h>#define MaxSize 100typedef char ElemType;typedef struct { ElemType elem[MaxSize]; int top;/*栈指针*/}SqStack;extern void InitStack(SqStack * &s);extern void ClearStack(SqStack * &s);extern int StackLength(SqStack *s);extern int StackEmpty(SqStack *s);extern int Push(SqStack * &s,ElemType e);extern int Pop(SqStack * &s,ElemType &e);extern int GetTop(SqStack *s,ElemType &e);extern void DispStack(SqStack * s);void main(){ ElemType e; SqStack * s; printf("(1)初始化栈s\n"); InitStack(s); printf("(2)栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(3)依次进栈元素a,b,c,d,e\n"); Push(s,'a'); Push(s,'b'); Push(s,'c'); Push(s,'d'); Push(s,'e'); printf("(4)栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(5)栈长度:%d\n",StackLength(s)); printf("(6)从栈顶到栈底元素:");DispStack(s); printf("(7)出栈序列:"); while(!StackEmpty(s)) {  Pop(s,e);  printf("%c",e); } printf("\n"); printf("(8)栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(9)释放栈\n"); ClearStack(s);}