![](https://img-blog.csdnimg.cn/1e6436e19d2b4a53b3db396adfcea506.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 82
数据结构与算法
Dragon Fly
A blessing in disguice
展开
-
一、约束规划简介(Constraints Programming)
约束编程第一篇原创 2023-06-24 16:12:57 · 1527 阅读 · 0 评论 -
十二、排序
各种排序算法介绍,以及时间,空间复杂度分析原创 2022-07-02 22:46:26 · 367 阅读 · 0 评论 -
十一、查找
文章目录1、查找的基本概念2、线性表的查找2.1 顺序查找2.2 二分查找1、查找的基本概念\qquad 查找表是由同一类型的数据元素或者记录构成的集合。由于集合中的数据元素之间存在着松散的关系,因此查找表是一种应用灵便的结构。\qquad 查找: 根据给定的值,在查找表中确定一个其关键字等于给定值的数据元素或者记录。\qquad 关键字: 用来标识一个数据元素或者记录的某个数据项的值\qquad\qquad主关键字: 可以唯一地标识一个记录的关键字是主关键字;\qquad\qquad次关键字:原创 2022-06-18 22:08:19 · 308 阅读 · 0 评论 -
十、图(基本知识,存储结构,遍历方法)
文章目录1、图的定义和基本术语1、图的定义和基本术语\qquad 图G=(V,E)G=(V,E)G=(V,E),VVV顶点(数据元素)的有穷非空集合;EEE边的有穷集合。\qquad 无向图:每条边都是无方向的;有向图:每条边都是有方向的。\qquad 完全图:图中任意两个顶点都有一条边相连。\qquad 对于有n个顶点的无向完全图,要有n(n−1)/2n(n-1)/2n(n−1)/2条边;对于有n个顶点的有向完全图,要有n(n−1)n(n-1)n(n−1)条边。\qquad 稀疏图:有很少边或原创 2022-05-13 12:06:41 · 380 阅读 · 0 评论 -
九、树和二叉树
1、树和二叉树的定义\qquad树型结构是一种非线性的数据结构,节点之间是一种一对多的关系,节点之间有分枝,节点之间具有层次关系。\qquad树(Tree) 的定义:树是n(n≥0n\geq0n≥0)个结点的有限集合。若n=0n=0n=0,则称之为空树;若n>0n>0n>0,并且有且仅有一个特定的节点,称之为根(Root) 结点;其余结点可以分为m(m≥0)(m\geq0)(m≥0)个互不相交的有限集T1,T2,...,TmT_1,T_2,...,T_mT1,T2,...,Tm原创 2022-04-30 21:40:04 · 306 阅读 · 0 评论 -
八、串,数组和广义表
文章目录1、串1.1 串的类型定义,存储结构及运算1.1.1 串的顺序存储结构1、串KaTeX parse error: Undefined control sequence: \qquadd at position 1: \̲q̲q̲u̲a̲d̲d̲串(string)是零个或者多个任意字符组成的有限序列。\qquad子串:一个串中任意个连续字符组成的子序列(含空串)称为该串的子串。\qquad真子串:指不包含自身的所有子串。\qquad主串:包含子串的串相应地称为主串。\qquad字符位置:原创 2022-03-19 21:08:46 · 1271 阅读 · 0 评论 -
七、栈和队列
文章目录1、栈和队列的定义和特点1、栈和队列的定义和特点\qquad栈和队列是两种常用的,重要的数据结构,栈和队列是限定插入和删除只能在表的“端点”进行的特殊的线性表。\qquad栈的特点是先进后出,由于栈具有这个特点,使得栈称为程序设计中的有用工具,如果问题求解的过程具有先进后出的特点,则求解的算法中必然需要利用到栈。如下述问题的算法设计,都需要用到栈:数值转换,表达式求解,括号匹配的检验,八皇后问题,行编辑程序,函数调用,迷宫求解,递归调用的实现。Insert(S,n+1,e);//栈只能插入表原创 2022-02-24 14:53:00 · 258 阅读 · 0 评论 -
六、线性表的应用/案例分析和实现
文章目录1、线性表的两个应用1.1 线性表的合并1.2 有序表的合并1、线性表的两个应用1.1 线性表的合并KaTeX parse error: Undefined control sequence: \qquda at position 1: \̲q̲q̲u̲d̲a̲将两个无序的线性表La和Lb合并成一个新的线性表,要求新的线性表中不能出现重复的元素。算法步骤如下所示:1.2 有序表的合并\qquad将两个数据元素已经排好序的非递减有序线性表La和Lb合并为一个新的线性表,新的线性表中的元素不原创 2021-12-19 10:03:51 · 1170 阅读 · 0 评论 -
五、线性表的链式表示和实现
文章目录1、基本概念2、带头结点的单向链表THE END1、基本概念链式存储结构\qquad节点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻;\qquad线性表的链式表示又称为非顺序映像或者链式映像;\qquad用一组物理位置任意的存储单元来存放线性表的数据元素;\qquad这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上;\qquad链表中的元素的逻辑次序和物理次序不一定相同。\qquad单向链表是由头指针唯一确定,因此单链表可以用头指原创 2021-11-27 23:02:23 · 986 阅读 · 0 评论 -
四、线性表的定义、特点和类型定义及C++模板实现
文章目录1、线性表定义2、线性表的逻辑特征3、线性表的抽象数据类型4、线性表的顺序表示和实现5、线性表的优缺点THE END1、线性表定义\qquad线性表是具有相同特性的数据元素的一个有限序列。\qquad线性表n(n≥0)n(n \geq 0)n(n≥0)个数据元素(结点)a1,a2,...,ana_1, a_2, ... , a_na1,a2,...,an组成的有限序列。\qquad其中数据元素的个数nnn定义为表的长度;\qquad当n==0n==0n==0时,称为空表;\qqu原创 2021-11-19 11:05:54 · 908 阅读 · 0 评论 -
三、算法与算法分析
文章目录1、算法定义2、算法特性2.1 算法设计的要求2.2 算法时间效率的度量2.2.1 分析算法时间复杂度的基本方法2.2.2 复杂算法的时间复杂度2.2.3 算法时间效率的比较2.3 算法空间效率的度量THE END1、算法定义\qquad对特定问题求解方法和步骤的一种描述,它是指令的有限序列。其中,每个指令表示一个或者多个操作。\qquad算法的描述可以使用自然语言,英语、中文等;\qquad可以使用流程图,传统流程图,NS流程图等。\qquad可以使用伪代码,类语言,i.e., 类C原创 2021-11-06 16:48:58 · 610 阅读 · 0 评论 -
二、用C++实现复数结构
文章目录1、定义复数2、类外定义函数3、主调函数THE END1、定义复数#include <iostream>using namespace std;typedef class Complex{ float realPart; float imagPart;public: Complex() {} Complex(float real, float imag) { realPart = real; imagPart = imag; } float Get原创 2021-11-05 21:31:00 · 1743 阅读 · 0 评论 -
一、基本概念和术语
文章目录1、基本概念1.1 数据-data1.2 数据元素-data element1.3 数据项1.4 数据对象-data object2、数据结构-data structure2.1 逻辑结构的种类2.2 存储结构的种类2.2.1 顺序存储结构2.2.2 链式存储结构2.2.3 索引存储结构2.2.4 散列存储结构3、数据类型和抽象数据类型THE END1、基本概念1.1 数据-data\qquad数据是能输入计算机且能被计算机处理的各种符号的集合。数据是信息的载体,是对客观事物符号化的表示,数据原创 2021-11-04 21:04:56 · 132 阅读 · 0 评论 -
青蛙跳台阶进阶版证明和代码
文章目录1、背景2、简单的数学归纳法证明3、求解代码THE END1、背景\qquad最近在看《剑指offer(第二版)》时,Fibonacci数列一节中提到了青蛙跳台阶的进阶版,问题描述为:一只青蛙一次可以跳上1级台阶,2级台阶…,也可以跳上n级台阶,问青蛙跳上n级台阶共有多少中跳法?书中提到了用数学归纳法可以证明跳的方法有f(n)=2n−1f(n)=2^{n-1}f(n)=2n−1种,本人杠精非要运用高中知识给其证明一下子,然后再给出求解代码。2、简单的数学归纳法证明\qquad其实这东西证明很原创 2021-09-25 16:12:08 · 2648 阅读 · 0 评论 -
[转载]红黑树细致解析好文
下面一个大佬写的红黑树细致分析,图文并茂,转载方便后续查看。转载链接:https://www.jianshu.com/p/e136ec79235c转载 2021-09-11 11:31:28 · 64 阅读 · 0 评论 -
C语言实现各种排序查找
/* Note:Your choice is C IDE */#include "stdio.h"#include"stdlib.h"#define MAX 10void SequenceSearch(int *fp,int Length);void Search(int *fp,int length);void Sort(int *fp,int length);/*注意: 1、数组名x,*(x+i)就是x[i]哦*/ /*========================转载 2021-08-16 09:39:52 · 618 阅读 · 0 评论