資料結構之棧

來源:互聯網
上載者:User

棧資料結構為加以限制條件的線性表,具有後進先出的特點,只能從線性表尾部取元素,也只能從尾部添加元素。

棧具有遞迴特性,棧的應用有:數制轉換、括弧匹配的檢驗、行編輯程式、運算式求值。

 

用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;

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.