循环队列sequence_queue_几何途行_新浪博客

本文详细介绍了如何使用C语言实现循环队列的数据结构,包括初始化、判断空队列、显示队列元素、插入元素及删除元素等关键操作。

// 循环队列的实现

// 2015/3/30

#include

#include

#define MAXSIZE 5

typedef int datatype;

//定义队列结构体

typedef struct {

datatype a[MAXSIZE] ;

int front ;//队首

int rear ;//队尾

}sequence_queue;

//初始化函数

void init( sequence_queue *p )

{

p->front= p->rear= 0 ;

}

//判断是否为空队列

int is_empty( sequence_queue *p )

{

return (p->front == p->rear ) ? 1:0 ;

}

//显示函数

void display_queue(sequence_queue *p)

{

int i ;

if( is_empty(p) )//如果是空队列

{

printf("\n顺序队列是空的!\n") ; exit(1) ;

}

else

{

if( p->front > p->rear ) //判断队首是否大于队尾

for( i=p->front; i< ( p->rear+MAXSIZE ) ; i++)

printf("%d" ,p->a[ i%MAXSIZE ]);

else

for( i=p->front; i< p->rear ; i++ )

printf("%d \t" ,p->a[i]);

}

}

//插入函数,只能从队尾插入

void insert_queue(sequence_queue *p , datatype x )

{

if( (p->rear+1)%MAXSIZE == p->front )

{ printf("队列已满!\n") ; exit(1) ;}

p->a[p->rear] =x ;

p->rear = (p->rear+1)%MAXSIZE ;

}

//删除函数

void dele_queue(sequence_queue *p)

{

if( is_empty(p) )//如果是空队列

{

printf("\n顺序队列是空的!\n") ; exit(1) ;

}

p->front = ( p->front+1 ) %MAXSIZE ;

}

//主函数

int main()

{

sequence_queue sp ;

int x,flag=1;

init(&sp) ; //初始化

while(flag)

{

printf("请输入要插入的数!\n") ;

scanf("%d" ,&x) ;

//插入

insert_queue(&sp , x) ;

printf("是否继续插入!!继续插入(1) ,退出插入(0)\n") ;

scanf("%d" ,&flag) ;

}

display_queue(&sp);//显示

dele_queue(&sp) ;//删除

printf("\n") ;

display_queue(&sp);

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值