数据结构与算法
文章平均质量分 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 · 517 阅读 · 0 评论 -
内排序
内排序和外排序中的“内外”指的是内存和外存。基本概念记录(record ):结点关键码(key ):序号排序码(sort key ):作为排序依据的一个或多个域,不一定是关键码序列(sequence):线性表排序(sort )将序列中的记录按照排序码排列起来,使序列不增或不减。内排序,在内存中进行的排序正序逆序稳定性:排序码相同时保持原来的序。衡量标准:时间代价:记录的比较和移动原创 2015-11-20 08:14:03 · 587 阅读 · 0 评论 -
外排序
存储器计算机存储器分为主存储器(内存)和外存储器内存性能高,价格高;外存性能低,价格也低,并且便携。外存的基本存储单位:页(page),长度固定的存储块文件的组织和管理文件(file),外存上的数据结构,由大量相同的记录组成。记录(record ),具有独立逻辑意义的数据块,可以由字符、二进制序列、字段或域组成。操作系统的文件:连续字符序列,没有明显结构。数据库文件:有结构,每个记录原创 2015-11-24 14:58:03 · 2249 阅读 · 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 · 1212 阅读 · 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 · 405 阅读 · 0 评论 -
二叉树
基本概念二叉树(binary tree):结点的有限集合,一般为根结点+左右子树根结点(root)子树(subtree)父结点(parent)子结点(child)兄弟结点(sibling)结点的度(degree):结点的子树的个数叶结点(leaf ):度为0的结点内部结点(internal node),除叶结点以外的非终端结点边(edge):有向线段<k,k′><k,k'>路径原创 2015-10-27 19:47:36 · 963 阅读 · 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 · 320 阅读 · 0 评论 -
绪论
数据结构数据结构(Data Structure)涉及数据的逻辑结构、数据的存储结构、数据的运算三个方面。数据的逻辑结构结点+关系(K,R) 结点,为基本的数据类型(integer, real, boolean, char, pointer)或复合数据类型(structure, string) 关系: 1. 线性(linear),前后关系,大小关系有向单索全序树(tree),层次关系,父原创 2015-09-16 15:40:26 · 398 阅读 · 0 评论 -
线性表
线性表(Linear List)的类模板.顺序表(sequential list)或向量(vector)的类向量的插入算法向量的删除算法单链表(linked list)的类单链表的查找算法单链表的插入算法单链表的删除算法单链表的求长算法双链表(double linked list)的类双链表的插入算法双链表的删除算法循环链表(circularly linked list)的类原创 2015-09-23 18:38:01 · 341 阅读 · 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 · 968 阅读 · 0 评论 -
栈和队列
栈栈(stack), 后进先出(LIFO),只在一端运算。名词栈顶(top)压栈(push)推出(pop)实现方式顺序方法,用向量实现链式方法,用单链表实现应用计算表达式的值(后缀表达式)递归(Hanoi塔问题)函数调用队列队列(queue), 先进先出(FIFO),在两端运算。名词栈顶(top)压原创 2015-09-25 09:51:00 · 265 阅读 · 0 评论 -
检索
检索(Search ),在一组记录集合中找到关键码值等于给定值的某个记录,或者找到关键码符合某种条件的一些记录。检索效率很重要,需要对数据进行特殊的存储处理。特殊处理方法:预排序、建立索引、散列技术、B树方法检索核心操作:关键码的比较平均检索长度(Average Search Length ):检索过程中对关键码的平均比较次数ASL基于线性表的检索顺序检索二分检索分块检索原创 2015-11-27 08:13:03 · 582 阅读 · 0 评论