1.单链表的一个优点是结构简单,但是它也有一个缺点,即在单链表中只能通过一个结点的引用访问其后续结点,而无法直接访问其前驱结点,要在单链表中找到某个结点的前驱结点,必须从链表的首结点出发依次向后寻找,但是需要Ο (n)时间。为此我们可以扩展单链表的结点结构,使得通过一个结点的引用,不但能够访问其后续结点,也可以方便的访问其前驱结点。扩展单链表结点结构的方法是,在单链表结点结构中新增加一个域,该域用...
分类:
其他好文 时间:
2015-04-04 10:41:57
阅读次数:
150
双向链表 只是 比 单链表 多了 一个 指向 前驱的 指针,在插入 和 删除 元素的 时候 得多处理一些。其余 没什么 区别。
而循环链表 的 尾指针 不再 指向 NULL,而是 指向 头指针,这样 既可以循环遍历,又节省 存储空间 。
每种链表 都有 好处,至于 如何 取舍,得看需求。
下面 奉上 双向链表的实现代码:
// DoubleLinkList.cpp : 定义控制台应...
分类:
其他好文 时间:
2015-02-15 16:40:14
阅读次数:
166
双向链表Time Limit: 1000ms Memory limit: 65536K有疑问?点这里^_^题目描述学会了单向链表,我们又多了一种解决问题的能力,单链表利用一个指针就能在内存中找到下一个位置,这是一个不会轻易断裂的链。但单链表有一个弱点——不能回指。比如在链表中有两个节点A,B,他们的...
分类:
其他好文 时间:
2015-01-18 13:07:18
阅读次数:
210
和单链表类似,只不过是增加了一个指向前面一个元素的指针而已。示意图:python 实现代码:#Personal Python Data Structure--PPDS##!/usr/bin/python# -*- coding: utf-8 -*-class Node(object): def...
分类:
编程语言 时间:
2014-12-17 12:20:25
阅读次数:
266
上一篇博文介绍了如何使用C语言实现单链表,这篇博文介绍下双向链表的实现。单链表中每个结点只有一个后驱,而双向链表中每个结点都有一个后驱和前驱(除了第一个结点只有一个后驱,最后一个结点只有一个前驱)。双向链表中每个结点具有一个数据域和两个指向前一个结点和后一个结点的指针域。代码的实现:
首先得创建一个结点的结构体:Double_Node
typedef struct Double_Node
{
...
分类:
其他好文 时间:
2014-07-26 17:18:22
阅读次数:
317
7.集合框架 集合: Collection接口 : -List接口 (有序的,通常允许重复) -实现类:ArrayList(用可变数组实现,不是同步的(线程不安全)) :适合查找,添加 LinkedList(双向链表的实现,不是同步的):适合插入,删除 Vector(用...
分类:
编程语言 时间:
2014-06-20 20:06:23
阅读次数:
226
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。
单链表的局限
1,单链表的结点都只有一个指向下一个结点的指针
2,单链表的数据元素无法直接访问其前驱元素
3,逆序访问单链表中的元素是极其耗时的操作...
分类:
编程语言 时间:
2014-06-08 02:16:06
阅读次数:
352