2008秋季-计算机软件基础-0922课堂用例(1)

 

复制代码
 

 

/*---------------------------------------------------------
 Title: Sequence Queue(顺序队列)顺序队列-顺序存储结构的队列 
  请先阅读教材74-76页, 2.4.1-2.4.3节, 队列的定义及基本运算
 (注意:以下程序为简化后的,仅供入门学习之用)
----------------------------------------------------------
*/
#include
<stdio.h>
#include
<stdlib.h>
//定义队列的结构
struct queue
{
   
int q[4];//存放数据元素
   int front;//指针,指向队头
   int rear;//指针,指向队尾后一个位置
};

//初始化队列
struct queue * InitialQueue()
{
 
struct queue * head;
 head
=(struct queue *)malloc(sizeof(struct queue ));
 head
->front=0;
 head
->rear=0;
 
return head;
}

//入队列
void EnterIntoQueue(struct queue * head, int value)
{
    
if(head->front== (head->rear+1)%4)
    {
        printf(
"Queue is full. Enter failed.\n");
        
return;
    }
    head
->q[head->rear]=value;
    head
->rear=(head->rear+1)%4;
 }

//出队列
void DeleteFromQueue(struct queue * head)
{
 
if(head->front==head->rear)
 {
     printf(
"Queue is empty, Delete failed\n");
 }
 
else
    {
        head
->front=(head->front+1)%4;
    }
}

//显示队列中所有元素
void ShowAllElements(struct queue * head)
{
 
int i;
 printf(
" \nShow all elements.\n");
 
if(head->front<head->rear)
 {
   
for(i=head->front;i<head->rear;i++)
     printf(
" %d ",head->q[i]);
 }
if(head->front>head->rear)
 {
   
for(i=head->front;i<4;i++)
     printf(
" %d ",head->q[i]);
   
for(i=0;i<head->rear;i++)
     printf(
" %d ",head->q[i]);
 }
}

void main()
{
    
struct queue * head1;
    head1
=InitialQueue();
    ShowAllElements(head1);
    EnterIntoQueue(head1,
1);
    EnterIntoQueue(head1,
2);
    EnterIntoQueue(head1,
3);
    DeleteFromQueue(head1);
    EnterIntoQueue(head1,
4);
//  
        ShowAllElements(head1);

}

 

 
复制代码
posted @   emanlee  阅读(445)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示