逻辑结构:数据之间的关系。常见的逻辑结构只有两种,即【线性结构】和【非线性结构】物理结构:在计算机中的存储方法。常见的物理结构只有两种,即【顺序存储】和【链式存储】常见数据结构:一.线性表1.线性表的逻辑结构:
a.有且只有一个开始结点a1,没有直接前驱,有唯一的直接后继a2 b.有且只有一个终.....
分类:
其他好文 时间:
2014-05-27 02:18:47
阅读次数:
167
http://acm.hdu.edu.cn/showproblem.php?pid=1385
求最短路,要求输出字典序最小的路径。
spfa:拿一个pre[]记录前驱,不同的是在松弛的时候,要考虑和当前点的dis值相等的情况,解决的办法是dfs找出两条路径中字典序较小的,pre[]去更新。把路径当做字符串处理。
我只用之前的pre去更新当前点,并没考虑到起点到当前点的整个路径...
分类:
其他好文 时间:
2014-05-19 22:49:45
阅读次数:
383
双向(循环)链表是线性表的链式存储结构的又一种形式。
在之前已经讲述了单向链表和循环链表。相比于单向链表只能从头结点出发遍历整个链表的局限性,循环链表使得可以从任意一个结点遍历整个链表。
但是,不管单向链表也好,循环链表也罢,都只能从一个方向遍历链表,即只能查找结点的下一个结点(后继结点),而不能查找结点的上一个结点(前驱结点)。鉴于上述问题,引入了双向链表。由于双向循环链表包含双向链表的所有...
分类:
其他好文 时间:
2014-05-18 18:43:19
阅读次数:
341
实现操作
(1)二叉搜索树的建立
(2)二叉搜索树的插入
(3)二叉搜索树的三种递归遍历(前序、中序和后续)
(4)二叉搜索树的三种非递归遍历(前序、中序和后续)
(5)二叉搜索树的逐层打印
有时间再实现:
(6)二叉搜索树的前驱和后继查找
(7)二叉搜索树的删除
源码分析:
#include
#include
#include
using namespace st...
分类:
编程语言 时间:
2014-05-18 10:28:47
阅读次数:
492
感觉数组这一段没讲什么太多的东西。先是讲了下定义,就是每个维度上都有对应的前驱后继,首尾元素例外。操作只有初始化 销毁 取元素
修改元素。然后讲了下适合用顺序存储结构,多维情况下根据下标(j1 j2 j3 ... jn)找到对应像素的存储位置 cn= L, ci-1= bi* ci,
LOC = L...
分类:
其他好文 时间:
2014-05-16 07:59:53
阅读次数:
264
题目: Sort a linked list using insertion sort.解题思路:
假设 list[1..i]是排好序的,找到第i+1个元素应该插入的位置及其前驱,然后将其插入。代码: /** * Definition for
singly-linked list. * str...
分类:
其他好文 时间:
2014-05-16 05:47:08
阅读次数:
258
我们先来看一张之前整理过的一张二叉树的链式存储结构
1、每个数据域,都有2个指针域,分别指向该节点的左孩子、右孩子,但是每个节点前驱、后继,要知道的话需要遍历整棵树,这在时间上耗费很大。
2、另外,在叶子节点中,我们可以看到如图,每个节点都会浪费2块存储空间,N个节点的二叉树,2N个指针域,连接线为2N-1,那么会有2N-(N-1) = N+1个指针域浪费掉。
为了优化以上2...
分类:
其他好文 时间:
2014-05-15 13:30:19
阅读次数:
283
小学生放学都是要按顺序排队的,一个接一个,每个小学生的前后位置是固定的,这样便于迅速清点。其实这就是一个线性表,从这件事里我们就可以找到很多关于线性表的特性,如1、线性表是一个序列,它是有顺序的(排队)2、第一个元素无前驱,最后一个无后继,其他每个元素都有一个前驱和后继(一个接一个)3、元素是有限的...
分类:
其他好文 时间:
2014-05-15 10:36:45
阅读次数:
334
ADT 线性表(List)
Data
线性表的数据对象集合为{a1,a2,…,an},每个元素的类型均为DataType。
其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个直接后继元素。
数据元素之间的关系是一对一的关系。
Operation
InitList(*L): 初始化操作,...
分类:
编程语言 时间:
2014-05-15 03:39:54
阅读次数:
357
题意:给定一张地图,并且给定起点和终点,求起点到终点的最短距离,地图上有墙,与以往的题目不同的是,以往的题目障碍物都是在格子上,但是本题的障碍物墙是在格子与格子的边界线上,所以在输入的时候就要进行预处理下,将墙的位置转化为相邻格子的东西南北方向墙的状态,所以使用了一个3为数组来记录地图的信息map[x][y][0]-map[x][y][3] 分别表示坐标为x,y的格子的四个方向墙的情况,0为没墙,1为有墙,然后一个dfs找到最短路,以及每个点的前驱节点,最后打印路径。代码中的注释很详细。题目本身很简单,就是...
分类:
其他好文 时间:
2014-05-09 02:19:55
阅读次数:
454