数据结构之栈

    xiaoxiao2021-12-14  23

    栈的特点:后进先出(入栈和出栈均在尾部进行操作) 栈得顺序存储表示 几个主要算法 //构造空栈 Status InitStack(SqStack &S) {  S.base=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));  if(!S.base)  {   return OVERFLOW;  }  else  {   S.top=S.base;   S.stacksize=STACK_INIT_SIZE;   return OK;  } } //销毁栈 Status DestroyStack(SqStack &S) {  ElemType e;  if(S.top!=S.base)  {   Pop(S,e);  }  return OK; } //入栈 Status Push(SqStack &S,ElemType e) {  if(S.top-S.base>=S.stacksize)  {   S.base=(ElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(ElemType));   if(!S.base)   {    return OVERFLOW;   }   else   {    S.top=S.base+S.stacksize;    S.stacksize+=STACKINCREMENT;   }  }  else  {   *S.top++=e;   return OK;  } } //出栈 Status Pop(SqStack &S,ElemType &e) {  if(S.top==S.base)  {   return ERROR;  }  else  {   e=*--S.top;   return OK;  } }
    转载请注明原文地址: https://ju.6miu.com/read-971142.html

    最新回复(0)