level 1
回文问题:检测并输出一个文档中的回文单词。(要求用栈和队列实现)
2012年12月08日 15点12分
1
level 1
很简单嘛
#include <stdio.h> #
include
#include <stdlib.h> #
define STACK_INIT_SIZE 100 #define STACKINCREMENT 20 typedef struct{ int *top; int *base; int stacksize; }Stack; void initStack(Stack *s) { s->base=(int*)malloc(STACK_INIT_SIZE*sizeof(int)); if(!s->base) exit(1); s->top=s->base; s->stacksize=STACK_INIT_SIZE; } int getTop(Stack *s) /*获取栈顶元素*/ { int e; if(s->top==s->base) exit(1); e=*(s->top-1); return e; } void push(Stack *s,int e) /*压栈*/ { if(s->top-s->base>=s->stacksize) { s->base=(int*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(int)); if(!s->base) exit(1); s->top=s->base+s->stacksize; s->stacksize+=STACKINCREMENT; } *s->top++=e; } int pop(Stack *s) /*删栈*/ { int e; if(s->top==s->base) exit(1); e=*--s->top; return e; } int main() { int a[10]; int i; Stack t;s=&t; /*如果上面的Stack t;s=&t;改定义为Stack *s=NULL;在winTC下运行是没问题的,但在codeblocks下,程序就停止工作了*/ initStack(s); printf("Please input 10 numbers:"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(i=0;i<10;i++) { push(s,a[i]); } printf("The top number is:%d\n",getTop(s)); printf("Pop the Stack:"); for(i=0;i<10;i++) { printf("%d ",pop(s)); } getch(); return 0; }
2012年12月09日 11点12分
4
level 1
那你给我一点时间吧,我重新做一份C++的。你稍等会儿。
2012年12月09日 15点12分
6