数据结构与算法
数据结构与算法基础
SONG_YIH
Github:https://github.com/LAND-CRUISERSYH
展开
-
数据结构与算法--排序
一、排序的基本概念 1) 排序: 将一组杂乱无章的数据按一定规律顺次排列起来 // 将无序序列排成一个有序序列(由小到大或由大到小)的运算 2) 如果参加排序的数据结点包含多个数据域,那么排序往往是针对其中某个域而言 3) 排序方法的分类: * 按数据存储介质: 内部排序和外部排序 // 内部排序: 数据量不大、数据在内存,无需内外存交换数据...原创 2020-08-19 02:35:42 · 703 阅读 · 0 评论 -
数据结构与算法--散列表的查找
一、散列表的基本概念 1.基本思想 记录的存储位置与关键字之间存在对应关系(对应关系---hash函数) 2.基本术语 1) 散列方法(杂凑法): *选取某个函数,依该函数按关键字计算元素的存储位置,并按此存放; * 查找时,由同一个函数对给定值k计算地址,将k与地址单元中元素关键码进行比较,确定查找是否成功 2) 散列函数(杂凑函数...原创 2020-08-18 01:22:04 · 1415 阅读 · 0 评论 -
数据结构与算法--树表的查找
一、二叉排序树(二叉搜索树、二叉查找树) 1.二叉排序树的定义 二叉排序树或是空树,或是满足如下性质的二叉树: (1).若其左子树非空,则左子树上所有结点的值均小于根结点的值 (2).若其右子树非空,则右子树上所有结点的值均大于等于根结点的值 (3).其左右子树本身又各是一棵二叉排序树 2.二叉排序树的性质 中序遍历非空的二叉排...原创 2020-08-17 17:29:10 · 301 阅读 · 0 评论 -
数据结构与算法--线性表的查找
一、查找的基本概念 1) 查找表: 查找表是由同一类型的数据元素(或记录)构成的集合 2) 由于集合中的数据元素之间存在着松散的关系,因此查找表是一种应用灵便的结构 3) 查找: 根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或(记录) // 关键字: 用来标识一个数据元素(或记录)的某个数据项的值 // 主关键字: 可唯一标识一个记录的关键字是主关键字(身份证号--唯一)...原创 2020-08-17 01:11:57 · 2004 阅读 · 0 评论 -
数据结构与算法--图的遍历及应用
一、图的遍历 图的遍历定义:从已给的连通图中某一顶点出发,沿着一些边访遍图中所有的顶点,且使每个顶点仅被访问一次 遍历实质:找每个顶点的邻接点的过程 图的特点:图中可能存在回路,且图的任一顶点都可能与其它顶点相通,在访问完某个顶点之后可能会沿着某些边又回到了之前的顶点 为避免重复访问: 解决思路:设置辅助数组visited[n],用来标记每个被访问过的顶点 * 初始状...原创 2020-08-16 20:31:54 · 1534 阅读 · 0 评论 -
数据结构与算法--图的定义及存储结构
一、图的定义和术语 1.图的定义 图: G=(V,E) V: 顶点(数据元素)的有穷非空集合 E: 边的有穷集合 1) 无向图: 每条边都是无方向的 2) 有向图:每条边都是有方向的 3) 完全图: 任意两个点都有一条边相连 4) 稀疏图:有很少边或弧的图(e<nlogn) ...原创 2020-08-12 04:28:19 · 727 阅读 · 0 评论 -
数据结构与算法--哈夫曼树及其应用
一、哈夫曼树的基本概念 1) 路径: 从树中一个结点到另一个结点之间的分支构成这两个结点间的路径 2) 结点的路径长度: 两结点间路径上的分支数 3) 树的路径长度:从树根到每一个结点的路径长度之和;记作TL 4)结点数目相同的二叉树中,完全二叉树是路径长度最短的二叉树 5) 权: 将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权 6) 结点的带权路径长度:从根...原创 2020-08-09 00:04:18 · 1556 阅读 · 0 评论 -
数据结构与算法--树和森林
一、树和森林定义 1) 树是n(n>=0)个结点的有限集;若n=0,称为空树 若n>0 (1) 有且仅有一个特定的称为根的结点 (2) 其余结点可分为m(m>=0)个互不相交的有限集T1,T2,T3,...Tm 2) 森林:是m(m>=0)棵互不相交的树的集合二、树的存储结构 1.双亲表示法 实现: 定义结构数组...原创 2020-08-07 23:01:46 · 2827 阅读 · 0 评论 -
数据结构与算法--遍历二叉树和线索二叉树
一、遍历二叉树 1) 遍历定义: 顺着某一条搜索路径巡访二叉树中的结点,使得每个结点均被访问一次,而且仅被访问一次(又称周游) 2) 访问: 可以是对结点作各种处理,如:输出节点的信息、修改结点的数据值等,但要求访问不破坏原来的数据结构 3) 遍历目的: 得到树中所有结点的一个线性排列 4) 遍历用途: 它是树结构插入、删除、修改、查找和排序运算的前提,是二叉树一切运算的基础和核心 5) ...原创 2020-08-07 03:31:40 · 373 阅读 · 0 评论 -
数据结构与算法--树和二叉树
一、树(非线性结构) 1.树的定义 树是n(n>=0)个结点的有限集 *若n=0,称为空树 *若n>0,则它满足如下两个条件: (1) 有且仅有一个特定的称为根的结点 (2) 其余结点可分为m(m>=0)个互不相交的有限集T1,T2,...Tm,其中每一个集合本身又是一棵...原创 2020-08-06 03:20:08 · 410 阅读 · 0 评论 -
数据结构与算法--串、数组和广义表
一、串 1.串的定义 1) 串: 零个或多个任意字符组成的有限序列 2) 子串:一个串中任意个连续字符组成的子序列(含空串)称为该串的子串 3) 真子串:真子串是指不包含自身的所有子串 4) 主串: 包含子串的串相应的称为主串 5) 字符位置: 字符在序列中的序号为该字符在串中的位置 6) 子串位置: 子串第一个字符在...原创 2020-08-05 03:43:29 · 466 阅读 · 0 评论 -
数据结构与算法--队列的表示及基本操作
一、队列的定义和特点 1) 队列是一种先进先出的线性表;在表一端插入(表尾),在另一端(表头)删除 2) 队列的逻辑结构:与线性表相同,仍为一对一关系 3) 队列的存储结构: 顺序存储或链式存储...原创 2020-08-01 03:28:59 · 580 阅读 · 0 评论 -
数据结构与算法--栈的表示及基本操作
一、栈的定义和特点 1) 栈是一个特殊的线性表,是限定仅在表尾(栈顶)进行插入和删除操作的线性表 2)栈又称为后进先出的线性表,简称LIFO结构 3) 表尾称为栈顶Top,表头称为栈底Base 4) 插入元素到栈顶,称为入栈;从栈顶删除最后一个元素的操作,称为出栈 5) 栈的逻辑结构: 与线性表相同,仍为一对一关系 6) 栈的存储结构:顺序存储或链式存储...原创 2020-07-31 04:33:54 · 1160 阅读 · 0 评论 -
数据结构与算法--双向链表及线性表应用
一、双向链表 1) 双向链表: 在单链表的每个结点里在增加一个指向其直接前驱的指针域 2) 双向循环链表: 让头结点的前驱指针指向链表的最后一个结点,让最后一个结点的后继指针指向头结点 3) 双向链表结构的对称性(设指针p指向某一结点): p->front->next = p = p->next->front; 4) 双向链表的结点类型定义:typed...原创 2020-07-30 01:57:42 · 393 阅读 · 0 评论 -
数据结构与算法--循环链表的表示及基本操作
一、循环链表 1) 循环链表:是一种头尾相接的链表(表中最后一个结点的指针域指向头结点,整个链表形成一个环) 2) 优点:从表中任一结点出发均可找到表中其他结点 3) 循环链表中没有NULL指针,当遍历链表时,终止条件是最后一个结点的指针域是否等于头指针 4) 尾指针表示单循环链表: 首元结点的存储位置: R->next->next; ...原创 2020-07-29 03:17:30 · 5116 阅读 · 0 评论 -
数据结构与算法--单链表的表示及基本操作
一、线性表的链式表示和实现 1.链式存储结构: 结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻 2.线性表的链式表又称为非顺序映像或链式映像 3.用一组物理位置任意的存储单元来存放线性表的数据元素 //这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的 4.单链表是由头指针唯一确定的,因此单链表可以用头指针的名字来命名 ...原创 2020-07-28 23:05:14 · 1709 阅读 · 0 评论 -
数据结构与算法--顺序表的表示及基本操作
一、线性表的定义和特点 1.线性表是具有相同特性的数据元素的一个有限序列 2.线性表由n(n>=0)个数据元素(结点)a1,a2,...an组成的有限序列 *其中数据元素的个数n定义为表的长度 *当n=0时称为空表 *将非空的线性表(n>0)记作:(a1,a2,...an) * 这里的数据元素ai(1<=i<=n)只是一个抽象的符号,其具...原创 2020-07-27 19:14:47 · 2384 阅读 · 0 评论 -
数据结构与算法--基本概念
一、数据结构的研究内容 1.通常用计算机解决一个问题的步骤: 具体问题抽象为数学模型-->设计算法-->编程、调试、运行 2.具体问题抽象为数学模型过程为: 分析问题-->提取操作对象-->找出操作对象之间的关系-->用数学语言描述 3.描述非数值计算问题的数学模型不是数学方程,而是诸如表、树、图之类的具有逻辑关系的数据 ...原创 2020-07-26 00:03:15 · 522 阅读 · 0 评论