zoukankan      html  css  js  c++  java
  • FIFO队列 ADT接口 数组实现

    FIFO.h (接口)

     1 #include "Item.h"
     2 #include <stdlib.h>
     3 
     4 typedef struct STACKnode *link;
     5 struct STACKnode
     6 {
     7     Item item;
     8     link next;
     9 };
    10 
    11 void QUEUEinit(int);
    12 int QUEUEempty(void);
    13 void QUEUEput(Item);
    14 Item QUEUEget(void);
    15 void QUEUEerror(void);

    Item.h (自定义类型)

    1 typedef char Item;

    FIFO.c (接口实现)

     1 static Item *q;
     2 static int N, head, tail;
     3 
     4 void QUEUEinit(int maxN)
     5 {
     6     q=malloc((maxN+1)*sizeof(Item));
     7     N=maxN+1;
     8     head=N; 
     9     tail=0; 
    10 }
    11 int QUEUEempty(void)
    12 {
    13     return head%N==tail;
    14 }
    15 void QUEUEput(Item item)
    16 {
    17     if(tail==head-1)
    18         QUEUEerror();
    19     q[tail++]=item;
    20     tail=tail%N;
    21 }
    22 Item QUEUEget(void)
    23 {
    24     if(QUEUEempty())
    25         QUEUEerror();
    26     head=head%N;
    27     return q[head++];
    28 }
    29 void QUEUEerror(void)
    30 {
    31     printf("队列为空或已满");
    32     exit(1);
    33 } 

    main.c (主程序)

     1 #include <stdio.h>
     2 #include "FIFO.h"
     3 
     4 int main(void)
     5 {
     6     int N;
     7     printf("输入字符串大小:");
     8     if(scanf("%d", &N))
     9         QUEUEinit(N);
    10     getchar();
    11     printf("输入字符串
    ");
    12     while((N=getchar())!=EOF)
    13     {
    14         if(N=='*')
    15             {
    16                 putchar(QUEUEget());
    17                 putchar('
    ');
    18             }
    19         else
    20             QUEUEput(N);
    21     }
    22     
    23     return 0;
    24 }
  • 相关阅读:
    java 利用jsoup 爬取知乎首页问题
    ROIAlign, ROIPooling及ROIWarp对比
    yii2.0 gii
    mysql索引操作
    lbs basic mongodb
    php操作mongodb
    设计模式六大原则
    Java集合
    Java 快速失败( fail-fast ) 安全失败( fail-safe )
    计数数组中值的出现次数
  • 原文地址:https://www.cnblogs.com/WALLACE-S-BOOK/p/8982550.html
Copyright © 2011-2022 走看看