数据结构实验之栈:行编辑器
2016-08-09 10:36
176 查看
这道题的算法思想就是:利用栈只能在其一端操作的思想,通过建立栈,比较输入字符来进行入栈和出栈。
代码如下:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define maxsize 255
typedef struct{/*栈的定义*/
char data[maxsize];
int top;
}Seqstack;
Seqstack *Initstack(){/*初始化栈*/
Seqstack *s;
s=malloc(sizeof(Seqstack));
s->top=-1;
return s;
}
Seqstack *Pushstack(Seqstack *s,char e){/*进栈函数*/
if(s->top==maxsize-1)
printf("OVERFLOW");
s->top++;
s->data[s->top]=e;
return s;
}
int main(){
char a[255];
int n,i;
Seqstack *s,*p;
while(scanf("%s",a)!=EOF){
s=Initstack();
p=Initstack();
n=strlen(a);
for(i=0;i<n;i++){
if(a[i]=='@')
s=Initstack();
else if(a[i]=='#'){
if(s->top!=-1)
s->top--;
else
continue;
}
else
s=Pushstack(s,a[i]);
}
for(i=s->top;i>=0;i--)
p=Pushstack(p,s->data[i]);
for(i=p->top;i>=0;i--)
printf("%c",p->data[i]);
printf("\n");
}
return 0;
}
相关文章推荐
- 数据结构实验之栈:行编辑器
- 数据结构实验之栈:行编辑器
- 数据结构实验之栈:行编辑器
- 数据结构实验之栈:行编辑器
- 数据结构实验之栈:行编辑器
- [1479]数据结构实验之栈:行编辑器(栈) SDUT
- 数据结构实验之栈与队列九:行编辑器
- 数据结构实验之栈:行编辑器
- [1479]数据结构实验之栈:行编辑器(栈) SDUT
- 数据结构实验之栈:行编辑器
- 数据结构实验之栈:行编辑器
- SDUT OJ 数据结构实验之栈:行编辑器
- SDUT 1479 数据结构实验之栈:行编辑器
- 数据结构实验之栈与队列九:行编辑器
- 数据结构实验之栈:行编辑器(手写模拟栈)
- 2015年寒假集训专题--- 数据结构实验之栈:行编辑器
- 数据结构实验之栈与队列九:行编辑器
- 数据结构实验之栈:行编辑器
- 数据结构实验之栈:行编辑器
- 数据结构实验之栈:行编辑器(栈的应用)