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

网站排名优化效果上海十大广告公司排名

网站排名优化效果,上海十大广告公司排名,赣州科技有限公司,wordpress导入模板一:面试经典 1. 如何设计一个括号匹配的功能?比如给你一串括号让你判断是否符合我们的括号原则, 栈 力扣 2. 如何设计一个浏览器的前进和后退功能? 思想:两个栈,一个栈存放前进栈&…

        一:面试经典

        1. 如何设计一个括号匹配的功能?比如给你一串括号让你判断是否符合我们的括号原则,
         栈        力扣

        2. 如何设计一个浏览器的前进和后退功能?
        思想:两个栈,一个栈存放前进栈,一个存放后退栈,刚开始连续点击三个页面,都存放到前进栈里,当点击后退时就出栈顶,然后放入后退栈中,以此重复。

        3. 简单的四则运算:3+11*2+8-15/5,

        思想:两个栈来实现:一个放数字 一个放符号。

        解决思路:我们从头开始遍历这个算术表达式:
            1.遇到是数字 我们就直接入栈到数字栈里面去。
            2.遇到是符号 就把符号栈的栈顶拿出来做比较。如果说他比栈顶符号的优先级高就直接入栈,如果比符号栈顶的优先级低或者相同,就从符号栈里面取栈顶进行计算(从数字栈中取栈顶的2个数),计算完的结果还要再放入到数字栈中。

        二: 栈

        

        1.如何理解栈
        比如我们在放盘子的时候都是从下往上一个个放,拿的时候是从上往下一个个的那,不能从中间抽,这种其实就是一个典型的栈型数据结构。后进先出即Last In First Out (LIFO)。

        2.栈如何实现
        其实它是一个限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
        栈其实就是一个特殊的链表或者数组。
        既然栈也是一个线性表,那么我们肯定会想到数组和链表,而且栈还有这么多限制,那为什么我们还要使用这个数据结构呢?不如直接使用数组和链表来的更直接么?数组和链表暴露太多的接口,实现上更灵活了,有些技术理解不到位的人员就可能出错。所以在某些特定场景下最好是选择栈这个数据结构。

        三:栈的分类

3.栈的分类
(1)基于数组的栈——以数组为底层数据结构时,通常以数组头为栈底,数组头到数组尾为栈顶的生长方向

 

(2)基于单链表的栈——以链表为底层的数据结构时,以链表头为栈顶,便于节点的插入与删除,压栈产生的新节点将一直出现在链表的头部

        最大的区别就是扩容,链表天然支持动态扩容。栈溢出。 

        四:栈的实现

public interface MyStack<Item> {MyStack<Item> push(Item item);		//入栈Item pop();	//出栈int size();		// 大小boolean isEmpty();
}public class ArrayStack<Item> implements MyStack<Item>{private Item [] a = (Item[]) new Object[1];		//最好就是开始的时候就设置大小private int n = 0;		//大小 初始的元素个数public ArrayStack(int cap) {a = (Item[]) new Object[cap];}public MyStack<Item> push(Item item) {	//入栈就完成了		//时间复杂度 O(1)judgeSize();a[n++] = item;return null;}private void judgeSize(){if(n >= a.length){		//元素个数已经超出了数组的个数resize(2 * a.length);		//10*2*2=40个大小了,我出栈了20个了,只剩下20了吧。}else if(n > 0 && n < a.length / 2){resize(a.length / 2);}}private void resize(int size){		//扩容O(n)Item[] temp = (Item[]) new Object[size];for(int i = 0 ; i < n; i ++){temp[i] = a[i];}a = temp;}public Item pop() {		//出栈 O(1)if(isEmpty()){return null;}//item[n--]//item[--n]Item item = a[--n];	//n不是已经--了么 --n和n-- --n是先把n减了在用,n--先用了在减a[n] = null;	//为什么要这一步return item;}public int size() {return n;}public boolean isEmpty() {return n == 0;}}

        注意:主要是栈入栈出的核心代码以及扩容的说明,栈入是n++,而栈出为n--,同时还要把这个元素的空间释放掉,n为栈存储的元素个数。

http://www.yayakq.cn/news/364258/

相关文章:

  • 做自己的建材配送网站WordPress配置七牛云
  • 通辽建设工程网站给我一个网站
  • 陈江做网站卫浴品牌排行榜前十名
  • 梅州做网站辽宁建设工程信息网人员公示需要多久
  • 广东网站建设系统怎么样上海 网站建设 案例
  • 网站直接做标准曲线网络营销seo教程
  • 如何建响应式网站wordpress文章打不开
  • 网站设置桌面快捷方式建站快车的应用场景
  • 邵阳做网站哪个公司好线条类网站
  • 贵阳建设网站如何做建材团购网站
  • 一个人做网站 优帮云电商创业怎么做
  • 如何增加网站访问量网站备案很麻烦吗
  • 网站服务器过期了怎么办wordpress 如何提交表单
  • 郸城网站建设网站建设公司 2018
  • 网站设计的公司价格发布视频的网平台有哪些
  • 苏州姑苏区网站建设陕西省水利厅网站建设与管理处
  • 网站百度搜索情况和反链接优化建议开发工具怎么使用
  • dede怎么换网站页面无需下载直接观看的正能量
  • 怎么查网站点击量视频素材库
  • 张家口市建设局网站阜宁网页设计
  • 东莞做网站 南城信科做网站备案需要啥资料
  • 专业的南昌网站建设xp怎么做网站
  • 网站设计公司网站设计公司企查查在线查询入口
  • 常州网站建设czyzj网站建设改版
  • 长春网站建设电话咨询大数据分析培训机构
  • 好发信息网-网站建设免费的网站模板有哪些
  • 网站的用户体验主要有那些类型百度搜索推广方法
  • 建站之星和凡科建站哪个系统好小说网站模板建站
  • 全国 做网站的企业用flash做的网站欣赏
  • 建立网站视频教程网站前台界面模板下载