![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 65
谨慎的海绵
这个作者很懒,什么都没留下…
展开
-
数据结构_排序
排序 将数据表(a1,a2,……,an)调整为按关键字从小(大)到大(小)排列的过程。 几个术语—— 增排序 减排序 单关键字/多关键字 稳定排序: 排序过程中关键字相同的元素的相对次序不变。 不稳定排序: 排序过程中关键字相同的元素的相对次序发生变化。 内部排序:所有数据在内存 外部排序:部分数据在内存,部分数据在外存(涉及到内外存的交换) 插入排序 排序过程是插入 直接插入排序 将待排序表看作左右两部分,其中左边为有序区,右边为无序区,整个排序过程就是将右边无序区中的元素逐个插入到左边的有序区中,以转载 2021-07-15 22:28:13 · 122 阅读 · 1 评论 -
数据结构_查找
查找 概述 查找: ——在数据集(表)中找出一个特定元素(的位置)。 这一概念中涉及到以下几个相关的问题: (1)数据表:什么样数据表? 也就是数据表的组织形式?例如: 汉语字典、英语辞典; 一个城市的电话号码簿。 高考成绩表。 查找表: ——同类型的数据元素(记录)所构成的集合。 顺序表:数据元素构成一个序列。 树表:以树结构的形式组织。 散列表:以某种函数的方式来确定元素的地址,实现数据表的组织。 索引表:为元素建立索引,以提高查找的速度。 显然,查找的方法取决于数据表的组织形式。 例如:在汉语字典和英原创 2021-07-15 17:14:40 · 337 阅读 · 0 评论 -
数据结构_图
图 图的基本概念与运算 总的来说就是一堆结点,还有连接他们的边(边可以是单向的或双向的,边上可以有权重也可以没有),边是否有向决定是有向图还是无向图,边上是否有权重决定是否是网络。 路径与回路 连通图 完全图 树与有向树 图的运算 图的存储 邻接矩阵 从行看,该行上有1说明该行对应的结点能访问到1所在的列对应的结点 ,所以从列看的话就是能访问到该列的行。那么我们从两个角度出发都能表示所有的边关系,1.每个结点都能访问到那些结点2.每个点都能被那些结点访问。即只看行或只看列。 邻接表原创 2021-07-14 22:39:51 · 110 阅读 · 1 评论 -
数据结构_二叉树
二叉树 基本概念 树的定义 所以树一定有至少一个节点(没有空树的概念),但是二叉树可以没有节点。虽然这个点无关紧要,但还是提一下。 关系术语 层次术语 例题 首先我们假设这些点都是独立的那么明显有4x3+3x4+2x5+1x2=36个叶子,但是现在他是树,那么我们将这些独立得东西合并,显然,n个合并会减少n-1个叶子(因为合并只能替换叶子),所以36-(3+4+5+2-1)=23,所以叶子的个数为23 二叉树定义 二叉树性质 前两个很好理解,就不说了。 第三个:设度为一的节点数为n1所以叶子的个原创 2021-07-13 23:37:10 · 328 阅读 · 1 评论 -
数据结构_递归
递归 递归的定义 递归的简单例子 这是一个简单的例子,也表明了递归的一些特征,比如递归有出口,这里就是n==0,还有调用自己,调用自己给人的感觉是想再找数列an与an-1…等的关系,递归的的执行就像我们不断的把an展开直到他变成a0 ,a1什么的,但是不能这样简单的认为。 在看几个例子: 这两个例子就像我们不断地把调用自己的代码展开展到出口,从最初的从头到尾执行。 再看一个 递归原理 这说明递归式可以用栈来代替的 经典例子 找准an,an-1代表的意义 递归正确性的证明 就是数学归纳法原创 2021-07-11 20:10:57 · 52 阅读 · 2 评论 -
数据结构_线性表
线性表 线性表定义 顺序表 链表 串原创 2021-07-11 16:07:18 · 90 阅读 · 0 评论 -
数据结构_队列
队列定义 队列实现 循环队列 链队列 注意标红的地方 析构除外 Quene.h #pragma once #include"tool.h" #include<iostream> using namespace std; template <class T> class Quene { public: Error_Type serve(T &output); Error_Type get_Top(T &output);原创 2021-07-10 16:14:44 · 82 阅读 · 1 评论 -
数据结构_栈
栈的定义 这里有个思想,函数执行得怎么样了用返回值表示,真正要返回的东西放在参数列表里(用传入引用的方式实现返回) 栈的实现 Tool.h #pragma once enum Error_Type { Success,Overflow, Underflow }; enum Ret_Type { Str,Num,End }; Stack.h #pragma once #include"iostream" #include"tool.h"//存的是Error_Type using name原创 2021-07-10 14:04:46 · 86 阅读 · 0 评论 -
时间复杂度与空间复杂度
时间复杂度 看一下每个的例子 log N nlogN n^2 空间复杂度 几个算法 辗转相除法 具体过程:输入两个数,取出较大的一个记作m,小的记作n,然后取余得到r,将n赋给m,r赋给n,在做运算直到n为零 #pragma once #include<iostream> using namespace std; class ZXC {public: bool execute(int m, int n); }; //cpp文件 #include"zxc.h" bool ZXC原创 2021-03-12 22:35:30 · 106 阅读 · 0 评论