⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.c

📁 C语言库函数的源代码,是C语言学习参考的好文档。
💻 C
字号:
/* +++Date last modified: 05-Jul-1997 */

/*
+----------------------------------------------------+
|               Thunderbird Software                 |
+----------------------------------------------------+
| Filespec  :  Queue.c                               |
| Date      :  September 29, 1994                    |
| Time      :  10:16AM                               |
| Revision  :  1.0                                   |
+----------------------------------------------------+
| Programmer:  Scott Andrews                         |
| Address   :  5358 Summit RD SW                     |
| City/State:  Pataskala, Ohio                       |
| Zip       :  43062                                 |
+----------------------------------------------------+
| Released to the Public Domain                      |
+----------------------------------------------------+
*/

#include <stdlib.h>

#include "queue.h"

QUEUE *alloc_queue( int size)
{ QUEUE *retval;
  retval = (QUEUE *) malloc( sizeof( QUEUE) + (size_t) size);
  if ( (QUEUE *) 0 != retval)
  {  retval->size = size;
     retval->head = 0;
     retval->tail = 0;
     retval->avail = size;
     retval->buffer = ( (char *) retval) + sizeof( QUEUE);
  }
  return retval;
}

int en_queue( QUEUE *queue, char data)
{ int retval = -1;
  if ( 0 != queue->avail)
  {  *( queue->buffer + queue->head) = data;
     queue->head += 1;
     if ( queue->head == queue->size)
        queue->head = 0;
     queue->avail -= 1;
     retval = queue->avail;
  }
  return retval;
}

int de_queue( QUEUE *queue)
{ int retval = -1;
  if ( queue->avail != queue->size)
  {  retval = *( queue->buffer + queue->tail);
     queue->tail += 1;
     if ( queue->tail == queue->size)
        queue->tail = 0;
     queue->avail += 1;
  }
  return retval;
}

/* End of Queue.c */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -