
数据结构
深夜的猫头鹰
微信lx13146592025 欢迎共同沟通
展开
-
经典消费者生产者问题
首先你需要了解多线程的流程以及实现多线程的几种方法,同时你要理解什么是并行、并发,以及线程和进程的区别,这里做简要的区别。 线程:一个进程包括多个线程 并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时。 并发:通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时。并发往往在场景中有公用的资源,那么针对这个公用的资源往往产生瓶颈,我们会用TPS或者QP原创 2017-12-21 16:09:44 · 20630 阅读 · 7 评论 -
栈与队列
什么是栈?个人理解栈就好比手枪的子弹夹,“后进先出”,有很多应用栈的地方,例如浏览器中的后退,最经典的应该是逆波兰算法。 什么是队列?个人理解队列就像你打客服电话,由于是高峰时段,你必须先等等待,一个人结束另一个人才能开始,也就是所谓的“先进先出”。 栈都有顺序栈、链栈,队列都有顺序队列、循环队列、链队列。下面就用逆波兰算法来简单说明栈的应用: 简单说明逆波兰原理 逆波兰算法的核心步骤原创 2017-12-22 17:52:25 · 214 阅读 · 0 评论 -
数据结构之链表与顺序表(基础)
一、顺序表1.顺序表是基于一维数组实现的2.顺序表的长度(length)应该比数组长度(maxsize)小3.顺序表的插入、删除、查找(1.)插入在表中第i个位置插入一个新的元素x,表的长度加1,最后的元素像后移。知道把第i个位置空出来,把新元素插入进去。如图所示(2.)删除在表中第i个位置删除一个元素x,表的长度减1。如图所示(原创 2017-12-18 17:26:09 · 691 阅读 · 0 评论 -
简单的字符串替换
1.先来简单说说String StringBulider StringBuffer区别,简单来说 就是 String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。 StringBulider针对于非线程安全的,用于单线程下在字符缓冲区进行大量操作的情况。 StringBu原创 2018-01-23 15:31:49 · 2138 阅读 · 0 评论 -
查找某个整数是否在数组中(数组为有序)
针对本题,首先数组是有序的 例如: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 输入任意一个整数 看这个整数是否在数组中,在返回true,否则返回falsepackage com.cn.hnust.TestPoj;/** * @author dark * @date 2018.1.24 * 求一个有顺序的二维数组,任意一个值,原创 2018-01-24 17:51:53 · 2287 阅读 · 0 评论