作为数据结构小白,对于开发新工具PyConn的数据结构选择进行了大量的思想斗争而不得其果,只好从数据结构基础开始这个选择的过程。数据结构是数据元素和数据元素之间关系的组织形式。数据结构包含存储结构,逻辑结构,以及对数据的操作。存储结构分为四种基本形式:(1)顺序存储方式。数据元素顺序存放,每个存储结...
分类:
其他好文 时间:
2015-01-11 20:19:34
阅读次数:
206
关于线性表 ????? ? 线性表是零个或者多个数据元素的集合。它主要有以下三个特征: ????? ? 1:线性表的数据元素之间是有顺序的。 ?????? ?2:线性表中数据元素个数是有限的。 ?...
分类:
其他好文 时间:
2015-01-09 23:53:12
阅读次数:
322
队列(Queue):具有一定操作约束的线性表插入和删除操作:只能在一端插入,而在另一端删除先进先出1、队列的顺序存储实现队列的顺序存储结构通常由一个一维数组和一个记录队列头元素位置的变量front以及一个记录队列尾元素位置的变量rear组成(1)初始化#define MaxSize typedef....
分类:
其他好文 时间:
2015-01-09 20:44:52
阅读次数:
201
堆栈(Stack):具有一定操作约束的线性表只在一端(栈顶,Top)做插入和删除1、栈的顺序存储实现栈的顺序存储结构通常由一个一维数组和一个记录栈顶元素位置的变量组成。(1)存储#define MaxSize typedef struct { ElementType Data[MaxSize] in...
分类:
其他好文 时间:
2015-01-09 19:04:58
阅读次数:
151
<?php
/**
*第三种——循环顺序队列的实现方法
*此方法是解决前两种方法的缺点,利用循环队列的方法达到了最优时间复杂度和空间复杂度
*
*
*/
classSqQueue3{
constARR_MAX=20;
private$SqArr;
private$front;
private$rear;
//初始化队列
publicfunction__construct(){
$t..
分类:
Web程序 时间:
2015-01-09 01:43:56
阅读次数:
188
<?php
/**
*第二种——非循环顺序队列的实现方法
*此方法,对第一种实现方法进行了优化,出队时不再移动元素
*仅仅改变头指针的位置即可
*
*此方法的优缺点:
*优点:插入和删除的时间复杂度都已是O(1),效率比较高
*缺点:元素删除后,前面的空间就无法再进行利用,造成空..
分类:
Web程序 时间:
2015-01-09 01:43:49
阅读次数:
187
<?php
/**
*第一种——非循环顺序队列的实现方法
*队列的头元素在为数组的下标为0的元素
*这种方法的优缺点:
*优点:头元素始终在下标为0的第一个元素,因此不需要设置头指针
*缺点:元素出队是会移动大量元素,时间复杂度为O(n),效率比较低
*
*/
classSqQueue{
private$Sq..
分类:
Web程序 时间:
2015-01-09 01:43:21
阅读次数:
142
题目:有一个线性表(a1,a2,a3,...,an),采用带头节点的单链表L存储,设计一个算法将其就地逆置,线性表变为(an,...a3,a2,a1)。所谓“就地”指辅助存储空间为O(1)。
解题思路:
如果是顺序存储的话,我们很容易想到解题思路,利用1个辅助变量让第1个元素与第n个元素交换,然后再利用这个辅助变量让第2个元素与第n-1个元素交换,...最后利用这个辅助变量让第n/2个元素与第...
分类:
其他好文 时间:
2015-01-08 21:42:52
阅读次数:
258
swift语言提供了数组和字典两种集合类型,数组用来按顺序存储相同的数据类型,字典是键值对的形式存储相通类型的数据。在swift中,数据和集合存储的数据类型必须明确,他只能存取指定的数据类型。数组数组是有序的集合,存储相通类型的数据,同一个值可以多次出现在数组中。声明数组var arrayList:...
分类:
编程语言 时间:
2015-01-08 19:38:15
阅读次数:
330
1.Hash表的结构首先,允许我们花一点时间来简单介绍hash表。1.什么是hash表hash表是一种二维结构。先附上一副图片,我们再开始长篇大论。如上图所示,左侧是一个一维顺序存储的数组,数组里存储的是指向另一个链式数组的指针。绿色部分即为一对对,绿色部分右侧的白色部分是指向下一对键值对的指针。h...
分类:
编程语言 时间:
2015-01-06 21:26:22
阅读次数:
399