标题:实现基于数组的栈和队列


标题:实现基于数组的栈和队列

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

 

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

       }

}

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



看文字不过瘾?点击我,进入腾讯课堂视频教学
麦洛科菲长期致力于IT安全技术的推广与普及,我们更专业!我们的学员已经广泛就职于BAT360等各大IT互联网公司。详情请参考我们的 业界反馈 《周哥教IT.C语言深学活用》视频

我们的微信公众号,敬请关注