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

网站建设环境搭建心得体会优化网站标题名词解释

网站建设环境搭建心得体会,优化网站标题名词解释,上海网站制作开发公司,网站建设分金手指排名十四目录 1. 栈(Stack) 1.1、概念 1.2、 Stack的常用方法 1.3、有关栈的术语区分 2、实现自己的栈 2.1、入栈 2.2、出栈 2.3、查看栈顶元素 2.4、链式栈 3、队列(Queue) 3.1、概念 3.2、Queue的常用方法 3.3、循环队列 4、实现自己的链式队列 4.1、入队 4.2、出队 …

目录

1. 栈(Stack)

1.1、概念

1.2、 Stack的常用方法

1.3、有关栈的术语区分

2、实现自己的栈

2.1、入栈

2.2、出栈

2.3、查看栈顶元素

2.4、链式栈

3、队列(Queue)

3.1、概念

3.2、Queue的常用方法

3.3、循环队列

4、实现自己的链式队列

4.1、入队

4.2、出队

4.3、其他

5、设计循环队列


1. 栈(Stack)

1.1、概念

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守 后进先出 LIFO(Last In First Out)的原则。底层是数组

压栈:栈的插入操作叫做 进栈/压栈/入栈,入数据在栈顶。

出栈:栈的删除操作叫做 出栈。出数据在栈顶。

1.2、 Stack的常用方法

1.3、有关栈的术语区分

栈、虚拟机栈、栈帧有什么区别?

栈:数据结构

虚拟机栈:JVM划分的一块内存

栈帧:调用方法的时候会在虚拟机中给这个方法开辟一块内存,这段内存就是栈帧

2、实现自己的栈

2.1、入栈

2.2、出栈

2.3、查看栈顶元素

2.4、链式栈

链表来实现栈的问题:

如果是双向链表,链表首尾都可以做栈顶,入栈出栈时间复杂度都是O(1)

如果是单链表,

从头入栈 -> O(1);从头出(删除头节点):O(1)

从尾巴入 -> O(n);从尾巴出:O(n),从尾巴出 有没有last的时间复杂度都是O(n)

3、队列(Queue)

3.1、概念

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out)的特点;底层是链表

入队:进行插入操作 的一端,称为队尾(Tail/Rear)

出队:进行删除操作 的一端,称为队头 (Head/Front)

3.2、Queue的常用方法

注:Queue是个接口,在实例化时必须实例化LinkedList对象,因为LinkedList实现了Queue接口

3.3、循环队列

使用数组作为队列时,会出现一种情况,在经过若干的入队出队操作后,空间还未满但无法再入队。

将数组改成一个环就能解决这个问题

如何解决这两个问题

1. rear和front相遇了他现在是空的还是满的?

2. rear 怎么从7下标来到0下标?

  让 rear = (rear+1) % lenfront = (front + 1) % len 就可以从7到0

解决是空还是满有很多种方案:

1. 使用usedSize 进行记录

2. 浪费一个空间来表示满(常用),例如数组长度是8,实际只能放7个元素

3. 使用标记,front和rear相遇一次标记一次

3.4、双端队列

双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。 说明元素可以从队头出队和入队,也可以从队尾出队和入队。

Deque是一个接口,使用时必须创建LinkedList的对象。

在实际中,使用Deque接口是比较多的,栈和队列均可以使用该接口

Deque stack = new ArrayDeque<>(); // 双端队列的线性实现,底层是数组

Deque queue = new LinkedList<>(); // 双端队列的链式实现

这两行语句都不仅可以当做队列也可以当做栈,第二行语句也可以是链表

4、实现自己的链式队列

4.1、入队

4.2、出队

4.3、其他

5、设计循环队列

oj:622. 设计循环队列 - 力扣(LeetCode)

class MyCircularQueue {public int[] elem;public int front;//队头public int rear;//队尾public MyCircularQueue(int k) {elem = new int[k+1]; // 浪费一个空间来表示满}//入队public boolean enQueue(int value) {if(isFull()) {return false;}elem[rear] = value;rear = (rear+1) % elem.length;return true;}public boolean deQueue() {if(isEmpty()) {return false;}front = (front+1) % elem.length;return true;}//得到队头元素public int Front() {if(isEmpty()) {return -1;}return elem[front];}public int Rear() {if(isEmpty()) {return -1;}int index = (rear == 0) ? elem.length-1 : rear-1;return elem[index];}public boolean isEmpty() {return front == rear;}public boolean isFull() {return (rear+1)%elem.length == front;}
}

http://www.dtcms.com/wzjs/385235.html

相关文章:

  • 网站登录和权限怎么做网站优化推广方法
  • 怎么做网站站内优化品牌推广计划书怎么写
  • app开发公司掌握我的源代码吗网站关键词如何优化上首页
  • 如何利用网站做推广泉州百度开户
  • laravel如何做网站企业推广宣传方案
  • 昆山网站优化建设网站生成
  • 做网站的人多吗揭阳新站seo方案
  • 网站上海备案看广告赚钱一天50元
  • 购物网站建设情况汇报seo咨询解决方案
  • 龙岗网络推广深圳网站建设亚洲足球最新排名
  • 企业免费网站建设百度关键词竞价排名
  • dw做网站菜单栏直通车推广怎么收费
  • 上海网站建设seodian杭州网站优化公司
  • 国外网站建站搜索引擎广告形式有
  • 小说网站得广告怎么做站长之家怎么用
  • 如何自己免费做网站百度营销客户端
  • 新闻静态网站咋做教育机构网站
  • 网店装修模板制作怎么优化自己网站
  • 网站建设基网络推广营销软件
  • 陕西专业网站开发联系电话免费推广的网站有哪些
  • 青海高端网站建设市场营销策划方案书
  • 用什么做网站百度查找相似图片
  • angularjs网站模板自媒体平台大全
  • 网站远程数据库友情链接交易网
  • 海口做网站公司搜索关键词是什么意思
  • 做外贸的网站主要有哪些内容东莞网站推广优化公司
  • 个人网页设计pswindows优化大师
  • 如何做购物网站的教程百度下载并安装到桌面
  • 义乌福田公司海淀搜索引擎优化seo
  • 机构单位网站建设方案天津seo优化公司哪家好