在C语言中,多个数据的储存通常会用到数组.但是C语言的数组有个缺陷,就是固定长度,超过数组的最大长度就会溢出.怎样实现N个数储存起来而不被溢出呢. 学过java的都知道,java.util包里有一个LinkedList类,它是一个链状的集合. 而且你可以看到,LinkedList把它的增删改查操作,都封装成对应的方法. 众所周知,C语言是一门面向过程的语言,那我们该如何利用面向对象的思想用C语言实现类似LinkedList集合呢. 接下来,我们用C语言来做一遍: 首先,写一个结构体(Linked…
一.LinkedList 概述 java.util.LinkedList  集合数据存储的结构是链表结构. 特点:增删快,查询慢 LinkedList 是一个双向链表,如下图 注意:该集合实现不是同步的,多线程的,速度快,效率高. 扩展:LinkedList 集合也作为堆栈,队列的结构使用. 二.LinkedList 的结构 LinkedList:双向链表结构(双向链表.队列.栈.双端队列.单向链表等各种数据结构的效果) LinkedList 内部有一个结点的类型: 其中还有两个 Node 类型…
Java:LinkedList类小记 对 Java 中的 LinkedList类,做一个微不足道的小小小小记 概述 java.util.LinkedList 集合数据存储的结构是循环双向链表结构.方便元素添加.删除的集合. 循环双向链表: 链表中任意一个存储单元都可以通过向前或者向后寻址的方式获取到其前一个存储单元和其后一个存储单元 链表的尾节点的后一个节点是链表的头结点,链表的头结点的前一个节点是链表的尾节点 可以画出如下示意图: 就是这样的结构,是的链表可以作为队列/双端队列使用,在刷题的时…
import java.util.ArrayList; import java.util.List; public class test { public static void main(String[] args) throws Exception { /*测试合并两个类型相同的list*/ List<String> list1 = new ArrayList<String>(); List<String> list2 = new ArrayList<Stri…
数据结构 数据结构: 数据结构_栈:先进后出 入口和出口在同一侧 数据结构_队列:先进先出 入口和出口在集合的两侧 数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速的查找某一个元素. 增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须创建一个新数组,把原数组的数据复制过来 例: int[] arr = new int[]{1,2,3,4}; 要把数组索引是3的元素删除 必须创建一个新的数组,长度是原数组的长度-1 把原数组的其它元素…
杂谈最基本数据结构--"线性表": 表结构是一种最基本的数据结构,最常见的实现是数组,几乎在每个程序每一种开发语言中都提供了数组这个顺序存储的线性表结构实现. 什么是线性表? 由0个或多个数据元素组成的有限序列.如果没有元素,称为空表,如果存在多个元素,则第一个元素无前驱,最后一个元素无后继,其他元素元素都有且只有一个前驱和后继. ArrayList和LinkedList ArrayList和LinkedList是顺序存储结构和链式存储结构的表在java语言中的实现. ArrayLis…
JAVA语言中的修饰符 -----------------------------------------------01----------------------------------------------- 类,方法,成员变量和局部变量的可用修饰符 访问控制级别分类: 公开级别,受保护级别,默认级别,私有级别 --------------------------------------------------02-------------------------------------…
Java语言中的面向对象特性 (总结得不错) [课前思考]  1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类?  2. 面向对象编程的特性有哪三个?它们各自又有哪些特性?  3. 你知道java语言在面向对象编程方面有何独特的特点吗? 难点:  1. 理解方法重载和方法重写,不要混淆了两者的使用.  2. 类变量和类方法的使用.  3. 接口的使用. 3.1 面向对象技术基础 http://hovertree.com/menu/java/ 3.1.1 面向对象的基本概念  面向对…
一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; import java.text.MessageFormat; /** * Created by amosli on 14-7-24. */ public class Test { public static void main(String args[]) { //拼接一段string 常用的方法…
近来由于本人要介入android平台的开发,所以就买了本JAVA语言的书学习.学习一段时间来,我的感觉是谭浩强就是厉害,编写的<C编程语言>系列丛书不愧是经典.书中对C语言的介绍既系统又全面.几乎C语言规范的每一个技术细节都可以介绍到,而且全书给人的感觉就像做数学证明题,系统性很强.而反观JAVA语言方面的书籍,可能是本人看得不多,感觉介绍得都不全面,并且没有系统性,许多规范细节往往简单介绍一下,然后给个程序事例就草草结束了,让人不容易理解,更有些细节扎根就没有涉及到.这种感觉就像大学里的英语…