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

微网站开发难度为企业策划一次网络营销活动

微网站开发难度,为企业策划一次网络营销活动,开发一个小程序需要多久,企业app定制开发设计方案Deque双端队列,一直在使用,却从未了解过源码。 内部逻辑其实很简单 可扩容数组循环队列,循环栈扩容倍数1.5,sizesize(size shr 1)只从两端存取元素 fun main() {val deque MyArrayDeque()repeat(16) {deque.addLast(it)}while …

Deque双端队列,一直在使用,却从未了解过源码。
内部逻辑其实很简单

  1. 可扩容数组
  2. 循环队列,循环栈
  3. 扩容倍数1.5,size=size+(size shr 1)
  4. 只从两端存取元素
fun main() {val deque = MyArrayDeque()repeat(16) {deque.addLast(it)}while (deque.isNotEmpty()) {println(deque.removeLast())}}class MyArrayDeque {// 存元素,不能存null,初始容量为16,避免频繁扩容,一次扩容1.5倍private var arr = arrayOfNulls<Int>(16)// 头尾节点,tail一直为nullprivate var head: Int = 0private var tail: Int = 0// 实际容量private var size: Int = 0fun addFirst(value: Int) {// 扩容grow()head = dec(head)arr[head] = valuesize++}fun addLast(value: Int) {// 扩容grow()arr[tail] = valuetail = inc(tail)size++}fun removeFirst(): Int {if (isEmpty()) {return -1}val res = arr[head]!!head = inc(head)size--return res}fun removeLast(): Int {if (isEmpty()) {return -1}tail = dec(tail)size--return arr[tail]!!}// 加一fun inc(i: Int) = if (i == arr.lastIndex) 0 else i + 1// 减一fun dec(i: Int) = if (i == 0) arr.lastIndex else i - 1// 扩容,内部不一定扩容private fun grow() {// 至少还有一个容量if (size < arr.size - 1) {return}// 一次扩容1.5倍val newArr = arrayOfNulls<Int>(arr.size + (arr.size shr 1))// 从0开始if (head < tail) {for (i in head..<tail) {newArr[i - head] = arr[i]}} else {// 临时下标var index = 0// 现存头部for (i in head..arr.lastIndex) {newArr[index++] = arr[i]}// 尾部移动后面for (i in 0..<tail) {newArr[index++] = arr[i]}}// 扩容后,head和tail重新计算arr = newArrhead = 0tail = size}fun size() = sizefun isEmpty() = size() == 0fun isNotEmpty() = size() > 0override fun toString(): String {if (size == 0) {return ""}val sb = StringBuilder()if (head < tail) {for (i in head..<tail) {if (sb.isNotEmpty()) {sb.append(", ")}sb.append(arr[i])}} else {for (i in head..arr.lastIndex) {if (sb.isNotEmpty()) {sb.append(", ")}sb.append(arr[i])}for (i in 0..<tail) {// 此时一定有至少一个元素,不用判断sb.append(", ").append(arr[i])}}return sb.toString()}
}
http://www.yayakq.cn/news/582194/

相关文章:

  • 那个网站学做披萨比较好沈阳泌尿科十大排行医院
  • 做网站给女朋友金融视频直播网站开发
  • 网站正在建设中 htmll更新网站 seo
  • 自己找网站开发项目汉中门户网官网
  • 福建厦门工程建设中心网站Wordpress页面标签插件
  • 网站建设什么语言比较好网站无收录的原因
  • 免费申请网站 免备案网站框架结构图
  • 网站建设 栏目管理网站开发学习步骤
  • 青岛网站建设推广wordpress 权限阅读
  • 域名对网站的好处仿cnzz 网站 源码
  • 用帝国做的网站只收录首页免费外链网站seo发布
  • 网站建设5个why怎么建公司官网
  • 红色系 网站网站制作专业
  • 企业网站策划书wordpress建站打不开二级页面
  • 网站免费云主机广州部队网站建设费用
  • 湛江网站排名婚纱摄影网页
  • 深圳坪山住房和建设局网站网站策划书我与音乐
  • wordpress收费资源下载seo网站架构设计
  • 赣州网站优化公司襄阳棋牌网站建设
  • 做网站和自媒体哪个好网站国际互联网备案号
  • 永久建站空间购买珠海微网站制作
  • 重庆微信网站开电商网站开发周期
  • 沈阳企业自助建站系统吉林省建设工程质量监督站网站
  • 织梦做企业网站教程北京知名网站推广
  • 网站建设时间表为学校建设网站
  • 重庆云端设计网站建设微信服务号绑定网站
  • 重庆网站建设哪里比较好呢怎么投诉网络平台
  • 咋样做网站昆网站在哪里
  • r6300v2做网站免费的外网服务器
  • 关于做网站的总结此网站域名即将过期