1、深度优先算法 遍历规则:不断地沿着顶点的深度方向遍历。顶点的深度方向是指它的邻接点方向。 最后得出的结果为:ABDECFHG。 Python代码实现的伪代码如下: 2、广度优先算法: 遍历规则: 1)先访问完当前顶点的所有邻接点。(应该看得出广度的意思) 2)先访问顶点的邻接点先于后访问顶点的邻 ...
分类:
编程语言 时间:
2018-05-25 23:36:24
阅读次数:
407
Linux驱动框架分析(一) 事实上,Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应该包含了驱动程序所需要的所有资源。用术语来说,就是这个驱动器对象所拥有的属性及成员。由于Linux的内核用c来编写,所以我们也按照这种结构 ...
分类:
系统相关 时间:
2018-03-17 15:24:08
阅读次数:
210
单向链表只能从一个方向遍历链表,即只能查找结点的下一个结点(后继结点),而不能查找结点的上一个结点(前驱结点)。鉴于上述问题,引入了双向链表。由于双向循环链表包含双向链表的所有功能操作。因此,我们只讲述双向循环链表。 与单向链表不同,双向链表的结点构造如下图所示。即一个结点由三个部分组成,数据域DA ...
分类:
其他好文 时间:
2017-06-07 22:26:34
阅读次数:
174
今天这一题是“贪吃蛇”: 给定一个NxN矩阵,从[0][0]开始沿顺时针方向遍历所有元素。如: 1 2 3 8 9 4 7 6 5 这样一个矩阵,最终的遍历打印输出为 1 2 3 4 5 6 7 8 9。 如何做到呢? 这个遍历其实是不断打印某个矩阵的四条边。老老实实的研究出各条边的起止index规 ...
分类:
其他好文 时间:
2017-05-24 21:09:50
阅读次数:
178
一、描述: 二、思路: 完全二叉树; 对于整棵二叉树,从根结点出发,一直沿左下方向遍历树的深度是l,一直沿右下方向遍历的深度是r;则有两种情况: 1、l == r,左右深度相等,一定是完全二叉树,即满二叉树,结点个数为(2^l-1)或(2^r-1); 2、l != r,只有一种情况:在二叉树的倒数第 ...
分类:
其他好文 时间:
2017-03-27 15:35:48
阅读次数:
176
java.util.ListIterator<E> 源码分析(JDK1.7) java.util.ListIterator<E>是一个接口,它的定义如下: (1)java.util.ListIterator<E>列表集合迭代器,允许按任一方向遍历列表集合、迭代期间可以修改列表集合元素,并获得迭代器在 ...
分类:
编程语言 时间:
2017-01-24 17:10:41
阅读次数:
194
水平方向遍历一次,竖直方向遍历一次,将需要删除的位置标志入一个数组,最后比较输出即可。 ...
分类:
其他好文 时间:
2016-09-06 00:55:16
阅读次数:
175
题目描述:给你一个包含 m x n 个元素的矩阵 (m 行, n 列), 求该矩阵的之字型遍历。
样例:对于如下矩阵:
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10, 11, 12]
]
返回 [1, 2, 5, 9, 6, 3, 4, 7, 10, 11, 8, 12]
首先,先说明一下题目的意思。其实是以45度角方向遍历...
分类:
其他好文 时间:
2016-06-12 03:16:42
阅读次数:
198
题目链接:点击打开链接
题目大意:给出一个有向图,求1到其它点的最短距离,要求dis[1] dis[n-1] > dis[n] (1
给出符合条件的每条边的边长(1
设置vis标记点是否已经存在,从左边开始逐个搜索,如果点已经存在那么继续遍历,否则换方向遍历(从右开始遍历),因为题目保证存在输出,所以一定可以遍历完所有的。
按照被遍历到的时间也就是dis的值,然后在按照(u,v) = ...
分类:
其他好文 时间:
2015-08-15 20:07:21
阅读次数:
167
第十二章 利用结构和指针这章就是链表。先单链表,后双向链表。总结:单链表是一种使用指针来存储值的数据结构。链表中的每一个节点包括一个字段,用于指向链表的下一个节点。有一个独立的根指针指向链表的第1个节点。单链表仅仅能从一个方向遍历。怎样insert单链表:1、新节点的link字段必须设置为指向它的后...
分类:
其他好文 时间:
2015-07-13 21:59:51
阅读次数:
84