
Data Structure
文章平均质量分 86
Nicholas Kong
继续前行~!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线性表->循环链表, 双向链表
/******************************************循环链表**********************************************将单链表中终端节点的指针端由空改为指向头结点,就使整个单链表形成一个环,这种头尾相连的单链表成为单循环链表,简称循环链表单链表解决了,从当中某个结点出发,便可访问链表的全部结点的问题。单链表和循环链表在循环原创 2013-07-17 15:33:26 · 570 阅读 · 0 评论 -
二叉树遍历算法(非递归)
#include#includeusing namespace std;typedef struct BiTNode // 树的结点{ char data; struct BiTNode *lChild,*rChild;}BiTNode,*BiTree;typedef struct BTNode{ // 压栈结构 BiTree * btNode; /原创 2013-09-09 21:18:18 · 610 阅读 · 0 评论 -
栈与队列->队列
/************************************************************************************************队列(queue):是只允许在一端进行插入操作,而在另外一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO.允许插入的一端称为队尾,允许删除的原创 2013-07-25 11:08:21 · 643 阅读 · 0 评论 -
栈与队列->栈,链栈
/************************************************************************************************顺序栈和链栈的时间复杂度都一样是O(1)。对于空间性能:顺序栈需要事先确定固定的长度,肯能出现内存浪费的问题,但是其存取时定位很方便。链栈则要求每个元素都有指针域,这同时也增加了内存开销,但是链栈可原创 2013-07-23 11:19:22 · 678 阅读 · 0 评论 -
线性表->单链表
/************************************************************************************************头指针: 1,头指针是指链表指向第一个节点的指针,若链表的有头结点,则是指向头结点的指针 2,头指针有标识作用,长用头指针冠以链表的名字原创 2013-07-15 13:46:58 · 657 阅读 · 0 评论 -
线性表->顺序表
/************************************************************************************************优点: 1,无须为表中元素之间的逻辑关系而增加额外的空间 2,可以开苏的存取中任意位置的元素缺点: 1,插入和删除操作需要移动大原创 2013-07-15 12:43:00 · 869 阅读 · 0 评论 -
查找-线性索引,二叉排序树
线性索引查找索引是为了加快查找速度而设计的一种数据结构。索引就是把一个关键字与它对应的记录相关联的过程。一个索引由若干个索引项构成,每个索引项至少应包含关键字和其对应的记录在存储器中的位置等信息。索引技术是组织大型数据库和磁盘文件的一种总要技术。索引按照结构分为:线性索引,树形索引和多级索引。线性索引就是将索引项集合组织为线性结构,也称之为索引表。稠密索引原创 2013-09-04 16:53:35 · 1414 阅读 · 0 评论 -
查找-顺序,有序表
斐波那契查找// 斐波那契查找// 首先需要有现成的斐波那契数列数组F[]// 斐波那契查找核心在于// 1),当key = a[mid]时,查找成功// 2),当key < a[mid]时,新的范围是第low个到第mid-1个,此时范围个数为F[k-1]-1个。// 3),当key > a[mid]时,新范围是m+1个到第high个,此时范围个数为F[k-2]-1个。F = {原创 2013-09-02 17:22:27 · 790 阅读 · 0 评论 -
树
树的定义树(Tree)是n个(n>=0)个结点的有限集。 n=0时称之为空树。在任意一个非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,T3...Tm,其中每个集合本身就是一棵树,并且称为根的子树(Subtree)注:n>0时,树根仅为1,不可能存在多个根结点;m>0时,子树的个数没有限制,但原创 2013-09-03 14:02:46 · 870 阅读 · 0 评论 -
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键转载 2013-08-26 15:39:23 · 745 阅读 · 0 评论 -
栈与队列->栈的作用
栈的引用简化了程序设计的问题,划分了不同的关注层次,使得思考范围缩小,更加聚焦于我们要解决问题的核心。而数组等,要分散精力去思考数组的下标增减等细节问题,从而掩盖了问题的本质。栈的应用 -- 递归栈的重要应用就是在程序设计语言中实现了递归。经典的递归例子: 斐波那契数列。Eg: 如果说兔子出生两个月后便有繁殖能力,一对兔子每月能出生一对兔子,假如所有的兔子都不死原创 2013-07-23 15:22:31 · 1947 阅读 · 0 评论 -
串
串(String) 是由零个或者多个字符组成的有限序列,又名字符串。一般记为s="a1a2......an"(n>=0),其中s是串的名称,用双引号引起来的是串的值,i是该字在串中的位置。串中字符数目n称为串的长度。零个字符串称为空串(null string),其长度为0,可以直接使用双引号“”标识。所谓的序列,说明串的相邻字符之间有着前驱和后继的关系。空格串,只包含空格的原创 2013-07-29 11:01:20 · 586 阅读 · 0 评论 -
线性表->静态链表(未完)
/****************************************仅作了解,几乎用不到**************************************静态链表:数组元素都是由两个数据域组成,data 和 cur. 也就是说数组的每个下标都对应一个data和一个cur.数据域data用来存放数据元素,及我们需要处理的元素;而游标则相当于单链表中的next指针,存放着该原创 2013-07-17 15:10:05 · 541 阅读 · 0 评论 -
栈与队列->顺序栈,双向栈
/************************************************************************************************栈:是一种仅限在表尾进行插入和删除操作的线性表,又称为后进先出的线性表 LIFO (Last In First Out)允许插入和删除的一端称为栈顶(top),另外一端称之为栈底(bottom)不含任原创 2013-07-17 16:28:40 · 1549 阅读 · 1 评论