小猪的数据结构学习笔记(五)
本节将会对链表中的循环链表进行讲解:
链表的相关操作:存储结构,判断是否为空表,初始化,插入,删除,查找,遍历
解决约瑟夫问题:普通数组解;循环链表解决;数学方法解决
扩展约瑟夫问题的求解...
分类:
其他好文 时间:
2014-10-07 15:14:43
阅读次数:
249
过程 首先需要记录每个点到原点的距离,这个距离会在每一轮遍历的过程中刷新。每一个节点到原点的最短路径是其上一个节点(前驱节点)到原点的最短路径加上前驱节点到该节点的距离。以这个原则,经过N轮计算就能得到每一个节点的最短距离。第一轮,可以计算出,2、3、4、5、6到原点1的距离分别为:[7, 9, -...
分类:
其他好文 时间:
2014-10-07 14:03:13
阅读次数:
297
思路:采用中序遍历的方法,visit函数需要完成的功能为:
1、当前节点的左子节点指向上一次访问的节点;
2、将上一次访问节点的右子节点指向当前节点;
3、最后更新上一次访问节点为当前节点。
在第二步时需要判断上一次访问节点是不是为NULL,如果是,则第二步改为链表的头结点指向当前节点。
程序如下:
struct BSTnode
{
int data;
BSTnode * left...
分类:
其他好文 时间:
2014-10-07 13:20:23
阅读次数:
136
题目:统计一个有向图中,给定起点不能到达的点。
分析:图论,搜索。直接利用dfs遍历即可。
说明:起始点开始属于未被遍历的点,注意初始化数据。
#include
#include
#include
using namespace std;
int maps[110][110];
int used[110];
void dfs(int s, int n)
{
for (int i...
分类:
其他好文 时间:
2014-10-07 12:31:53
阅读次数:
173
#include
#include
#include
using namespace std;
int main()
{
multimap authors;
// 插入元素, 引入的头文件是 map
authors.insert(make_pair(
string("Evin"), // 这个是 Key
string("Hi")));
authors.insert...
分类:
编程语言 时间:
2014-10-07 12:28:53
阅读次数:
284
计算所有的slope 放到一个arraylist中. 特殊情况是the same as point . 遍历所有./** * Definition for a point. * struct Point { * int x; * int y; * Point() : x(0)...
分类:
其他好文 时间:
2014-10-07 05:19:42
阅读次数:
284
欧拉回路的简单定义:对一个连通图来说,如果遍历这个图的时候可以把每条边都遍历一次,并且只能遍历一次,那么此图便有欧拉回路。上面的红体字也就说明了判断一个图是否有欧拉回路的关键: 1. 必须是连通图 2.每条边必须且只能遍历一次。那么首先我们要解决第...
分类:
其他好文 时间:
2014-10-06 21:49:20
阅读次数:
219
用Python遍历指定目录下的文件,一般有两种常用方法,但它们都是基于Python的os模块。下面两种方法基于Python2.7,主要用到的函数如下:1.os.listdir(path):列出目录下的所有文件名2.os.getcwd():获得当前工作目录3.os.mkdir(dir):创建单个目录4...
分类:
编程语言 时间:
2014-10-06 21:21:32
阅读次数:
243
在建立二叉树的时候发现,那些叶节点的左孩子和右孩子的指针域都是空的,浪费空间,这时候就可以将这些空间利用起来,让遍历更加方便,这就是线索树存在的原因,线索树实现完了之后其实会发现就是一个双向链表,那种遍历就容易的多了。 1 #include 2 #include 3 4 typedef...
分类:
其他好文 时间:
2014-10-06 20:20:10
阅读次数:
195
题目链接:http://poj.org/problem?id=2255思路: 根据先序遍历(如DBACEGF)可以找出根结点(D),其后为左右子树; 根据中序遍历(如ABCDEFG),已知根结点(D),可以知道在根结点左边的为左子树结点(ABC),右边为右子树结点(EFG);可以求出左子树与右子.....
分类:
其他好文 时间:
2014-10-06 17:50:20
阅读次数:
169