• 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);

    }

     

     
  • 相关阅读:
    gitlab 国内镜像安装
    docker 安装和启动redis
    jenkins 国内镜像更新地址
    docker 安装 jenkins
    docker 使用阿里云镜像加速
    '
    windows/linux 命令可以用符号连接执行
    思科访问控制列表优先级
    交换机泛洪
    虚拟机floppy0
  • 原文地址:https://www.cnblogs.com/emanlee/p/1297321.html
Copyright © 2020-2023  润新知