当前位置: 首页 > news >正文

天津哪里能做网站免费学校网站建设

天津哪里能做网站,免费学校网站建设,国内网站建设最好公司,网站首页上的动画是咋做的使用顺序表来设计队列的最大优势是顺序表有可以定位元素的下标。 并且可以以Mod来使数组下标循环 #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<stdbool.h> typedef int CQDataType; typedef struct { int* array; in…

使用顺序表来设计队列的最大优势是顺序表有可以定位元素的下标。

并且可以以Mod来使数组下标循环

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
typedef int CQDataType;

typedef struct {
    int* array;
    int front;
    int tail;
    int cap;
} MyCircularQueue;

//创建队列
MyCircularQueue* myCircularQueueCreate(int k) {
    MyCircularQueue* obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));
    obj->front = obj->tail = 0;
    obj->cap = k;
    CQDataType* tmp = (CQDataType*)malloc(sizeof(CQDataType) * (obj->cap + 1));
    obj->array = tmp;
    return obj;
}

//isEmpty() : 检查循环队列是否为空。

 

//isEmpty() : 检查循环队列是否为空。
bool myCircularQueueIsEmpty(MyCircularQueue* obj) {
    assert(obj);
    if (obj->front == obj->tail)
        return true;
    else
        return false;
}

//isFull() : 检查循环队列是否已满

//isFull() : 检查循环队列是否已满
bool myCircularQueueIsFull(MyCircularQueue* obj) {
    assert(obj);
    if ((obj->tail+1) % (obj->cap + 1) == obj->front ))
        return true;
    else
        return false;
}

//向循环队列插入一个元素。如果成功插入则返回真
bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {
    assert(obj);
    if (myCircularQueueIsFull(obj))
    {
        return false;
    }
    obj->array[obj->tail++] = value;
    obj->tail %= (obj->cap + 1);
    return true;
}

//从循环队列中删除一个元素。如果成功删除则返回真。
bool myCircularQueueDeQueue(MyCircularQueue* obj) 
{
    assert(obj);
    if (myCircularQueueIsEmpty(obj))
    {
        return false;
    }
    else
    {
        if (obj->front == obj->cap)
            obj->front = 0;
        else
            obj->front++;
    }
    return true;
}

//Front: 从队首获取元素。如果队列为空,返回 -1 
int myCircularQueueFront(MyCircularQueue* obj) {

    assert(obj);
    if (myCircularQueueIsEmpty(obj))
        return -1;
    else
        return obj->array[obj->front];
}

//获取队尾元素。如果队列为空,返回 -1 。
int myCircularQueueRear(MyCircularQueue* obj) {
    assert(obj);
    if (obj->front == obj->tail)
    {
        return -1;
    }
    else
    {
        if (obj->tail == 0)
        {
            return obj->array[obj->cap];
        }
        else
        {
            return obj->array[obj->tail - 1];
        }
    }
}

//内存释放
void myCircularQueueFree(MyCircularQueue* obj) {
    free(obj->array);
    obj->front = NULL;
    obj->tail = NULL;
    obj->cap = 0;
}

http://www.yayakq.cn/news/60646/

相关文章:

  • 大学网站建设论文通信管理局网站 备案
  • 河源正规网站建设价格河池市网站建设
  • 电子商务网站系统的开发设计wordpress如何正常打开二级菜单
  • 我是做网站怎么赚钱吗如何避免网站被降权
  • 上海网站建设公司哪家好?国家信用信息公示系统河北
  • 网站调试东莞市专注网站建设公司
  • 摄影网站的实验设计方案代驾平台
  • 文库网站开发wordpress置顶文章 调用
  • 商业类网站的设计与制作格格导航官网
  • 品牌推广策略怎么写洛阳seo
  • 网站开发工作室营业执照dede地方门户网站模板
  • 网站建设中怎么编辑图片网络工程解决方案公司
  • 外贸零售网站建设电子商务营销策略有哪些
  • 在线做ppt的网站南通长城建设集团有限公司网站
  • 在线制作论坛网站水车头采集wordpress内容
  • 顺义手机网站设计四川网站建设scyiyou
  • 详情页设计模板网站怎么开发软件挣钱
  • 网站地图怎么做网站建设电脑维修数据恢复
  • 无锡网站建设服务网站后台上传文章
  • 北京国际建设集团网站wordpress 怎么手动更新
  • 如何用dw制作网页框架哈尔滨网站建设优化
  • 响应式网站多少钱网站建设研究背景
  • 网站建设的设计总结国外的自建网站怎么做
  • 广州市专业做网站网站建设的优点
  • 辽宁城乡建设部网站赣州章贡区哪里要招工
  • 浙江建设工程考试网站wordpress默认模板目录在哪里
  • 做凉菜的网站建设银行网站的支付流程
  • 网络运营怎么做镇江网站优化推广
  • 我要做网站推广怎么注册一个网站做色流
  • 图片网站建站系统竞价页面网站做优化