数据结构练级塔
breakingsword
越知越无知,求学求不学。
展开
-
一.数据结构概论
1.数据与数据结构概论数据:信息的载体。 数据元素:数据的基本单位,也是最小单位。 数据对象:具有相同性质的数据元素的集合。 数据结构:统一数据对象中个数据元素之间存在的关系。 关系如图: 2.数据结构逻辑结构 线性结构、树形结构、图2.1 共同表示方法Data_Structure={D,R} D:数据元素的有限集合,包含了所有的数据。 R:D上关系的有限集合,包含了所有数据的原创 2016-09-12 16:09:46 · 245 阅读 · 0 评论 -
二.一维和多维,静态与动态数组
1.数组概论数组是一种按顺序存储的数据结构,可以使用下标进行随机化访问。2.静态数组2.1 一维数组使用顺序存储,可以随时改变其中内容。申请方式: 语言 申请方式 java 数组类型 变量名[]=new 数组类型[个数] c++ 数组类型 变量名[个数]存储方式:在内存中连续存储。2.2 二维数组和多维数组二维数组是使用数组作为数组的元素进行存储,多维数组是迭代这个过原创 2016-09-12 16:11:13 · 357 阅读 · 0 评论 -
三.栈与栈的实例——汉诺塔
1.栈 First In Last Out,顺序栈和链栈,六种方法,声明使用方式。1.1 概论栈,是一个先进先出的一个数据结构。如图: 1.2 顺序栈和链栈顺序栈就是一般的栈。链栈就是使用链表将栈存储起来的由上一元素的节点指向下一元素。 如图所示: 1.3 六种基本方法构造空栈:初始化一个栈。 InitStack(S)判断空:判断是否为空。StackEmpty(S)判断满:判断是否原创 2016-09-12 16:13:20 · 5754 阅读 · 0 评论 -
四.队列与双端队列
1.队列概述队列(queue)是一种是相对于栈的一种数据结构,它是先进先出(First In First Out)。 它只可以在尾部添加元素。 双端队列(deque double ended queue(双端队列))是一种相对于队列的一种数据结构。它可以在尾部和头部插入、移除和获取。 2.队列方法java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Col原创 2016-09-12 16:16:01 · 4624 阅读 · 1 评论 -
五.单链表、双向链表与循环链表
1.头指针和头结点头指针 指向第一个模块。 头结点 在链表的第一个结点之前附设一个结点,这个结点可以不存储信息,也可以存储链表的长度等。 2.单链表单链表,只在尾部有一个指针,指向下一个数据。 3.循环链表循环链表,尾部数据的指针指向头部数据 4.双向链表双向链表 每个存储元素不仅包含数值和尾部指针,还拥有头部指针,头部指针指向上一个元素。 5.双向循环链表双向循环链表 首尾原创 2016-09-12 16:20:11 · 564 阅读 · 0 评论 -
六.树的多种分类
1.属性树是由n(n>=1)个有限节点组成一个具有层次关系的集合,形状像树。 节点属性: 度 这个节点所包含的子树个数。关系 这个节点与父节点、子节点、兄弟节点、堂兄弟节点关系。祖先和子孙的关系。层次 根为第1层,根的子节点为第2层,依次类推。 名词 含义 叶节点 度为0 分支节点 度不为0 兄弟关系 同一个父节点 堂兄弟关系 双亲同一层 祖先 从原创 2016-09-12 16:24:05 · 478 阅读 · 0 评论 -
八.堆与堆的构建
1.堆的概述堆数据结构是一种数组对象,它可以被视为一棵完全二叉树结构。它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。 2.堆的构建给定n个数,从n/2个节点开始,依次构建堆,直到第一个节点。举例: 给定数组{5,23,37,41,59,16,23},构建其大根树。转换成树结构 从n/2节点开始,如图为3——“37”,构建其为堆。 现在轮到2,如图为“23”,构原创 2016-09-12 16:27:40 · 841 阅读 · 0 评论 -
七.图的多种分类
1.图的概述图形结构中,节点之间的关系是任意的,图中任意两个数据元素之间都有可能相关。图G由两个集合V(顶点Vertex)和E(边Edge)组成,定义为G=(V,E)。2.图的分类无向图:全由无向边组成的图为无向图。 表示: V={1,2,3} E={(1,2),(1,3)} 有向图:全由有向边组成的图为有向图。 表示: V={1,2,3} E={<2,1>,<1,3>}(注:有向原创 2016-09-12 16:26:22 · 921 阅读 · 0 评论