
数据结构与算法
文章平均质量分 93
东门之杨
信科电子狗
展开
-
图
定义G=⟨V,E⟩G=\langle V,E\rangle 图(graph) 顶点(vertex),V是顶点的集合,非空。 边(edge),E是边的集合。 无向图,顶点之间的关系都是对称的。 有向图 弧(arc),有向图的边 完全图(complete graph),任意两点之间都有边。 子图(subgraph) 带权图 稀疏图(sparse graph) 稠密图(dense graph) 路径(pa原创 2015-10-26 14:42:54 · 617 阅读 · 0 评论 -
内排序
内排序和外排序中的“内外”指的是内存和外存。基本概念 记录(record ):结点 关键码(key ):序号 排序码(sort key ):作为排序依据的一个或多个域,不一定是关键码 序列(sequence):线性表 排序(sort )将序列中的记录按照排序码排列起来,使序列不增或不减。 内排序,在内存中进行的排序 正序 逆序 稳定性:排序码相同时保持原来的序。 衡量标准:时间代价:记录的比较和移动原创 2015-11-20 08:14:03 · 625 阅读 · 0 评论 -
外排序
存储器 计算机存储器分为主存储器(内存)和外存储器 内存性能高,价格高;外存性能低,价格也低,并且便携。 外存的基本存储单位:页(page),长度固定的存储块 文件的组织和管理 文件(file),外存上的数据结构,由大量相同的记录组成。 记录(record ),具有独立逻辑意义的数据块,可以由字符、二进制序列、字段或域组成。 操作系统的文件:连续字符序列,没有明显结构。 数据库文件:有结构,每个记录原创 2015-11-24 14:58:03 · 2283 阅读 · 0 评论 -
离散数学补充
概念 集合,元素 有序对 有序对的相等 笛卡尔积: A×B={<x,y>|x∈A,y∈B}A\times B=\{<x,y>|x\in A,y\in B\} 关系: xRyxRy 定义域、值域: domR={x|∃y∈B,<x,y>∈R}\mathrm{dom}R=\{x|\exists y\in B,<x,y>\in R\} ranR={y|∃x∈A,<x,y>∈R}\mathrm{ran原创 2015-10-14 12:29:49 · 1297 阅读 · 0 评论 -
栈和队列
栈和队列都是操作受限制的线性表,栈只能在一端运算,队列只能在两端运算。 栈基本概念 栈(stack), 后进先出(LIFO),只在一端运算。 栈顶(top) 压栈(push) 推出(pop) LIFO性质(Last-In-First-Out) 抽象数据类型//栈的抽象数据类型 template<class T> class Stack{ public: void clear(); v原创 2015-11-12 22:28:56 · 420 阅读 · 0 评论 -
二叉树
基本概念 二叉树(binary tree):结点的有限集合,一般为根结点+左右子树 根结点(root) 子树(subtree) 父结点(parent) 子结点(child) 兄弟结点(sibling) 结点的度(degree):结点的子树的个数 叶结点(leaf ):度为0的结点 内部结点(internal node),除叶结点以外的非终端结点 边(edge):有向线段<k,k′><k,k'> 路径原创 2015-10-27 19:47:36 · 1010 阅读 · 0 评论 -
线性表
线性表 线性表(linear list ):元素组成的有限且有序的序列。 所谓的线性指的是一个连着一个,并非数学或物理中的线性。 特点: 均匀性:每个元素数据类型相同 有序性 数学结构: 二元组B=(K,R)B=(K,R) KK为结点集合K={v0,v1,⋯,vn}K=\{v_0,v_1,\cdots,v_n\} RR为关系集合R={r}R=\{r\}。 除了第一个结点外,所有结点都有前驱 除了原创 2015-11-12 21:54:02 · 336 阅读 · 0 评论 -
绪论
数据结构数据结构(Data Structure)涉及数据的逻辑结构、数据的存储结构、数据的运算三个方面。数据的逻辑结构结点+关系(K,R) 结点,为基本的数据类型(integer, real, boolean, char, pointer)或复合数据类型(structure, string) 关系: 1. 线性(linear),前后关系,大小关系 有向 单索 全序树(tree),层次关系,父原创 2015-09-16 15:40:26 · 411 阅读 · 0 评论 -
线性表
线性表(Linear List)的类模板.顺序表(sequential list)或向量(vector)的类向量的插入算法向量的删除算法单链表(linked list)的类单链表的查找算法单链表的插入算法单链表的删除算法单链表的求长算法双链表(double linked list)的类双链表的插入算法双链表的删除算法循环链表(circularly linked list)的类原创 2015-09-23 18:38:01 · 357 阅读 · 0 评论 -
树
DefinitionK+RK+R 树(tree ),有且仅有一个根结点 根(root ) 路径(path ) 父结点,子结点 边(edge ),⟨k,k′⟩\langle k,k'\rangle 兄弟结点 树叶(leaf ) 结点的度(degree ) 祖先(ancestor ) 子孙 层数(level ),根结点的层数为00 有序树(ordered tree ) 二叉树(binary tree )原创 2015-10-27 11:41:07 · 1009 阅读 · 0 评论 -
栈和队列
栈 栈(stack), 后进先出(LIFO),只在一端运算。 名词 栈顶(top)压栈(push)推出(pop) 实现方式 顺序方法,用向量实现链式方法,用单链表实现 应用 计算表达式的值(后缀表达式)递归(Hanoi塔问题)函数调用 队列 队列(queue), 先进先出(FIFO),在两端运算。 名词 栈顶(top)压原创 2015-09-25 09:51:00 · 277 阅读 · 0 评论 -
检索
检索(Search ),在一组记录集合中找到关键码值等于给定值的某个记录,或者找到关键码符合某种条件的一些记录。 检索效率很重要,需要对数据进行特殊的存储处理。 特殊处理方法:预排序、建立索引、散列技术、B树方法 检索核心操作:关键码的比较 平均检索长度(Average Search Length ):检索过程中对关键码的平均比较次数ASL 基于线性表的检索顺序检索二分检索分块检索原创 2015-11-27 08:13:03 · 606 阅读 · 0 评论