使用队列栈结构反序输出字符串_栈和队列都是什么结构
使用队列栈结构反序输出字符串由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“栈和队列都是什么结构”。
队列结构
实验目的1.熟练掌握栈和队列的特点。
2.掌握栈的定义和基本操作,熟练掌握顺序栈的操作及应用。3.掌握对列的定义和基本操作,熟练掌握链式队列的操作及应用, 掌握环形队列的入队和出队等基本操作。
4.加深对栈结构和队列结构的理解,逐步培养解决实际问题的编程能力。
实验要求
1.认真阅读和掌握本实验的算法。2.上机将本算法实现。
3.保存程序的运行结果,并结合程序进行分析。
4.上机过程中,能够熟练运用高级语言的程序调试器DEBUG调试程序。5.上机后,认真整理源程序及其注释,完成实验报告(包括源程序、实验结果、算法分析、心得体会等)。
实验内容
1.在VC++环境下编写调试队列初始化,删除结点,查找结点,插入结点的算法和函数。
2.把已布置作业中的算法改成程序,进行运行。
实验清单
#include #include
#define size 50
typedef struct { char str[size];int top;}seqstack;
void initstack(seqstack *s);int pop(seqstack *s,char x);int push(seqstack *s,char x);void main(){ int i,j;char str[size],a;seqstack *s;printf(“please input a string :n”);gets(str);s=(seqstack*)malloc(size);initstack(s);for(i=0;str[i]!=' ';i++){ push(s,str[i]);j++;} printf(“the changed string is:n”);for(j=i;j>0;j--){ pop(s,a);
} printf(“n”);}
void initstack(seqstack *s){
s->top=-1;}
int push(seqstack *s,char x){ if(s->top==size-1)
return(0);s->top++;s->str[s->top]=x;return(1);}
int pop(seqstack *s,char x){ if(s->top==-1)
return(0);else {
}
} x=s->str[s->top];s->top--;printf(“%c”,x);return(1);输入数据及相应运行结果
实验心得
在这节课中,我学会用调试这种方法来找出自己的错误
在实验的时候,发现自己对指针内存分配的情况还不是很清楚,会造成内存出错 经过这次上机实验,感觉到自己对序列栈的理解更加深刻,使用起来也更加得心应手