自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 数据结构——队列

1.队列的定义​ 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列储存的图像表示:(图片来源于网络,侵删)2、队列的基本运算​ 1)初始化队列:Init_Queue(q) ,初始条件:队q 不存在。操作结果:构造了一个空队;​ 2)入队操作: In_Queue(q,x),初始条件: 队q 存在。操作结果: 对已存在的队列q,插

2021-09-28 12:49:01 509

原创 数据结构——树的层序遍历

二叉树遍历的核心问题:二维结构的线性队列实现队列实现的原理具体实现步骤代码实现void LeverOrderTraversal(BinTree BT) { Queue Q; BinTree T; if (!BT) //若是空树,直接返回 return; Q = CreatQueue(MAXSIZE); //创建并初始化队列Q AddQ(Q, BT); while(!IsEmptyQ(Q)) { T = DeleteQ(Q); cout &

2021-09-19 19:15:01 185

原创 数据结构——树(下)

1、二叉树的递归遍历1、先序遍历图示为代码实现为void PreOrderTraversal(BinTree BT){ if (BT){ cout << BT->Data; PreOrderTraversal(BT->left); PreOrderTraversal(BT->right); }2、中序遍历图示为代码实现为void InOrderTraversal(BinTree BT){ if (BT){ InOrderTrave

2021-09-18 17:53:13 121

原创 数据结构——树(中)

1、二叉树的定义​ 二叉树是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树2、二叉树的特殊类型1、满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树2、完全二叉树:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1到n的结点一一对应时,称为完全二叉树完

2021-09-17 12:16:08 434

原创 数据结构——树(上)

1、树的定义什么是树?长这样?(图片来自网络)不不不,树是一种数据结构,树是包含 n(n>=0) 个节点,当 n=0 时,称为空树,非空树中(n-1)条边的有穷集,在非空树中:每个元素称为节点有一个特定的节点被称为根节点或树根除根节点之外的其余数据元素被分为m(m>=0)个=个互不相交的集合,其中每一个集合身也是一棵树,被称作原树的子树树也可以这样定义:​ 树是由根节点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的节点,所定义

2021-09-16 19:21:15 85

原创 数据结构——二分查找

1、二分查找的定义​ 二分查找也称折半查找,它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列​ 二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x算法要求:​ 1.必须采用顺序存储结构​ 2.必须按关键字大小有序排列二分查找的图示为:2、二分查

2021-09-15 12:32:39 615

原创 数据结构——哨兵

1、哨兵的定义哨兵,是用来简化边界条件的一个参数,可以减少循环中的判断,使代码更加高效在链表中,哨兵可以作为一个头节点(称为哨兵节点),为了操作的方便而引入简单来说,哨兵是在循环或迭代算法中用来标志终止条件的值2、哨兵的代码实现int SequentialSearch(List Tb1, ElemType K){ //在Elem[1]~Elem[n]中查找关键字为K的数据元素 int i; Tb1->Elem[0] = K; //使其第一项为K,作为哨兵 for(

2021-09-14 20:13:54 2761

原创 数据结构——多项式的加法运算

多项式的加法运算一般用单链表来实现多项式加法运算图示:基本算法思路:多项式的具体结构类型: #include <iostream>#define MAXSIZE 100 //定义最大元素个数 #define ElemType int //定义数据类型 #define ERROR 0#define TRUE 1 #define OVERFLOW -1using namespace std;typedef struct PloyNode *PN;struct P

2021-09-14 15:03:14 825

原创 数据结构——栈

1、堆栈的定义:​ 堆栈就是只能在一端插入和删除数据的链表,这个端就叫做栈顶(top),最后一个添加的数据第一个被删除。因此,这也叫后进先出(LAST IN FIRST OUT)链表或是先进后出链表(FIRST IN LAST OUT)。​ 堆和栈又有不同:​ 堆:顺序随意​ 栈:后进先出(Last-In/First-Out)堆栈的图像表示:(图片来自百度:https://baike.baidu.com/pic/%E6%A0%88/12808149/0/06493638860a850c

2021-09-12 00:42:34 1162

原创 数据结构——线性表

线性表——最基础的数据结构1、什么是线性表?​ 在学习线性表之前,我们首先需要了解线性表是什么​ 线性表是最基本、最简单、也是最常用的一种数据结构。线性表*(linear list)*是数据结构中的一种,一个线性表是n个具有相同特性的数据元素的有限序列。​ 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据元素的尾

2021-09-11 14:33:47 427

原创 关于string类型变量的初始化方式

string类型的四(五)种初始化方式以及链接方式初始化方式1、小括号初始化string s("Hello World");输出:Hello World2、等号初始化这种其实是分两个步骤,第一个步骤是定义一个字符串变量,第二个步骤是对变量进行赋值string s = "Hello World";输出:Hello Worldc3、单字符初始化string s(10,'a');输出:aaaaaaaaaa4、拷贝初始化string s1, s2;s2 = "Hel

2021-09-10 09:36:14 5132 1

原创 MATLAB 学习指南

MATLAB新手小白入门——一天学会MATLAB基础操作,必看!一、变量命名1、清空环境变量及命令clear all: 清空Workspace中的所有变量clc: 清除Command Window中的所有命令2、变量命令规则1、变量命名区分大小写A = 22a = 33//这两个是不一样的变量2、变量命名不超过63位ABCDEFGHIGKLMNOPQRSTUVWXYZ123456ABCDEFGHIGKLMNOPQRSTUVWXYZ123456 = 6663、变量名以字母开头,可以由字

2021-09-08 21:04:22 1518

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除