爱问知识人 爱问教育 医院库

怎么进行原始数据入栈啊

首页

怎么进行原始数据入栈啊

就是在主函数中,原始数据入栈怎么写啊?帮我看看我打印函数写的有没问题,运行的时候老是死循环,#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);
}

提交回答
好评回答

其他答案

类似问题

换一换

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):