感觉数组这一段没讲什么太多的东西。先是讲了下定义,就是每个维度上都有对应的前驱后继,首尾元素例外。操作只有初始化 销毁 取元素
修改元素。然后讲了下适合用顺序存储结构,多维情况下根据下标(j1 j2 j3 ... jn)找到对应像素的存储位置 cn= L, ci-1= bi* ci,
LOC = L...
分类:
其他好文 时间:
2014-05-16 07:59:53
阅读次数:
264
都是些定义,没什么需要过多注意的。只要知道几个概念就好:逻辑结构:数据结构中元素之间的关系物理结构/存储结构:数据结构在计算机中的表示。有两种:顺序存储结构(顺序映像)、链式存储结构(非顺序映像)
分类:
其他好文 时间:
2014-05-16 06:47:26
阅读次数:
235
这一章虽然长,但因为我不太重视里面繁琐的计算过程所以也没有多少新东西。线性表中每个元素的类型是相同的。表示的方法有顺序映像的顺序表,实际上就是个一维数组,书上用了变长的存储方式;链式表示有线性链表,就是一个结点指向下一个结点,还有静态链表,就是用数组来实现链表,数组内要存储一个元素的位置。又讲了循环...
分类:
其他好文 时间:
2014-05-16 06:09:47
阅读次数:
270
小学生放学都是要按顺序排队的,一个接一个,每个小学生的前后位置是固定的,这样便于迅速清点。其实这就是一个线性表,从这件事里我们就可以找到很多关于线性表的特性,如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
大意:小明喜欢带他的朋友们逛自己的农场。农场有n块地,屋舍位于1号,谷仓位于n号。有m条路连接这些地,路是无向的,每条路长度已知。他想设计一条线路,从1出发,到n,再回到1,且同一条路不走两遍。问最短的行程是多少。
分析:可建模为最小费用最大流。从1出发,到n,再回到1,相当于找到两条从1到n的路径且二者不能有交集。
对于每条路,费用为长度,容量为1,这样就限制了只能走一次。新建一个顶点连向1,费用为0,容量为2.,作为等价源点。同理再建一个等价汇点。
因为重边的存在,图的存储结构为邻接表而非邻接矩阵...
分类:
其他好文 时间:
2014-05-15 01:40:24
阅读次数:
366
我们分别从存储分配方式、时间性能、空间性能三方面来做对比。
存储分配方式:
顺序存储结构用一段连续的存储单元依次存储线性表的数据元素。
单链表采用链式存储结构,用一组任意的存储单元存放线性表的元素。
时间性能:
查找
顺序存储结构O(1)
单链表O(n)
插入和删除
顺序存储结构需要平均移动表长一半的元素,时间为O(n)
单链表在计算出某位置的指针后,插入和删...
分类:
其他好文 时间:
2014-05-14 14:16:42
阅读次数:
335
本段程序实现串的存储结构是采用堆的动态分配存储表示,并实现了几乎所有常用的串的配套函数
其中逻辑性比较强的就是串的模式匹配算法,在下面的程序中,分别用BF算法和KMP算法对其进行了
实现。
#include
using namespace std;
struct HString
{
HString()
{
ch = 0;
length = 0;
}
char * ch;//...
分类:
编程语言 时间:
2014-05-14 01:12:35
阅读次数:
378
原文第15章 迭代器模式(Iterator Pattern)迭代器模式(Iterator
Pattern)
概述:在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部...
分类:
其他好文 时间:
2014-05-12 08:43:27
阅读次数:
310