1 #include<iostream> 2 3 using namespace std; 4 #define swap(a,b) {int t;t = a;a = b;b = t;} 5 //节点类型的定义 6 typedef struct node 7 { 8 int data; 9 node ...
分类:
编程语言 时间:
2019-12-16 22:29:29
阅读次数:
131
前言: 有序列表,允许存放重复的元素;实现类: ArrayList:数组实现,查询快,增删慢,轻量级;(线程不安全) LinkedList:双向链表实现,增删快,查询慢 (线程不安全) Vector:数组实现,重量级 (线程安全、使用少) Stack:对象栈,遵循先进后出的原则。 一、ArrayLi ...
分类:
编程语言 时间:
2019-12-15 21:48:38
阅读次数:
88
概念 双向链表(Double_linked_list)也叫双链表,是链表的一种,它的每个数据结点中都有 两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可 以很方便地访问它的前驱结点和后继结点。 实现 ...
分类:
编程语言 时间:
2019-12-13 14:17:17
阅读次数:
81
概念 链表(linked_list)是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序 是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间) ,另一个是指向下一个结点地址的指针域。根据指针的指向,链表能形成不同的结构,例如 单链表,双向链表,循环链表等. ...
分类:
编程语言 时间:
2019-12-13 13:51:38
阅读次数:
80
Collection 1.List ArrayList:Object数组 Vector:Object数组 LinkedList:双向链表(JDK1.6之前为循环列表,JDK1.7取消了循环) 2.Set HashSet(无序,唯一):基于HashMap实现的,底层采用HashMap来保存元素 Lin ...
分类:
其他好文 时间:
2019-12-12 19:37:55
阅读次数:
101
双向链表 首先来分析一个上篇文章中单向链表的缺点: 1. 单向链表查找的方向只能是一个方向,而双向链表可以向前或者向后查找。 2. 单向链表不能自我删除,需要靠辅助节点,而双向链表则可以自我删除。所以前面进行单链表删除的时候,我们总是找到待删除节点的上一个节点。 双向链表也叫双链表,是链表的一种,它 ...
分类:
其他好文 时间:
2019-12-09 21:34:01
阅读次数:
132
容器分为:序列式容器、关联式容器、不定序容器 序列式容器有,数组(array)(不可自动扩充),vector(可单端自动扩充),双端队列(deque)(可双端自动扩充),双向链表(list),单项链表(forward-list) 关联式容器有,set/multiset,map/multimap // ...
分类:
其他好文 时间:
2019-12-09 11:48:34
阅读次数:
126
双向链表 public class Node { Object o; Node up; Node down; public Object getO() { return o; } public void setO(Object o) { this.o = o; } public Node getUp ...
分类:
编程语言 时间:
2019-12-07 12:22:02
阅读次数:
62
一、基础 LinkedList不是线程安全的,多线程建议使用Vector; LinkedList 底层使用的是 双向链表 数据结构(JDK1.6之前为循环链表,JDK1.7取消了循环); LinkedList 不支持高效的随机元素访问; 实现了Cloneable接口,表明能被克隆; 实现了Seria ...
分类:
编程语言 时间:
2019-12-06 23:23:54
阅读次数:
110
LinkedList实现原理(JDK1.8) LinkedList底层采用双向链表,如果对链表这种结构比较熟悉的话,那LinkedList的实现原理看明白就相当容易。 链表通过“指针”将一组零散的内存块串联起来使用,每一个元素(节点)通过指针指向它的下一个元素,最后一个节点的下一个指向为null,而 ...
分类:
其他好文 时间:
2019-12-04 01:18:45
阅读次数:
55