Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Java数据结构-线性表之循环链表

Java数据结构-线性表之循环链表

循环链表的定义:将单链表的尾节点的空指针改为指向头结点的指针,这样的单链表就变成单循环链表了,也叫循环链表。下面摘抄了《大话数据结构》中的一段分析。如下图: 解释: 循环链表里面的头结点和单链表里面的头结点是一样的,都是为了操作统一和方便而设定的,不是必须节点。这里为了方便操作还会进行一种改变,就是去掉循环链表的头指针,而增加一个指向循环链表尾部节点的尾指针。 这样相对来说可以通过O(1)时间访问到尾节点了,同时在进行循环链表合并操作时更加方便了。举一个在...
Java数据结构-线性表之双向链表

Java数据结构-线性表之双向链表

双向链表的定义:在单链表的基础上,给每个节点增加一个指针域,用来指向该节点的前驱节点,这样形成的链表称之为双向链表。 利用空间换时间。整个双向链表的形式如图所示:下面就摘了《大话数据结构》的插入操作演示: 需要注意的是保证链不要断掉,上述图中第3和第4步的顺序不要颠倒。 继续删除操作的演示: 双向链表也有循环链表,叫双向循环链表,介绍如下: 本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/120142.h...
Java数据结构-线性表之单链表LinkedList

Java数据结构-线性表之单链表LinkedList

线性表的链式存储结构,也称之为链式表,链表;链表的存储单元可以连续也可以不连续。 链表中的节点包含数据域和指针域,数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域。注意一个头结点和头指针的区别: 头指针:指向链表的第一个节点的指针,若链表有头结点,则是指向头结点的指针;头指针具有标识作用,所以常用头指针作为链表的名字;不论链表是否为空,头指针都不为空;是链表的必要元素。头结点:头结点是为了操作的统一和方便而设立的,放在第一个元素节...
Java数据结构-线性表之单链表应用

Java数据结构-线性表之单链表应用

单链表的逆置,就是将现有单链表中的元素的顺序倒置过来。之前提过单链表的整表创建,那里曾说过两种方法:头插法和尾插法; 在我的Java版本的LinkedList中,添加方法使用的是尾插法。 而单链表的逆置正好是利用头插法来进行。 下面看看演示: 下面是我的Java代码实现,建立在之前的代码的基础上/** * @TODO 单链表添加元素,头插法 * @param e 数据元素 * @return true */public boolean addFirst(...
Java并发编程实战(使用synchronized实现同步方法)

Java并发编程实战(使用synchronized实现同步方法)

本文介绍Java最基本的同步方式,即使用synchronized关键字来控制一个方法的并发访问,如果一个对象已用synchronized关键字声明,那么只有一个执行线程允许去访问它,其它试图访问这个对象的线程将被挂起,直到第一个线程访问完毕。还有一篇:Java并发编程:synchronized http://www.linuxidc.com/Linux/2015-07/120169.htm 下面通过一个小例子来学习这个概念,公司向银行存钱,取钱场景。 ...
Java并发编程:synchronized

Java并发编程:synchronized

虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 以下是本文的目录大纲: 一.什么时候会出现线程安全问题? 二.如何解决线程安全问题? 三.synchronized同步方法或者同步块 若有不正之处,请多多谅解并欢迎批评指正。一.什么时候会出现线程安全问题? 在单线程...
HTML5 应用程序缓存

HTML5 应用程序缓存

使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。什么是应用程序缓存(Application Cache)?HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。应用程序缓存为应用带来三个优势:离线浏览 - 用户可在应用离线时使用它们速度 - 已缓存资源加载得更快减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。浏览器支持所有主流浏览器均支持应用...
Java网络编程之TCP通信

Java网络编程之TCP通信

阅读目录一、概述二、什么是TCP? 三、TCP通信四、Socket在浏览上的应用一、概述 Socket类是Java执行客户端TCP操作的基础类,这个类本身使用代码通过主机操作系统的本地TCP栈进行通信。Socket类的方法会建立和销毁连接,设置各种Socket选项。 ServerSocket类是Java执行服务器端操作的基础类,该类运行于服务器,监听入站TCP连接,每个socket服务器监听服务器的某个端口,当远程主机的客户端尝试连接此端口时,服务器...
Java网络编程之查找Internet地址

Java网络编程之查找Internet地址

阅读目录一、概述二、什么是IP地址?三、InetAddress类一、概述 连接到Internet上计算机都有一个称为Internet地址或IP地址的唯一的数来标识。由于IP很难记住,人们设计了域名系统(DNS),DNS可以将人们可以记忆的主机名与计算机可以记忆的IP地址联系在一起。通常一台主机映射一个IP地址。有时一个主机名映射多个IP。这时就由DNS负责随机选择一台机器来响应请求,例如业务流量很大的Web网站,它将负载分到多个系统上。二、什么是IP地址...
Java集合系列

Java集合系列

阅读目录一、ArrayList简介二、ArrayList源码分析三、ArrayList遍历方式一、ArrayList简介 ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类。 该类封装了一个动态再分配的Object[]数组,每一个类对象都有一个capacity属性,表示它们所封装的Object[]数组的长度,当向ArrayList中添加元素时,该属性值会自动增加。如果想ArrayList中添加大量元素,可使用ensureCa...
红黑树的原理分析和算法设计

红黑树的原理分析和算法设计

红黑树是60年代中期计算机科学界找寻一种算法复杂度稳定,容易实现的数据存储算法的产物。在优先级队列、字典等实用领域都有广泛地应用,更是70年代提出的关系数据库模型--B树的鼻祖。在Linux kernel中,高精度定时器也工作在红黑树之上。为便于初学者掌握其基本算法,本文一步一步地演示了红黑树的创建过程。首先回顾一下红黑树的基本性质:1. 红黑树本质上是一个二叉查找树(BST),但是它从根到最远叶子的长度不会超过到最近叶子长度的两倍,因此是近似平衡的。2....
浅析Java过滤器

浅析Java过滤器

阅读目录一、过滤器概述二、一个简单过滤器的实现过程三、过滤器的部署四、过滤器的应用举例一、过滤器概述 过滤器是Java Web三大组件之一,它与Servlet很相似。对于Web应用程序来说,过滤器是一个驻留在服务器端的Web组件,它可以截取客户端和资源之间的请求和响应信息并对这些信息进行过滤。本文将对过滤器的和实现机制和应用进行简单的总结。 当Web容器接收到一个对资源的请求时,它将判断是否有过滤器与这个资源相关联,如果有那么容器将请求交给过滤器进行处...
浅析JavaBean

浅析JavaBean

阅读目录一、概述二、什么是JavaBean?三、JavaBean的使用一、概述 JavaBean组件本质上是一个Java类,只是这个类的编码要遵循一些约定。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任...
结对编程简介

结对编程简介

一个由聪明能干的开发者组成的敏捷团队正在努力完成交付。他们遇到了一些意料之外的缺陷,正在努力修复生产环境中发现的缺陷;前端开发的工作量比后端开发更大,因此当前端开发者挣扎着试图跟上进度时,后端开发者反而处于无所事事的状态。可能他们需要更新控制器系统,但是 Brian 是唯一一个能够看懂控制器代码的人,不幸的是他现在正在忙其他事情。这个场景是不是很熟悉?结对编程可以有效地解决这些问题并给这个煎熬中的团队带来更多好处。那么为什么很多团队不进行结对编程呢?在《P...
在白板上写代码是有难度的

在白板上写代码是有难度的

我最近收到一封来自印度读者的邮件,让我就技术面试谈下看法。关于这个话题,本文再现了我在 2004 年写的一篇文章。(注意,这是我在参与到 C# 团队之前写的,因此充满了 C++ 的感觉)下次在 FAIC,我将就同样话题转载另一篇文章。我偶尔为我的团队和其它 Visual Studio 团队的开发岗位面试应聘人员。关于微软的面试情况,有太多的人写了太多的文章,因此我不再赘述。我今天想提的是,给面试开发岗位的应聘人员提供一些建议。这肯定不是完整的—...
<< 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 >>