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

做全国性的app网站推广多少如何建立游戏网站平台

做全国性的app网站推广多少,如何建立游戏网站平台,xx网站建设策划方案,广州企业网站建设目录 一、队列的概念及结构 二、队列的实现 拓展#xff1a;循环队列 三、初学的队列以及栈和队列结合的练习题 一、队列的概念及结构 队列#xff1a;只允许在一端进行插入数据操作#xff0c;在另一端进行删除数据操作的特殊线性表#xff0c;队列具有先进先出FIFO(Fi…目录 一、队列的概念及结构 二、队列的实现 拓展循环队列 三、初学的队列以及栈和队列结合的练习题 一、队列的概念及结构 队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先进先出FIFO(First In First Out) 入队列进行插入操作的一端称为队尾 出队列进行删除操作的一端称为队头 二、队列的实现 队列也可以数组和链表的结构实现使用链表的结构实现更优一些因为如果使用数组的结构出队列在数组头上出数据效率会比较低。 具体代码如下C语言实现 #pragma once//Queue.h // 链式结构表示队列#include stdio.h #include stdlib.h #include assert.htypedef int QDateType;typedef struct QListNode {struct QListNode* _next;QDateType _data; }QNode;// 队列的结构 typedef struct Queue {QNode* _front;//队头QNode* _rear;//队尾int size; }Queue;// 初始化队列 void QueueInit(Queue* q); // 队尾入队列 void QueuePush(Queue* q, QDateType data); // 队头出队列 void QueuePop(Queue* q); // 获取队列头部元素 QDateType QueueFront(Queue* q); // 获取队列队尾元素 QDateType QueueBack(Queue* q); // 获取队列中有效元素个数 int QueueSize(Queue* q); // 检测队列是否为空如果为空返回非零结果如果非空返回0 int QueueEmpty(Queue* q); // 销毁队列 void QueueDestroy(Queue* q);//Queue.c #include Queue.hvoid QueueInit(Queue* q) {assert(q);q-_front NULL;q-_rear NULL;q-size 0; }void QueuePush(Queue* q, QDateType data) {assert(q);QNode* tmp (QNode*)malloc(sizeof(QNode));if (tmp NULL){perror(tmp malloc);exit(-1);}tmp-_data data;tmp-_next NULL;if (q-_rear NULL){q-_front q-_rear tmp;}else{q-_rear-_next tmp;q-_rear tmp;}q-size; }void QueuePop(Queue* q) {assert(q);assert(QueueEmpty(q));if (q-_front-_next NULL){free(q-_front);q-_front q-_rear NULL;}else{QNode* next q-_front-_next;free(q-_front);q-_front next;}q-size--; }QDateType QueueFront(Queue* q) {assert(q);assert(QueueEmpty(q));return q-_front-_data; }QDateType QueueBack(Queue* q) {assert(q);assert(QueueEmpty(q));return q-_rear-_data; }int QueueSize(Queue* q) {assert(q);return q-size; }int QueueEmpty(Queue* q) {assert(q);return q-size; }void QueueDestroy(Queue* q) {assert(q);QNode* cur q-_front;while (cur){Queue* next cur-_next;free(cur);cur next;}q-_front q-_rear NULL;q-size 0; } //test.c #include Queue.hvoid test02() {Queue q1;QueueInit(q1);QueuePush(q1, 1);QueuePush(q1, 2);QueuePush(q1, 3);QueuePush(q1, 4);QueuePush(q1, 5);QueuePop(q1);while (QueueEmpty(q1)){printf(%d , QueueFront(q1));QueuePop(q1);}printf(\n);QueueDestroy(q1); }int main() {test02();return 0; } 拓展循环队列 如上图所示循环队列的节点数一般会比要求的节点数多一个以便区分空的循环队列和满的循环队列。空的循环队列front和rear指向同一个节点满的循环队列可以理解为rear front 1。 三、初学的队列以及栈和队列结合的练习题 题目一设计循环队列 MyCircularQueue(k): 构造器设置队列长度为 k 。Front: 从队首获取元素。如果队列为空返回 -1 。Rear: 获取队尾元素。如果队列为空返回 -1 。enQueue(value): 向循环队列插入一个元素。如果成功插入则返回真。deQueue(): 从循环队列中删除一个元素。如果成功删除则返回真。isEmpty(): 检查循环队列是否为空。isFull(): 检查循环队列是否已满。 typedef struct {int* a;int front;int rear;int k; } MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj (MyCircularQueue*)malloc(sizeof(MyCircularQueue));obj-a (int*)malloc(sizeof(int)*(k1));obj-front obj-rear 0;obj-k k;return obj; }bool myCircularQueueIsEmpty(MyCircularQueue* obj) {//front和rear相等即为空return obj-front obj-rear; }bool myCircularQueueIsFull(MyCircularQueue* obj) {//数学方法判满return (obj-rear 1) % (obj-k 1) obj-front; }bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj))return false;obj-a[obj-rear] value;obj-rear;//不然rear可能越界obj-rear % (obj-k1);return true; }bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return false;obj-front;obj-front % (obj-k1);return true; }int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj-a[obj-front]; }int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;else//数学方法return obj-a[(obj-rear obj-k) % (obj-k 1)]; }void myCircularQueueFree(MyCircularQueue* obj) {free(obj-a);free(obj); } 题目二用队列实现栈 思路用两个队列保持一个队列为空一个不为空当要出栈的时候就将不为空的队列中除了队尾的元素全都入到为空的队列中然后将唯一的那个元素出栈。 typedef int QDateType;typedef struct QListNode {struct QListNode* _next;QDateType _data; }QNode;// 队列的结构 typedef struct Queue {QNode* _front;QNode* _rear;int size; }Queue;void QueueInit(Queue* q) {assert(q);q-_front NULL;q-_rear NULL;q-size 0; }void QueuePush(Queue* q, QDateType data) {assert(q);QNode* tmp (QNode*)malloc(sizeof(QNode));if (tmp NULL){perror(tmp malloc);exit(-1);}tmp-_data data;tmp-_next NULL;if (q-_rear NULL){q-_front q-_rear tmp;}else{q-_rear-_next tmp;q-_rear tmp;}q-size; }void QueuePop(Queue* q) {assert(q);assert(QueueEmpty(q));if (q-_front-_next NULL){free(q-_front);q-_front q-_rear NULL;}else{QNode* next q-_front-_next;free(q-_front);q-_front next;}q-size--; }QDateType QueueFront(Queue* q) {assert(q);assert(QueueEmpty(q));return q-_front-_data; }QDateType QueueBack(Queue* q) {assert(q);assert(QueueEmpty(q));return q-_rear-_data; }int QueueSize(Queue* q) {assert(q);return q-size; }int QueueEmpty(Queue* q) {assert(q);return q-size; }void QueueDestroy(Queue* q) {assert(q);QNode* cur q-_front;while (cur){Queue* next cur-_next;free(cur);cur next;}q-_front q-_rear NULL;q-size 0; }typedef struct {Queue q1;Queue q2; } MyStack;MyStack* myStackCreate() {MyStack* tmp (MyStack*)malloc(sizeof(MyStack));QueueInit(tmp-q1);QueueInit(tmp-q2);return tmp; }void myStackPush(MyStack* obj, int x) {if(QueueEmpty(obj-q1)){QueuePush(obj-q1, x);}else{QueuePush(obj-q2, x);} }int myStackPop(MyStack* obj) {Queue* empty obj-q1;Queue* noempty obj-q2;if(QueueEmpty(obj-q1)){empty obj-q2;noempty obj-q1;}while(QueueSize(noempty) 1){QueuePush(empty, QueueFront(noempty));QueuePop(noempty);}int top QueueFront(noempty);QueuePop(noempty);return top; }int myStackTop(MyStack* obj) {if(QueueEmpty(obj-q1))return QueueBack(obj-q1);elsereturn QueueBack(obj-q2); }bool myStackEmpty(MyStack* obj) {int ret1, ret2;if(QueueEmpty(obj-q1) 0)ret1 0;elseret1 1;if(QueueEmpty(obj-q2) 0)ret2 0;elseret2 1;if(ret1 0 ret2 0)return true;elsereturn false; }void myStackFree(MyStack* obj) {QueueDestroy(obj-q1);QueueDestroy(obj-q2);free(obj); } 题目三用栈实现队列 思路使用两个栈一个push栈一个pop栈先往push栈中堆入元素出队时先将push栈中的元素先pop到pop栈中再从pop栈中pop元素其间再有元素堆入入到push栈中。 typedef int STDataType; typedef struct Stack {STDataType* _a;int _top; // 栈顶int _capacity; // 容量 }Stack;void StackInit(Stack* ps) {assert(ps);ps-_a NULL;ps-_top 0;ps-_capacity 0; }void StackPush(Stack* ps, STDataType data) {assert(ps);if (ps-_capacity ps-_top){int newCapacity ps-_capacity 0 ? 4 : ps-_capacity * 2;STDataType* tmp (STDataType*)realloc(ps-_a,sizeof(STDataType) * newCapacity);if (tmp NULL){perror(realloc fail);exit(-1);}ps-_a tmp;ps-_capacity newCapacity;}ps-_a[ps-_top] data;ps-_top; }void StackPop(Stack* ps) {assert(ps);assert(ps-_top 0);ps-_top--; }STDataType StackTop(Stack* ps) {assert(ps);assert(ps-_top 0);return ps-_a[ps-_top - 1]; }int StackSize(Stack* ps) {assert(ps);return ps-_top; }int StackEmpty(Stack* ps) {return ps-_top; }void StackDestroy(Stack* ps) {assert(ps);free(ps-_a);ps-_a NULL;ps-_capacity 0;ps-_top 0; }typedef struct {Stack pushst;Stack popst; } MyQueue;MyQueue* myQueueCreate() {MyQueue* obj (MyQueue*)malloc(sizeof(MyQueue));StackInit(obj-pushst);StackInit(obj-popst);return obj; }void myQueuePush(MyQueue* obj, int x) {StackPush(obj-pushst, x); }int myQueuePeek(MyQueue* obj) {//pop栈为空就往其中堆入元素if(StackEmpty(obj-popst) 0){while(StackEmpty(obj-pushst) 0){StackPush(obj-popst, StackTop(obj-pushst));StackPop(obj-pushst);}}return StackTop(obj-popst); }int myQueuePop(MyQueue* obj) {int front myQueuePeek(obj);StackPop(obj-popst);return front; }bool myQueueEmpty(MyQueue* obj) {int ret1, ret2;if(StackEmpty(obj-pushst) 0)ret1 0;elseret1 1;if(StackEmpty(obj-popst) 0)ret2 0;elseret2 1;if(ret1 0 ret2 0)return true;elsereturn false; }void myQueueFree(MyQueue* obj) {StackDestroy(obj-pushst);StackDestroy(obj-popst);free(obj); }
http://www.w-s-a.com/news/436948/

相关文章:

  • 安阳市哪里做网站建设网站流量怎么赚钱
  • 网站开发与优化课程总结软件班级网站建设
  • py网站开发wordpress 公司网站 模板 下载
  • 长春城乡建设部网站首页英文网站推广服务
  • wordpress实训上海整站seo
  • 福建自己建设网站义乌市企推网络科技有限公司
  • 宁波优化网站哪家好织梦网站地图怎么做
  • 怎么在自己的网站加关键词烟台企业网站建设
  • 中山网站建设界面设计职业技能等级证书
  • 做网站首页多少钱免费版企业邮箱注册
  • ppp模式在网站建设的南昌专业做网站公司哪家好
  • 泰安网站建设制作电话号码百度sem竞价托管公司
  • 苏网站建设网页设计和网页美工
  • 跨境电商平台网站广州地铁站路线图
  • 吉林省交通建设集团有限公司网站企业网站推广的策略有哪些
  • 网站内链怎么做更好郑州网站建设哪家便宜
  • 建设大型购物网站运城哪里做网站
  • php企业网站通讯录管理系统做网站在线支付系统多少钱?
  • 怎么区分用vs和dw做的网站贝贝网网站开发背景
  • 无锡网站建设制作建设信息网查询
  • 彩票系统网站开发建设人力资源网官网
  • 有专门下载地图做方案的网站吗网站建设平台计划书
  • 网站闭站保护10个著名摄影网站
  • 安徽省建设工程信息网官网首页网站关键词排名优化工具
  • 深圳网站建设 百业网站专题教程
  • 公司seo是指什么意思如何来做网站优化
  • 化妆品网站建设平台的分析湖南网站搜索排名优化电话
  • 织梦网站修改教程视频教程管理类网站开发价格
  • 如何让新网站快速收录企业建站的作用是什么
  • 在线制作简历的网站做的最好的微电影网站