线性表概述
线性表是最基本、最简单、也是最常用的一种数据结构。在线性表中数据元素之间的关系是线性,数据元素可以看成是排列在一条线上或一个环上。
线性表分为静态线性表和动态线性表,常见的有顺序表(静态的)、单向链表(动态的)和双向链表(动态的)。
线性表的操作主要包括:
(0)初始化线性表
(1)计算表的长度n。
(2)线性表是否为空
(3)将元素添加到线性表的末尾
(4)...
分类:
其他好文 时间:
2014-09-14 09:00:46
阅读次数:
226
之前一直觉得链表很神秘,扣扣索索写不出来,逻辑通了后,通过将单向链表中在尾部新增结点的函数完全弄懂后,单向链表也就很轻松写出来删除某个位置的结点的函数和在任意位置增加结点的函数,增删改查也就搞定了
弄懂尾部新增结点的函数后的感觉:首先很清晰链表上的环节怎么实现,其次自己考虑了一下细微的地方就出来了(例如写其他函数的时候不由自主就会想,我怎么知道用户有没有先调建结点的函数就掉删除结点的函数等)
...
分类:
其他好文 时间:
2014-09-12 19:11:04
阅读次数:
399
1 /* 2 * 在这个问题中你访问不到链表的首节点,只能访问那个待删除节点,其实我们可以这样想 3 * 就是把后继结点的值复制到当前节点,当前节点的下一个地址指向后继结点的下一个地址 4 * 把删除当前节点的问题转化为删除后继结点的问题 5 * 在这里要注...
分类:
其他好文 时间:
2014-09-05 12:50:11
阅读次数:
203
Sort a linked list in O(n log n) time using constant space complexity. 1 package SortList; 2 3 import java.util.Iterator; 4 5 class ListNode { 6 7 ...
分类:
编程语言 时间:
2014-09-03 21:00:47
阅读次数:
291
Given a singly linked list L: L0→L1→…→Ln-1→Ln,
reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…
You must do this in-place without altering the nodes' values.
For example,
Given {1,2,3,4}, reorder it to ...
分类:
其他好文 时间:
2014-08-30 00:06:58
阅读次数:
359
1, 最简单的方法, 用一个指针遍历链表, 每遇到一个节点就把他的内存地址(java中可以用object.hashcode())做为key放在一个hashtable中. 这样当hashtable中出现重复key的时候说明此链表上有环. 这个方法的时间复杂度...
分类:
其他好文 时间:
2014-08-29 13:15:29
阅读次数:
195
链表的题目总体来说细节比较多,因为链表的题目在操作链表的过程中本身有些复杂,所以如果链表作为编程题出现的时候,多数情况下题目本身的思路可能不是很复杂,不要把题目往复杂的方向去思考就好了~这里的链表只是说单向链表,双向链表,跳表。树的链表表示形式不属于这个链表的范畴。1.合并两个有序的链表。额外空.....
分类:
其他好文 时间:
2014-08-26 21:12:36
阅读次数:
280
为什么出这个真理文档呢?方面以后我们的视频不断跟进,高级部分关于JDK源码的学习,所以有些基本的思维要叙述一下,包括AQS,常用数据结构,线程等等。这一个帖子主要是我以前写的模拟常用数据结构的代码,可能有些bug 并且不规范,但是重在学习思维.并没有JDK源码部分考虑多,只是简单的写了一点.分享给大家,关于线程同步器的学习我觉得先会用 然后看源码,接着模拟.好开始数据结构了.
注意:在java...
分类:
其他好文 时间:
2014-08-17 13:07:42
阅读次数:
293
我们熟悉了java单向链表的模拟,现在我就必须开始双向链表的模拟的.
1.基础结构对象DuLNode
public class DuLNode {
private Object data;// 存放结点值
private DuLNode prior; // 前驱结点的引用
private DuLNode next; // 后继结点的引用
public DuLNode()...
分类:
其他好文 时间:
2014-08-17 13:07:32
阅读次数:
278
slist是单向链表,不是STL标准,且功能不如list,但是slist占用空间小,某些操作代价更小。...
分类:
其他好文 时间:
2014-08-14 20:46:19
阅读次数:
263