leetcode 232. Implement Queue using Stacks

来源:互联网 发布:安徽继远软件知乎 编辑:程序博客网 时间:2024/06/05 08:10

Implement the following operations of a queue using stacks.

利用堆栈完成下列队列操作

  • push(x) -- Push element x to the back of queue.将元素放入队列最末尾
  • pop() -- Removes the element from in front of queue.移除队列首部的元素
  • peek() -- Get the front element.得到首部元素
  • empty() -- Return whether the queue is empty.返回队列是否为空
Notes:
  • You must use only standard operations of a stack -- which means only push to toppeek/pop from topsize, and is empty operations are valid.//只能利用堆栈的标准操作方式
  • Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
  • You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).

typedef struct {      int * list;    int size;} Queue;/* Create a queue */void queueCreate(Queue *queue, int maxSize) {        queue->list = (int *)malloc(sizeof(int)*maxSize);     queue->size=0;}/* Push element x to the back of queue */void queuePush(Queue *queue, int element) {        if(queue->size==0)    {        queue->list[0]=element;        queue->size++;    }    else    {        for(int i=queue->size;i>0;i--)        {            queue->list[i]=queue->list[i-1];        }        queue->list[0]=element;        queue->size++;    }}/* Removes the element from front of queue */void queuePop(Queue *queue) {      queue->size--;   }/* Get the front element */int queuePeek(Queue *queue) {       return queue->list[queue->size-1];  }/* Return whether the queue is empty */bool queueEmpty(Queue *queue) {       if(queue->size==0)    return true;    else    return false; }/* Destroy the queue */void queueDestroy(Queue *queue) {     free(queue->list);  }


0 0
原创粉丝点击