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

鞍山做网站企业品牌推广广告

鞍山做网站企业,品牌推广广告,什么网站可以做注册任务,阿里网站seo一、前言 之前我们已经学习了链表的所有操作及其时间复杂度分析#xff0c;我们可以了解到对于链表头的相关操作基本都是O(1)的#xff0c;例如链表头增加、删除元素#xff0c;查询元素等等。那我们其实有一个数据结构其实可以完美利用到这些操作的特点#xff0c;都是在…一、前言 之前我们已经学习了链表的所有操作及其时间复杂度分析我们可以了解到对于链表头的相关操作基本都是O(1)的例如链表头增加、删除元素查询元素等等。那我们其实有一个数据结构其实可以完美利用到这些操作的特点都是在某一段进行操作那就是栈。本章我们通过链表去实现栈。并且比较用数组实现和用链表实现他们之间的差异。 二、用链表实现栈 2.1、代码实现 那么通过链表实现栈就很简单了我们知道入栈和出栈都是从链表的同一端进行操作那么我们只需调用链表的addFirst/removeFirst的方法即可查找同理。 首先我们将链表栈命名为LinkedListStack,并且实现我们Stack的抽象类然后设置一个内部属性为我们之前实现的链表通过该链表完成实现需要重写的方法即可代码如下 public class LinkedListStackT implements StackT {private LinkedListT linkedList;public LinkedListStack() {this.linkedList new LinkedList();}Overridepublic int getSize() {return linkedList.getSize();}Overridepublic boolean isEmpty() {return linkedList.isEmpty();}Overridepublic void push(T t) {linkedList.addFirst(t);}Overridepublic T pop() {return linkedList.removeFirst();}Overridepublic T peek() {return linkedList.getFirst();}Overridepublic String toString() {StringBuilder stringBuilder new StringBuilder();stringBuilder.append(Stack: top );stringBuilder.append(linkedList);return stringBuilder.toString();} } 测试一下 public static void main(String[] args) {LinkedListStackInteger integerArrayStack new LinkedListStack();for (int i 0; i 5; i) {integerArrayStack.push(i);System.out.println(integerArrayStack);}integerArrayStack.pop();System.out.println(integerArrayStack);}结果没有问题通过链表实现栈就这样简单的实现了。 2.2、和数组栈比较性能 这个代码和之前数组队列和循环队列效率的对比很接近 public class TestStackCompare {private static double testQueue(StackInteger s, int opCount){long startTime System.currentTimeMillis();Random random new Random();for (int i 0; i opCount; i) {s.push(random.nextInt(Integer.MAX_VALUE));}for (int i 0; i opCount; i) {s.pop();}long endTime System.currentTimeMillis();return (endTime - startTime)/1000.0;}public static void main(String[] args) {ArrayStackInteger integerArrayStack new ArrayStack();LinkedListStackInteger integerLinkedListStack new LinkedListStack();System.out.println(arrayStack,time:testQueue(integerArrayStack,1000000)s);System.out.println(linkedListStack,time:testQueue(integerLinkedListStack,1000000)s);} }那么我们运行下发现两者效率近乎一致 当然也有可能得到的结果是有差距的对于arrayStack来说时不时就需要扩容这个对于某些操作系统来说比较耗费时间而对于linkedListStack来说它每次new Node就需要不断的开辟空间这个操作又对于某些操作系统来说更耗费时间而且这两者的差距会随着操作次数的增多不断拉大因为扩容并不是每次扩容而new Node确实是需要每次都new一个例如我将操作次数放大为10000000次这个时候两者的时间差距就比较大了 所以仍然取决于你测试使用的操作系统配置jvm版本等等。但是其实我想强调的是对于数组栈和链表栈来说他们的各项操作的时间复杂度其实是一致的。他们之间没有复杂度之间的巨大差异。不像数组队列和循环队列一个6s,一个0.01s,这之间的差距是非常大的。
http://www.hkea.cn/news/14296865/

相关文章:

  • 人才招聘网站开发+源代码网站开发数据库分析模板
  • 哪类型网站容易做深圳市网站建设
  • 企业建站公司案例中石化建设工程电子招投标交易网
  • 网站不备案可以使用么uc网页浏览器网页版
  • 怎么样做网站 用网站赚钱商丘企业网站建设服务
  • wordpress群发工具宁波关键词优化排名工具
  • 造作网站模版做网站 微信开发前景
  • 网站开发所以浏览器兼容模式中国黄页免费版
  • 做软件网站网站文章怎么更新时间
  • 焦作网站建设费用网页设计与制作app
  • 新媒体 网站建设 影视水冶那里有做网站的
  • 民宿网站建设问卷调查商城源码哪家公司好
  • 内部购物券网站怎么做在wordpress教程视频
  • 门户网站建设好如何维护青浦练塘网站建设
  • 公司注销 网站备案申请表天津制作公司网站
  • 如何做付费阅读网站网站的文件结构
  • 怎样架设网站电商网页设计网站
  • 做网站用虚拟机还是服务器最近国家新闻
  • 陕西商城网站建设网站开发朋友圈
  • 什么网站容易做流量手机 pc网站模板
  • 企业门户网站在信息系统架构中属于哪个层次抚顺网络推广
  • 金华网站建设做民宿网站的系统可行性
  • 设计网站猪八戒25个网站
  • 外贸网站建设应该怎样选择语言超市网站怎么做的
  • 重庆建设监理协会网站手机触屏网站幻灯片
  • 做网站导航孝感建设网站
  • 海南手机网站建设公司设计公司门头设计
  • 肥西建设局网站表白网页生成制作
  • 东营建设工程信息网站怎么做自己的销售网站
  • 如何做强企业网站wordpress文本小工具