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

怎么做属于自己的售卡网站专业的移动网站建设公

怎么做属于自己的售卡网站,专业的移动网站建设公,如何影响网站排名,菏泽市建设信息网1.题目 2.思路一(数组) 通过数组进行模拟,通过操作数组的索引构建一个虚拟的首尾相连的环。再循环队列结构中,设置一个队首head和队尾tail,数组的大小固定为k。 初步分析:存在缺陷 改善假溢出问题&#…

1.题目 

2.思路一(数组)

通过数组进行模拟,通过操作数组的索引构建一个虚拟的首尾相连的环。再循环队列结构中,设置一个队首head和队尾tail,数组的大小固定为k。

初步分析:存在缺陷

改善假溢出问题:

(1) 用size记录数组长度

(2) 多开辟一块空间

 这里,我们选择方案二解决:

 我们对取尾进行分析:

3参考代码(数组解决)

typedef struct {int* a;int head;//头下标int tail;//尾的下一个的下标int k;
} MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));//多开一个空间解决假溢出问题obj->a = malloc(sizeof(int)*(k +1));obj->head = obj->tail = 0;obj->k = k;return obj;
}//判空
bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj->head == obj->tail;
}
//判满
bool myCircularQueueIsFull(MyCircularQueue* obj) {//模(K+1)解决回绕的问题return (obj->tail + 1)%(obj->k + 1) == obj->head;
} //入队列
bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj))return false;//没满obj->a[obj->tail] = value;obj->tail++;//解决回绕的问题obj->tail %= (obj->k + 1);return true;
}
//出队列
bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return false;else{++obj->head;//解决回绕问题obj->head %= (obj->k + 1);return true;}
}
//取头
int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj->a[obj->head];
}
//取尾
int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;else{//1//return obj->tail == 0 ? obj->a[obj->k] : obj->a[obj->tail - 1];     //2//return obj->a[((obj->tail -1) +(obj->k + 1))%(obj->k + 1)]//简化后return obj->a[(obj->tail + obj->k )%(obj->k + 1)];}}void myCircularQueueFree(MyCircularQueue* obj) {free(obj->a);free(obj);
}

 4.思路二(链表)

 用单链表实现队列较为简单,入队列时,将新的元素尾插插入到链表的尾部;出队列时,将链表的都节点返回,并将头指针指向下一个节点。

创建循环队列

head:链表的头结点,队列的头结点

tail:链表的尾节点,队列的尾节点

capacity:队列的容量

size:队列当前元素的数量

//创建循环队列
typedef struct {struct ListNode* head;//队列头节点struct ListNode* tail;//队列尾节点int capacity;//队列容量int size;//队列当前元素数量
} MyCircularQueue;

5.参考代码(链表解决)

//创建循环队列
typedef struct {struct ListNode* head;//队列头节点struct ListNode* tail;//队列尾节点int capacity;//队列容量int size;//队列当前元素数量
} MyCircularQueue;//初始化
MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));obj->capacity = k;obj->size = 0;obj->head = obj->tail = NULL;return obj;
}
//入队列
bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(obj->capacity == obj->size)return false;//创建新节点struct ListNode* newnode = (struct ListNode*)malloc(sizeof(struct ListNode));newnode->val = value;newnode->next = NULL;if(!obj->head)//空链表{obj->head = obj->tail = newnode;}else//非空链表,尾插{obj->tail->next = newnode;obj->tail = newnode;}obj->size++;return true;
}
//出队列(先入先出)
bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(obj->size == 0)return false;struct ListNode* node = obj->head;obj->head = obj->head->next;obj->size--;free(node);return true;
}
//返回队首元素
int myCircularQueueFront(MyCircularQueue* obj) {if(obj->size == 0)return -1;return obj->head->val;
}
//返回队尾元素
int myCircularQueueRear(MyCircularQueue* obj) {if(obj->size == 0)return -1;return obj->tail->val;
}
//判空
bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj->size == 0;
}
//判满
bool myCircularQueueIsFull(MyCircularQueue* obj) {return obj->size == obj->capacity;
}
//销毁队列
void myCircularQueueFree(MyCircularQueue* obj) {//一次销毁节点for(struct ListNode* cur = obj->head;cur;){struct ListNode* node = cur;cur = cur->next;   free(node);}free(obj);
}
http://www.yayakq.cn/news/667103/

相关文章:

  • 成都便宜网站建设wordpress 扣积分
  • 磐安网站建设哪种语言网站建设
  • 江苏越润建设有限公司网站icp备案查看网站内容吗
  • 办公室装修风格效果图长春百度seo
  • 上海网站建设sheji021电子商务网站开发难点
  • 大连制作网站软件什么公司做网商网站的
  • 哈尔滨网站seoseo整站优化
  • 教师做网站赚钱wordpress自动化框架
  • 开不锈钢公司怎么做网站建设生活app官方下载
  • 网站安全检测在线昆明网红
  • 建设网站的服务器费用博客做网站
  • 用dw制作网站模板下载地址设计感 网站
  • 12306网站能不能用银河二计算机做服务器啊慢得要死营销网站建设推广
  • 网站建设电销话术开场白邢台网站优化服务平台
  • 国外建设网站网站开发需求目标
  • 摄影创意网站企业还有人做网站么
  • 自建站推广方式网站建设 技术 哪些内容
  • 上海高端建站网站电商网站话费充值怎么做
  • 南京网站排名公司广州seo服务外包
  • 厦门网站建设制作工具网站建设程序
  • 湛江市手机网站建设企业怎么查网站开发语言
  • 平顶山网站建设公司公司网站建设制作
  • 如何来做网站快速排名方案
  • 网站怎样绕过360认证上海网站设计公司推荐亿企邦
  • 如何提高网站的点击量电子商务网站建设实训论文
  • 网站开发 定制腾讯云对象存储wordpress
  • 上海网站备案注销分享设计的网站
  • wordpress购物网站大专毕业设计网站
  • 农产品网站设计四川建设发布网
  • nginx 网站建设用百度云做网站