在线咨询
有事点这里
有事点这里
看不懂这篇文章?联系我们
("麦洛克菲"长期致力于内核安全的推广与普及,我们更专业!)
求职QQ群:223902435。讨论各种求职笔试面试问题
作者:admin 时间:2015-10-31
标题:实现基于数组的栈和队列

分析:栈与队列有两种实现方式,一种是链表,一种是数组。下面就以数组的形式来实现栈和队列。

 

#define MAXSIZE 100  /*定义stacksize为常数100 */

int push(int stack[], int *ptop, int value)

{

         int top;

         top = *ptop;

         if ( top == MAXSIZE)

         {

         printf("overflow\n");

         return -1;

         }

         else

          {

              ......; 

       }

}

 

int pop(int stack[], int *ptop, int *value)

 

{

         int top;

         top = *ptop;

         if (top==0)

         {

              return -1;

         }

          else

          {

              ......

             return 0;

         }

}

#define  MAXSIZE  100

int EnQueue(int *Q, int *pf, int *pr, int value)

 

{

       int front, rear;

       front = *pf;

       rear = *pr;

       if ( (rear+1) % MAXSIZE == front )

              return 0;

       else

       {

          ......

         return 1;

       }

}

 

int DeQueue(int *Q, int *pf, int *pr, int *value)

{

       int front, rear;

       front = *pf;

       rear = *pr;

       if (front == rear)

          return 0;                                   

       else

       {

           

            ...... 

            return 1;

       }

}

注意:算法部分是麦洛克菲基础部分重点培训的内容,每一个点都可能成为麦洛克菲考试,作业的组成部分。所以,我们不提供具体的解法。如果您对某个点有疑问,请随时联系我们。