Java中LinkedList的部分源码(本文针对1.7的源码) LinkedList的基本结构 jdk1.7之后,node节点取代了 entry ,带来的变化是,将1.6中的环形结构优化为了直线型链表结构,从双向循环链表变成了双向链表 在LinkedList中,我们把链子的“环”叫做“节点”,每个 ...
分类:
编程语言 时间:
2017-09-02 13:01:12
阅读次数:
337
1. 如果一个链表结点数大于等于2,把首节点变为尾结点 2. 将单循环链表拆成两个单循环链表 3. 有一个递增有序的顺序表va。将 x 插入到顺序表的适当位置上,保持顺序表有序 4. 在带头结点的单链表结构上实现线性表操作 Locate(L,x) ...
分类:
其他好文 时间:
2017-08-31 14:33:18
阅读次数:
119
22-1 (以广度优先搜索来对图的边进行分类)深度优先搜索将图中的边分类为树边、后向边、前向边和横向边。广度优先搜索也可以用来进行这种分类。具体来说,广度优先搜索将从源结点可以到达的边划分为同样的4种类型。 a.证明在对无向图进行的广度优先搜索中,下面的性质成立: 1.不存在后向边,也不存在前向边。 ...
分类:
编程语言 时间:
2017-08-24 16:17:56
阅读次数:
297
简介 循环单链表 是在在单链表的基础上,用最后的一个结点的指针域指向头结点形成的。因此它在逻辑上是一个环形结构。 循环单链表在实际编程中很少用。 要点:1、遍历结束的标志是 p == 【头结点地址】,而不是p==NULL 2、表为空的判断标志是: if( head->next == head ) 3 ...
分类:
其他好文 时间:
2017-08-24 01:15:09
阅读次数:
212
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6136 【题目大意】 一堆人在操场上跑步,他们都有一定的速度和初始位置, 当两个人相遇的时候编号较小的就会出局,当场上剩下最后一个人的时候游戏结束, 问时长为多少 【题解】 我们发现每次发生碰撞的一定 ...
分类:
其他好文 时间:
2017-08-21 13:29:10
阅读次数:
203
题目: 报数,共n个人 从1编号,依次报号,报到m出队,再接着从下一个人開始数,依次输出出队的人。 #include<stdio.h> #include<stdlib.h> typedef struct n { int data; struct n* next; }node; node* creat ...
分类:
其他好文 时间:
2017-08-14 21:27:49
阅读次数:
154
biubiu~~ 这道题实际上就是优化模拟,就是找到最先死的让他死掉,运用时间上的加速,题解上说,要用堆优化,也就是这个意思。 对于链表,单项链表和循环链表都不常用,最常用的是双向链表,删除和插入比较方便。 所谓挂链就是把链表中的值域换成一坨别的东东西...... ...
分类:
其他好文 时间:
2017-08-13 20:07:11
阅读次数:
123
谈到链表之前,先说一下线性表。线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。 顺序存储结构就是两个相邻的元素在内存中也是相邻的 ...
分类:
其他好文 时间:
2017-08-13 00:11:40
阅读次数:
155
/*---------约瑟夫环---------*/ /*---------问题描述---------*/ /*编号为1,2,…,n的n个人围坐一圈,每人持一个密码(正整数)。 一开始任选一个正整数作为报数上限值m, 从第一个人开始自1开始顺序报数,报到m时停止。 报m的人出列,将他的密码作为新的m... ...
分类:
编程语言 时间:
2017-08-09 23:47:13
阅读次数:
279
对于单链表,因为每一个结点仅仅存储了向后的指针。到了尾标志就停止了向后链的操作,这样,其中某一结点就无法找到它的前驱结点了。 对于单链表的操作大家能够看我的这篇博客http://blog.csdn.net/zxnsirius/article/details/51183055 我们将单链表中终端结点的 ...
分类:
编程语言 时间:
2017-08-08 21:50:06
阅读次数:
197