顺序栈的基本运算
2013-07-29 11:02
351 查看
#include<stdio.h> #include<stdlib.h> #define maxsize 30 typedef struct { char data[maxsize]; int top; }sqstack; //初始化 void init_sqstack(sqstack **s) { *s=(sqstack*)malloc(sizeof(sqstack)); (*s)->top=-1; } //判断是否为空 int empty_sqstack(sqstack *s) { if(s->top=-1) return 1; else return 0; } //入栈 void push_sqstack(sqstack *s,char x) { if(s->top==maxsize-1) printf("栈已满!\n"); else { s->top++; s->data[s->top]=x; } } //出栈并返回给主调函数 void pop_sqstack(sqstack *s,char *x) { if(s->top==-1) printf("栈是空的。\n"); else { *x=s->data[s->top]; s->top--; } } //出栈 void top_sqstack(sqstack *s,char *x) { if(s->top==-1) printf("栈是空的!\n"); else *x=s->data[s->top]; } void print(sqstack *s) { int i; for(i=0;i<=s->top;i++) printf("%4c",s->data[i]); printf("\n"); } void main() { sqstack *s; char x,*y=&x; init_sqstack(&s); if(empty_sqstack(s)) printf("栈是空的。\n"); printf("*** 入栈 ***\n"); scanf("%c",&x); while(x!='\n') { push_sqstack(s,x); scanf("%c",&x); } printf("您创建的栈为:\n"); print(s); pop_sqstack(s,y); printf("栈顶元素为:%c\n",*y); printf("出栈后顺序栈中的元素为:\n"); print(s); top_sqstack(s,y); printf("输出读出的栈顶元素为:%c\n",*y); printf("输出当前栈元素为:\n"); print(s); }
相关文章推荐
- 第三周 项目1 顺序表的基本运算
- 第三周项目一(2)—顺序表的基本运算
- 第三周-项目1-顺序表的基本运算
- 第三周项目1 - 顺序表的基本运算(2)
- (第三周项目1)顺序表的基本运算
- 第三周--顺序表的基本运算
- 顺序栈基本运算的实现 字符型栈
- 实现顺序队列各种基本运算的算法
- 第三周项目一 顺序表的基本运算
- 第三周项目1 顺序表的基本运算
- OJ 2989 Problem D 顺序表基本运算(线性表)
- 【第三周项目一】——顺序表的基本运算
- 第三周实践项目1-顺序表的基本运算
- 顺序表各种基本运算的算法
- 第3周项目1——顺序表的基本运算
- 第三周的顺序表的基本运算
- 第三周【项目1 - 顺序表的基本运算】
- 编写一个一个程序实现顺序环形队列各项基本运算(假设队列基本元素类型为Char)
- 第3周项目1—顺序表的基本运算
- 第三周项目1-顺序表的基本运算