数据结构之栈

栈数据结构为加以限制条件的线性表,具有后进先出的特点,只能从线性表尾部取元素,也只能从尾部添加元素。

栈具有递归特性,栈的应用有:数制转换、括号匹配的检验、行编辑程序、表达式求值。

 

用ElemType表示抽象数据类型,

 

栈数据结构的表示和操作:

#define  INIT_STACK_SIZE    100

 

 typedef  struct  STACK

{

     ElemType  *pBase;

     ElemType  *pTop;

     short    stackSize;

}myStack;

 

 

STATUS  initStack(myStack &stack);

STATUS  popStack(myStack &stack,ElemType *element);

STATUS  pushStack(myStack &stack,ElemType   element);

STATUS  isTempStack(myStack &stack);

 

 

STATUS  initStack(myStack &stack)

{

     stack->pBase = malloc(INIT_STACK_SIZE*sizeof(ElemType));

    

     if(stack == NULL)

      {

        printf("获取内存错误!/n");

        return  FALSE;

      }

    

     stackSize = INIT_STACK_SIZE;

    

     stack->pTop =  stack->pTop;

 

     return   TRUE;

}

 

STATUS  popStack(myStack &stack,ElemType *element)

{

       if( isTempStack) return;

     

       element = *(stack->pTop--);

}

STATUS  pushStack(myStack &stack,ElemType   element);

 

STATUS  isTempStack(myStack &stack)

{

      if(stack == NULL)

        {

            printf("该栈不存在!/n");

            return FALSE;

        } 

 

     if( stack->pTop == stack->pTop)  return TRUE;

}

你可能感兴趣的:(数据结构之栈)