怎么进行原始数据入栈啊
就是在主函数中,原始数据入栈怎么写啊?帮我看看我打印函数写的有没问题,运行的时候老是死循环,#include <stdio.h> #include <stdlib.h> #define OK 1 #define OVERFLOW -1 #define ERROR 0 #define STACK_INIT_SIZE 100 //存储空间初始分配量 #define STACKINCREMENT 10 //存储空间分配增量 typedef struct{ char *base; char *top; int stacksize; }SqStack; int InitStack(SqStack &S){ se=(char*)malloc(STACK_INIT_SIZE*sizeof(char)); if (! se) exit(OVERFLOW); p= se; acksize=STACK_INIT_SIZE; return OK; } // 栈的初始化 int Push(SqStack &S, char e){ //插入元素e为新的栈顶元素 if ( se>= acksize){//栈满,追加存储空间 se=(char*)realloc( se, ( acksize+STACKINCREMENT)*sizeof(char)); if (! se) exit(OVERFLOW); p= se+ acksize; acksize+=STACKINCREMENT; } * p++=e; return OK; } int Pop(SqStack &S, char &e){ //若栈不为空,则删除S的栈顶元素,用e返回其值,并返回OK,否则返回ERROR if ( p== se) return ERROR; e=*-- p; return OK; } int GetTop(SqStack &S, char &e){ //用e返回S的栈顶元素 if ( p== se) return ERROR; e=*( p-1); return OK; } int StackEmpty(SqStack &S){ //若栈为空栈,则返回OK,否则ERROR if ( p== se) return OK; else return ERROR; } void PrintStack(SqStack &S){//打印栈中元素 char *p; p= p-1; while(p!= se) { printf("%c",p); } *p--; } void main (){ //利用数组将栈内元素逆置 int i, n; char c,A[255]; SqStack S; InitStack(S); //初始化栈 //原始数据入栈 printf("Initial Stack:"); PrintStack(S); while(!StackEmpty(S)) { n++;Pop(S,A[n]); }; for(i=1;i<=n;i++) { //利用数组A将栈S内容逆置 Push(S,A[i]);} printf("Reversed Stack:"); PrintStack(S); }
貌似数组下标N没有明显的赋值 藏那了??
看不懂有没有谁顺带解释下是个神马意思
答:scanf("%d",a[i]); 改为: scanf("%d",a+i); 或scanf("%d",&a[i]); scanf函数是要取地址的!详情>>
答:网页缓存 过段时间就会变成E的图标了详情>>