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

网站建设的格式怎样建设一个好的企业网站

网站建设的格式,怎样建设一个好的企业网站,门户网站建设工作的自查报告,团购网站建设方案队列 一、简要认识队列二、队列的封装三、队列的应用1.栈和队列的转换2.全排列3.任务调度4.缓存管理 一、简要认识队列 结构:一种特殊的线性表 入队:在队尾插入一个元素 出队:在队头删除一个元素 特点:先入先出 空队列&#xff1…

队列

  • 一、简要认识队列
  • 二、队列的封装
  • 三、队列的应用
    • 1.栈和队列的转换
    • 2.全排列
    • 3.任务调度
    • 4.缓存管理

一、简要认识队列

结构:一种特殊的线性表
入队:在队尾插入一个元素
出队:在队头删除一个元素
特点:先入先出
空队列:队中没有元素

二、队列的封装

class Queue {items = {}count = 0lowCount = 0dequeue() {if(this.isEmpty()){return undefined}let res = this.items[this.lowCount]delete this.items[this.lowCount]this.lowCount++return res}enqueue(data) {this.items[this.count] = datathis.count++}front() {return this.items[this.lowCount]}isEmpty() {return this.size() === 0}size() {return this.count-this.lowCount}clear() {this.items = {}this.count = 0;this.lowCount = 0}toString() {let str = ""for(let i =this.lowCount;i<this.count;i++){str += `${this.items[i]} `}return str}
}

三、队列的应用

1.栈和队列的转换

在这里插入图片描述

class MyStack {constructor() {this.queue1 = [];this.queue2 = [];}push(x) {// 将元素加入非空队列if (this.queue1.length === 0) {this.queue2.push(x);} else {this.queue1.push(x);}}pop() {if (this.empty()) {throw new Error("Stack is empty!");}// 将非空队列中的元素转移到辅助队列中,直到剩余一个元素const nonEmptyQueue = this.queue1.length === 0 ? this.queue2 : this.queue1;const emptyQueue = this.queue1.length === 0 ? this.queue1 : this.queue2;while (nonEmptyQueue.length > 1) {emptyQueue.push(nonEmptyQueue.shift());}// 取出最后一个元素并返回return nonEmptyQueue.shift();}top() {if (this.empty()) {throw new Error("Stack is empty!");}// 将非空队列中的元素转移到辅助队列中,直到剩余一个元素const nonEmptyQueue = this.queue1.length === 0 ? this.queue2 : this.queue1;const emptyQueue = this.queue1.length === 0 ? this.queue1 : this.queue2;while (nonEmptyQueue.length > 1) {emptyQueue.push(nonEmptyQueue.shift());}// 取出最后一个元素并返回const top = nonEmptyQueue.shift();emptyQueue.push(top);return top;}empty() {return this.queue1.length === 0 && this.queue2.length === 0;}
}

2.全排列

在这里插入图片描述

function permute(nums) {const result = [];const queue = [[]]; // 初始队列中只有一个空数组while (queue.length > 0) {const current = queue.shift(); // 取出队列中的当前排列// 如果当前排列的长度等于原始数组的长度,说明找到了一种排列方式if (current.length === nums.length) {result.push(current);continue;}// 尝试将原始数组中剩余的数字加入到当前排列中for (let i = 0; i < nums.length; i++) {// 如果当前数字已经在排列中,跳过这个数字if (current.includes(nums[i])) {continue;}queue.push([...current, nums[i]]); // 将当前数字加入到排列中并加入队列}}return result;
}

3.任务调度

使用队列来管理需要异步执行的任务,确保它们按照顺序执行。

// 定义一个任务队列
const taskQueue = [];// 添加任务到队列
function enqueueTask(task) {taskQueue.push(task);
}// 执行队列中的任务
function processTasks() {while (taskQueue.length > 0) {const task = taskQueue.shift(); // 从队列头部取出任务task(); // 执行任务}
}// 示例任务
function task1() {console.log('Task 1');
}function task2() {console.log('Task 2');
}function task3() {console.log('Task 3');
}// 添加任务到队列
enqueueTask(task1);
enqueueTask(task2);
enqueueTask(task3);// 执行任务队列
processTasks();

4.缓存管理

使用队列来管理数据的加载和展示,避免同时加载大量数据。

// 定义一个数据缓存队列
const dataQueue = [];// 添加数据到队列
function enqueueData(data) {dataQueue.push(data);
}// 展示队列中的数据
function showData() {while (dataQueue.length > 0) {const data = dataQueue.shift(); // 从队列头部取出数据console.log('Data:', data);}
}// 添加数据到队列
enqueueData('Data 1');
enqueueData('Data 2');
enqueueData('Data 3');// 展示数据队列
showData();
http://www.yayakq.cn/news/167471/

相关文章:

  • 轻淘客网站模板郑州厉害的seo优化顾问
  • 网站管理助手3.0企业营销策略有哪些
  • 网站设计及开发2017网站开发发展前景
  • 学校网站建设渠道阿里云wordpress一键安装包
  • 富阳网站定制开发哪家公司好wordpress固定链接文章发布失败
  • 网站建设中服务器的搭建方式有几种weui wordpress模板
  • 国外效果超炫网站京紫元年网站建设
  • 柳市网站优化用台式机做网站服务器
  • 动态小网站404网站怎么打开
  • 搭建租号网的网站网站如何添加百度地图
  • 汽车网有哪些网站大全深圳网站建设制作视频软件
  • 淘宝客返利网站开发网站建设与维护是做什么
  • 做旅游宣传网站的流程wordpress建站方向
  • 传统外贸网站的seo运用移动互联网开发
  • 阿里巴巴专门做外贸的网站合肥百度快照优化排名
  • 做网站外包给淘宝好吗广州市做网站的
  • 网站推广优化排名公司帝国cms 网站名称
  • 建设农垦网站wordpress小型论坛主题
  • 个人微信号做网站行吗自媒体平台排行榜前十名
  • 电子商务网站开发价格现在哪里大搞建设
  • 遵义市 网站建设北京百度糯米团购有做网站的电话吗
  • 设计网站首页seo官网优化怎么做
  • 做手机网站用什么程序好电脑如何重新安装wordpress
  • 网站环境配海宁做网站的公司
  • 移动免费网站建设公司合法网站域名怎么注册
  • 做地方旅游网站廉政网站管理制度建设
  • 还有什么类似建设通的网站网页设计网站多少钱
  • 最好的网站代运营公司wordpress中文的社区
  • 建网站的公司赚钱吗wordpress文章对游客不显示
  • 亚马逊中国官网网站申请注册自媒体平台