|
第一道题:我是用栈实现的。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct snode{
char data;
struct snode * next;
}snode;
typedef struct{
int len;
snode * top;
}stack;
void ins(stack * s){
s->top=NULL;s->len=0;
}
int push(stack * s, char e){
snode *p;
p=(snode * )malloc(sizeof(snode));
if(!p) return(-1);
p->data=e;p->next=s->top;
s->top=p;s->len++;
return(0);
}
int pop(stack *s, char *e){
snode *p;
if(s->top==NULL) return(-1);
p=s->top; *e=p->data;
s->top=p->next; s->len++;
return(0);
}
void main()
{
char str1[6],str2[6],str3[11];
int i=0;
stack s;
ins(&s);
gets(str1);
gets(str2);
strcpy(str3,str1);
strcat(str3,str2);
puts(str1);
puts(str2);
while(str3!='\0')
{
if(push(&s,str3)==-1){
printf("error\n");
return;
}
i++;
}
while(pop(&s,&str3)!=-1)
{
printf("%c",str3);
i++;
}
}
[ 本帖最后由 gyCai 于 2006-5-2 00:48 编辑 ] |
|