设为首页 加入收藏

TOP

FIFO队列 ADT接口 数组实现
2018-10-21 16:09:05 】 浏览:42
Tags: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("输入字符串\n"); 12 while((N=getchar())!=EOF) 13  { 14 if(N=='*') 15  { 16  putchar(QUEUEget()); 17 putchar('\n'); 18  } 19 else 20  QUEUEput(N); 21  } 22 23 return 0; 24 }

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇关于VC++6.0与WIN10系统不兼容的.. 下一篇浮点数据有损压缩算法 附完整C代码

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目