数据结构
想七想八不如11408
一只积极进取的菜鸟
展开
-
【排序】更新中
3.稳定性:稳定 (值相同的元素在排序前和排序后相对位置不变)emm,简单说就是跟玩扑克牌一样,在原先排好序的基础上遍历插入。2.空间复杂度O(1) 空间复杂度上,,最好情况下是O(n) (也原数组已经排序好的情况下。,空间复杂度为(O(1))原创 2023-03-08 13:42:32 · 59 阅读 · 0 评论 -
【树】基本概念及简单代码学习
客观世界中许多事物存在层次关系,这种层次关系就是我们所说的树。分层次组织在管理上有更高的效率!数据管理的基本操作之一:查找如何实现有效率的查找?树(Tree)n个结点构成的有限集合。当n=0时,称为空树。任一棵非空树,它具备以下性质:二叉树就是度为2的一种树,每个节点的指针最多是2个。研究二叉树就能解决一般树的问题。二叉树的最主要操作---遍历;void PreOrderTravelsal(BinTree BT) //先序--根,左,右。原创 2023-02-21 23:36:01 · 186 阅读 · 0 评论 -
【线性结构】2.3 队列及其实现
队列Queue:具有一定操作约束的线性表。只能在一端插入,在另一端删除。数据插入:入队列AddQ数据删除:出队列DeleteQ先来先服务,先进先出。原创 2023-02-11 11:35:06 · 79 阅读 · 0 评论 -
【线性结构】2.2--堆栈
主要问题运算符号存在优先级定义理解:后缀表达式求值策略从左向右“扫描”,逐个处理运算符和运算符号。碰到运算数先记住碰到运算符号就把最近的两个运算数拿来做运算启示:需要有种存储方法,能顺序运算存储数,并在需要时“倒序”输出!即:先放进的后出,后放的先出。原创 2023-02-10 21:57:17 · 95 阅读 · 0 评论 -
【线性结构】--2.1线性表及其实现
int Last;List PtrL;L.Data[i]L.Last+1不要求物理上相邻,把逻辑上相邻的两个元素通过链连接在一起。List Next;List PtrL;思考:在一个链表中,我们只知道链表的头,如何查找第i个元素?如何知道链表的长度?这比顺序存储结构中要复杂的多。广义表(Generalized List):广义表是线性表的推广广义表中出现的问题:一个域可能是不能分解的单元,也可能是一个指针。处理:C语言提供了一种手段,联合Union。原创 2023-02-10 19:49:38 · 181 阅读 · 0 评论 -
【二分查找】C语言实现
中的位置,即数组下标(注意:元素从下标1开始存储)。找到则返回下标,否则返回一个特殊的失败标记。元素可以通过>、==、原创 2022-12-10 19:44:59 · 274 阅读 · 1 评论 -
【排序】基数排序 C语言实现
这里参考《数据结构与算法分析》,p41页。原创 2022-11-25 22:26:50 · 367 阅读 · 0 评论 -
反转链表(迭代,递归实现)
在到达基准情况之前,p->next以堆栈的方式存储,到达基准情况后先执行if语句,依次出栈执行递归语句下面的statement。这里主要需要理解递归;原创 2022-11-23 21:07:39 · 149 阅读 · 1 评论 -
打印链表,分析
同时需要知道一点,当链表正序输出时最好使用循环迭代,用递归的代价是很大的。如果把1,2换一下这个时候就会逆序输出。打印链表通常会有两种方法,迭代和递归。当逆序输出链表时,递归是很不错的选择。当正序输出链表时,循环迭代就可以了;这里我们学习使用递归打印链表。原创 2022-11-23 19:59:58 · 506 阅读 · 0 评论 -
堆栈链式存储实现
3.判断堆栈是否为空。原创 2022-11-10 22:43:19 · 319 阅读 · 0 评论 -
C语言堆栈的顺序存储实现
用一个数组实现两个堆栈时,使这两个栈分别从数组的两头开始生长;当两个栈指针相遇了,表示栈满。使数组只要有空间,入栈就可以成功。操作集:长度为MAXSIZE的堆栈s∈Stack,堆栈元素item∈ElementType。堆栈,是具有一定操作约束的线性表,只在一端(栈顶,Top)做插入,删除。栈的顺序存储结构通常由一个一维数组和一个记录栈顶元素位置的变量组成。数据对象集:一个有0个或多个元素的有穷线性表。生成空堆栈,其最大长度为MAXSIZE。堆栈的抽象数据类型描述。将元素item压入栈。原创 2022-11-10 18:40:23 · 555 阅读 · 0 评论 -
线性表的定义与操作
【代码】线性表的定义与操作。原创 2022-11-09 15:46:11 · 68 阅读 · 0 评论 -
广义表与多重链表
对于线性表,n个元素都是基本的单元素。广义表中,这些元素不仅可以是单元素也可以是另一个广义表。多重链表中结点的指针域会有多个(但包含两个指针域的链表不一定是多重链表,如双向链表。一个域有可能是不能分解的单元,有可能是一个指针。(结点的数据域:行坐标Row,列坐标Col,数值Value。我们采用一种典型的多重链表——十字链表,来存储稀疏矩阵。多重链表:链表中的结点可能同时隶属于多个链。为了区分不同的类型,再设一个标记。同一时间,只有一个成员是有效的。union的大小是其最大的成员。广义表是线性表的推广。原创 2022-11-09 09:59:59 · 272 阅读 · 0 评论 -
线性表的实现,两种方式
【代码】线性表的实现,两种方式。原创 2022-11-08 22:29:42 · 135 阅读 · 0 评论 -
线性表的链式储存实现
3)然后修改指针,插入结点(p之后插入新结点是s)2)再用指针s指向要被删除的结点(p的下一个结点)2)再找到链表的第i-1个结点,用p指向。1)先找到链表的第i-1个结点,用p指向。3)然后修改指针,删除s所指结点。4)最后释放s所指结点的空间。1)先构造一个新结点s。原创 2022-11-08 22:20:39 · 183 阅读 · 0 评论 -
线性表的顺序存储实现
数据结构的定义。原创 2022-11-08 17:40:39 · 99 阅读 · 0 评论 -
线性表及顺序存储简介
表起始位置称为表头,表结束位置称为表尾。表中元素个数称为 线性表的长度。线性表没有元素时,称为空表。类型可以是整型,实型,结构,统称为ElementType。一般数据结构中最常见的就是两种方法,【数组】【链表】“线性表”:由同类型数据元素构成有序序列的线性结构。2.有一类共性问题:有序线性序列的组织和管理。1.同一个问题可以有不同的表示(存储)方法。线性表存储方式有【顺序存储】及【链式存储】就把它归结为“线性表”的问题。原创 2022-11-08 16:03:46 · 109 阅读 · 0 评论 -
线性结构-线性表及其实现
线性结构是数据结构里面最基础,也是最简单的一种数据结构类型。其中典型的一种叫做“线性表”。下面举一个例子,看一下什么是线性表。如何表示这样一个多项式?先确定多项式的关键信息:多项式项数n,包括它的最大指数各项系数ai,及指数i。原创 2022-11-08 14:27:56 · 160 阅读 · 0 评论 -
最大子列和问题
在线处理法原创 2022-11-05 20:45:13 · 95 阅读 · 1 评论 -
巧化多项式
数据结构学习记录原创 2022-11-03 22:09:15 · 92 阅读 · 1 评论 -
记录学习,数据结构
记录学习原创 2022-11-03 21:46:00 · 143 阅读 · 0 评论