![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 71
千疑千寻~
这个作者很懒,什么都没留下…
展开
-
【数据结构与算法】递归的相关介绍
一、递归的定义在定义一个过程或函数时,出现直接或者间接调用自己的成分,称之为递归。若直接调用自己,称之为直接递归。若间接调用自己,称之为间接递归。如下://直接递归 func(…){ … func(…)}//间接递归,通过调用别的函数间接调用自己func1(){ … func2(…)}func2(){ … func1(…)}1、尾递归求n!(n为正整数)的递归函数int fac(int n){ if (n == 0 || n == 1)原创 2022-03-29 11:24:24 · 2626 阅读 · 0 评论 -
【数据结构与算法】链队和环形队列的基本算本,以及为什么使用环形队列
一、什么是队列队列 (Queue) 是限定只能在表的一端进行插入,在表的另一端进行删除的线性表。**队列的特点:**先进先出(FIFO)把进行插入的一端称做队尾(rear)。进行删除的一端称做队首或队头(front)。向队列中插入新元素称为进队或入队,新元素进队后就成为新的队尾元素。从队列中删除元素称为出队或离队,元素出队后,其后继元素就成为队首元素。队列的应用:根据队列的“先进先出”的特征,可以使用队列解决如下问题:记录访问或操作的顺序。对“独占资源”的调度安排。如打印机,同一时间原创 2022-03-28 13:57:18 · 2182 阅读 · 0 评论 -
【数据结构与算法】链队和环形队列的基本运算 及其 源码
一、链队.h文件#include <iostream>using namespace std;typedef int DataType;//节点的结构struct QNode{ DataType data; QNode* next;};//队列的结构typedef struct{ QNode* front; QNode* rear;}LinkQueue;//初始化带头节点的链队列int InitQueue(LinkQueue &Q);//判原创 2022-03-26 19:38:15 · 1319 阅读 · 0 评论 -
【数据结构与算法】栈的基本运算(出栈、入栈、销毁栈等)及源码(顺序栈和链式栈)
一、顺序栈.h文件#include <iostream>using namespace std;#define STACKSIZE 100typedef int DataType;typedef struct{ DataType items[STACKSIZE]; int top;}SequenceStack;//初始化空顺序栈int InitStack(SequenceStack &S);//判顺序栈空int StackEmpty(SequenceS原创 2022-03-25 10:21:14 · 1634 阅读 · 0 评论 -
【数据结构与算法】栈的介绍及基本运算(出栈、入栈、销毁栈等)
一、栈的介绍栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。允许插入和删除运算的一端称作栈顶(top)。不允许插入和删除的另一端称作栈底(bottom)。在栈顶进行的插入操作称为入栈或进栈(push)在栈顶进行的删除操作称为出栈或退栈(pop)栈的特点:后进先出,即 LIFO(Last In First Out)如下图:顺序栈的数据类型静态分配:#define MaxSize 100#define int ElemType typedef struct{ Elem原创 2022-03-18 13:54:16 · 15248 阅读 · 1 评论 -
单链表的基本操作(初始化、插入、删除、查找、遍历、销毁等)及源码
.h文件#include <iostream>using namespace std;typedef char DataType;struct Node //Node为结点类型名{ DataType data; //data代表数据元素 struct Node *next; //next为指向下一结点的指针};//初始化单链表int InitList(Node * &H);//判断表空int ListEmpty(Node * H);//求单原创 2022-03-17 11:24:20 · 1643 阅读 · 0 评论 -
线性表的顺序存储的介绍 — 基本运算(销毁线性表、输出线性表、增删查等)和 静态分配和动态分配
一、什么是线性表?线性表是由n(n≥0)个属性相同的数据元素a1,a2…an组成的一个有限序列。可以表示为 A= (a1, a2, a3, … ai … an)二、线性表的特征:1、有且只有一个表头元素a1,它无前驱;2、有且只有一个表尾元素an,它无后继;3、表头元素与表尾元素外,其它所有元素有且只有一个前驱,也有且只有一个后继。4、线性表中结点的个数n称为线性表的长度。当n=0时,称为空表。线性表 A= (a1, a2, a3, … ai … an) ,以线性表A为例,a2的前驱是a1,原创 2022-03-11 14:47:02 · 2333 阅读 · 1 评论 -
【数据结构与算法】算法的空间复杂度和时间复杂度的计算
一、上什么是算法?1、算法就是求解问题的一系列步骤的集合。2、通常把具体存储结构上的操作实现步骤或过程称为算法。二、算法的五个重要特性有穷性: 对于任意一组合法的输入值,在执行有穷步骤之后一定能结束。确定性:每条指令必须有确切的含义,不能有二义性。可行性:算法中描述的操作都是用已经实现的基本运算组成。输入:可以有零个或多个输入。输出:一组与"输入"有确定关系的量值。有一个或多个输出,要有输出算法才有意义。三、算法的设计准则正确性:除了应该满足算法说明中写明的“功能”之外,应对各组典型的带原创 2022-03-09 20:16:25 · 1707 阅读 · 0 评论 -
数据结构的基本组成及概念,数据项,数据元素,数据对象,逻辑结构等(基础)
程序=数据结构+算法什么是数据结构?数据:是所有能够输入到计算机中,且能被计算机处理的符号的集合。结构:是指数据之间的关系。数据结构:就是将数据及其之间的关系有效地存储在计算机中并进行基本操作。算法:是对特定问题求解步骤的一种描述,就是解决问题的方法和策略。数据结构中的几个基本概念数据:数据是指所有能输入到计算机中的描述客观事物的符号,包括文本、声音、图像、符号等。数据项:数据项表示有独立含义的数据最小单位,也称域。若干个数据项构成一个数据元 素,数据项是不可分割原创 2022-03-08 19:28:35 · 5450 阅读 · 0 评论 -
线性表的链式存储:单链表的相关介绍(插入、删除、查找等)头节点和头指针的区别
一、链式存储用一组地址任意的存储单元(地址可以连续也可以不连续),依次存储线性表中的各数据元素。链式存储结构中的每个存储单元称为“结点”,结点包含一个数据域和一个指针域。数据元素之间的逻辑关系通过结点中的指针表示数据域存放数据元素信息;指针域存放后继结点地址。通常由第一个结点开始,逐一访问所有结点。具有n个数据元素的线性表对应的n个结点通过链接方式链接成一个链表,即为线性表的链式存储结构。二、单链表由于链表中每个链结点中仅包含一个指针域,故称这样的链表为线性链表或单链表。单链表的结点结构原创 2022-03-15 13:59:57 · 3015 阅读 · 0 评论