自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 问答 (2)
  • 收藏
  • 关注

原创 数据结构与算法(17)

排序:排序是按关键字的非递减或非递增顺序对一组记录重新进行排列的操作,使记录成为一个按关键字有序的序列。排序的稳定性当排序记录中的关键字Ki(i=1,2,…,n)都不相同时,则任何一个记录的无序序列经排序后得到的结果唯一;反之,当待排序的序列中存在两个或两个以上关键字相等的记录时,则排序所得的结果不唯一。假设Ki=Kj(1≤i≤n,1≤j≤n,i+j).且在排序前的序列中Ri领先于Rj(即i<j)。若在排序后的序列中Ri仍领先于Rj,则称所用的排序方法是稳定的;反之,若可能使排序后的序列中Rj领

2022-05-13 21:22:18 274

原创 数据结构与算法(16)

查找查找的基本概念1.查找表查找表是由同一类型的数据元素(或记录)构成的集合。由于“集合”中的数据元素之间存在着完全松散的关系,因此查找表是一种非常灵便的数据结构,可以利用其他的数据结构来实现,比如本章将要介绍的线性表、树表及散列表等。2.关键字关键字是数据元素(或记录)中某个数据项的值,用它可以标识一个数据元素(或记录)。若此关键字可以唯一地标识一个记录,则称此关键字为主关键字(对不同的记录,其主关键字均不同)。反之,称用以识别若干记录的关键字为次关键字。当数据元素只有一个数据项时,其关

2022-05-08 16:48:19 1439

原创 数据结构与算法(15)

图的运用1.最小生成树最小生成树其实是最小权重生成树的简称。一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。最小生成树可以用克鲁斯卡尔算法或普里姆算法求出。最小生成树性质:设G=(V,E)是一个连通网络,U是顶点集V的一个非空真子集。若(u,v)是G中一条“一个端点在U中(例如:u∈U),另一个端点不在U中的边(例如:v∈V-U),且(u,v)具有最小权值,则一定存在G的一棵最小生成树包括此边(u,v)。普里姆算法算法步骤:

2022-04-30 16:49:12 683

原创 数据结构与算法(14)

1、图的定义图(Graph)G由两个集合V和E组成,记为G=(V,E),其中V是顶点的有穷非空集合,E是V中顶点偶对的有穷集合,这些顶点偶对称为边。V(G)和E(G)通常分别表示图G的顶点集合和边集合,E(G)可以为空集。若E(G)为空,则图G只有顶点而没有边。对于图G,若边集E(G)为有向边的集合,则称该图为有向图;若边集E(G)为无向边的集合,则称该图为无向图。在有向图中,顶点对<x,y>是有序的,它称为从顶点x到顶点y的一条有向边。因此,<x,y>与<y,x&gt

2022-04-23 16:34:44 1778

原创 数据结构与算法(13)

1、树和森林树的储存结构:1)双亲表示法这种表示方法中,以一组连续的存储单元存储树的节点,每个节点除了数据域data外,还附设一个parent域用以指示其双亲节点的位置。这种存储结构利用了每个节点(除根以外)只有唯一的双亲的性质。在这种存储结构下,求节点的双亲十分方便,求树的根也很容易,但求节点的孩子时需要遍历整个结构。2)孩子表示法由于树中每个节点可能有多棵子树,则可用多重链表,即每个节点有多个指针域,其中每个指针指向一棵子树的根节点,把每个节点的孩子节点排列起来,看成一个线性表,且

2022-04-17 16:00:17 748

原创 数据结构与算法(12)

1、特殊二叉树1)斜树所有节点都只有左子树的二叉树叫做左子树。所有节点都只有右子树的二叉树叫做右子树。这两者统称为斜树。2)满二叉树

2022-04-10 17:47:02 1113

原创 数据结构与算法(11)

1、树的定义树(tree)是n(n>=0)个节点的有限集,它或为空树(n=0),或为非空树。对于非空树T有以下性质: 1、有且仅有一个称之为根的节点2、除根节点以外的其余结点可分为m(m>0)个互不相交的有限集T1,T2,T3···,Tm,其中,每个集合本身又是一棵树,并且称为根的子树。树的结构定义是一个递归的定义,即在书店定义中又用到树的定义。...

2022-04-03 16:53:22 712

原创 数据结构与算法(10)

1、数组的类型定义数组是由类型相同的数据元素构成的有序集合,每个元素称为数组元素,每个元素受n(n>=1)个线性关系的约束,每个元素在n个线性关系中的序号i1,i2,···,in称为该元素的下标,可以通过下标访问该数据元素。因为数组中每个元素处于n(n>=1)个关系中,故称该数组为n维数组。数组可以看成线性表的推广,其特点是结果中的元素本身可以是具有某种结构的数据,但属于同i数据类型。一维数组可以看成一个线性表,二维数组可以看成数据元素是线性表的线性表。同理,一个n维数组类型可以定义

2022-03-25 17:26:41 4205

原创 数据结构与算法(9)

串的模式匹配算法子串的定位运算通常称为串的模式匹配或串匹配。设有两个字符串S和T,设S为主串,也称正文串;设T为子串,也称为模式。在主串S中查找与模式T相匹配的子串,如果匹配成功,确定相匹配的子串中的第一个字符在主串中出现的位置。1、BF算法最简单直观的模式匹配算法是BF(Brute-Force)算法。模式匹配不一定是从主串的第一个位置开始,可以指定主串中查找的起始位置pos。如果采用字符串顺序储存结构,可以写出不依赖与其他串操作的匹配算法。算法步骤:1.分别利用计数指针i和j指

2022-03-18 17:39:57 1306

原创 数据结构与算法(8)

1、串的定义串是由零个或多个字符组成的有限序列,又叫字符串。一般记为s="a1a2a3···an"(n>0),其中,s是串的名称,用双引号括起来的字符序列是串的值,引号不属于串的内容。ai可以是字母、数字或其他字符,i就是该字符在串中的位置。零个字符的串称为空串,它的长度为零,可以直接用双引号""表示。空格串,是只包含空格的串,它与空串不同,空格串是有内容有长度的,而且可以不止包含一个空格。子串:串中任意个数的连续字符组成的子序列(包括空串)称为该串的子串,相应的含子串的串称为主串。

2022-03-12 21:06:37 1023

原创 数据结构与算法(7)

1、队列的定义队列(queue)是只允许在一端精选插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为对头。2、队列的抽象数据结构同样是线性表,队列也有类似线性表的各种操作,不同的就是插入数据只能在队尾进行,删除数据只能在队头进行。ADT 队列(Queue)Data 同线性表。元素具有相同的类型,相邻元素具有前驱和后继关系。Operation Initq

2022-03-04 21:30:02 99

原创 数据结构与算法(6)

栈的定义栈是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。栈是一个线性表,栈具有线性关系,即前驱后继关系。只不过是一种特殊的线性表。定义中说在 表尾进行插入和删除操作,这里表尾是只栈顶而不是栈底。栈的特殊之处就在于限制了这个线性表的插入和删除位置,他始终在栈顶进行。这也使得栈底是固定的,最先进栈的只能在栈底。栈

2022-02-26 17:28:34 1647

原创 数据结构与算法(5)

1、循环链表对于单链表而言,由于每个节点只储存了向后的指针,到了尾标志就结束了向后链的操作,这样链表中的结点就无法找回它的前驱结点。我们将单链表中的终端结点的指针由空指针改为头节点,就可以是整个链表变成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表(circular linked list)循环链表可以解决一个在单链表中难以实现的问题,那就是如何从链表中的任意一个结点出发访问到链表的全部结点。为了使空链表与为非空链表处理一致,还是首先设置一个头节点,但是并不是所有循环链表都需要头节

2022-02-20 20:29:33 337

原创 数据结构与算法(4)

1.线性表的链式储存结构一、线性表链式储存结构定义线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。这就意味着,这些数据元素可以存在内存未被占用的任意位置。以前在顺序结构中,每个数据元素只需要存储数据元素信息就可以了。现在链式结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址。因此,为了表示每个数据元素Ai与其直接后继数据元素Ai+1之间的逻辑关系,对数据元素Ai来说,除了存储其本身的信息之外,还需存储一个指示其直

2022-02-11 19:05:53 450

原创 数据结构与算法(3)

1.线性表的定义线性表是零个或多个数据元素的有限序列。元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后续,其他每个元素都只有一个前驱和后续。线性表的元素个数是有限的。若将线性表记为(A1,···,Ai-1)...

2022-01-29 00:06:40 1247

原创 数据结构与算法(2)

1.算法的定义算法是解决特定问题求解步骤的描述,在计算机中表现为质量的有限序列,并且每条指令表示一个或多个操作。2.算法的特性算法具有五个基本特性:输入、输出、有穷性、确定性、可行性。1)输入输出算法具有零个或多个输入,并至少具有一个或多个输出。输出可以是打印输出,或是返回一个或多个值。2)有穷性有穷性指算法在执行有限的步骤之后,会自动结束而不会出现无限循环,并且每一个步骤会在可接受的的时间内完成。3)确定性算法的每一个步骤都具有确定的含义,不会出现二义性。算法在一定条件

2022-01-23 10:34:28 1240 1

原创 数据结构与算法(1)

1.什么是数据结构?数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。数据结构是计算机中储存、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法。所以程序设计的实质是对所确定的问题选择一种较好的结构,加上设计一种较好的算法。2.基本概念1)数据数据是描述客观事实的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号合集。数据不仅包括整型、实型等数值类型,还包括字符及声音、图像、视

2022-01-16 17:55:47 358

原创 C++大作业 新生信息管理系统

首先运用面向对象的思想和方法,定义一个学生类。该类中有数据成员学生姓名,性别,专业,出生日期,家庭地址,英语入学成绩。//学生类 class Student { public: void stu_Name(string Name) { this->Name=Name; } void stu_Sex(string Sex) { this->Sex=Sex; } void stu_Major(string Major) { this->Majo

2022-01-02 20:19:42 3397 3

原创 c++类和对象例题(判断点与圆的位置关系)

目录1.问题分析2.例图3.代码实现1.问题分析如果要判断点与圆的关系,首先需要创建一个圆类和一个点类。圆类中要包含数据成员:半径和数据成员圆心,点类中要包含数据成员:点的x坐标和y坐标。2.例图如图,建立了一个圆心为(10,0),半径为10的圆,和一个坐标为(10,10)的点p,并判断点p与圆心的关系。3.代码实现先创建一个点类,并用成员函数实现设置和获取点的坐标class Point { public: //设置x,y void set_X.

2021-12-13 21:22:40 1723

原创 C++ 使用类实现加减法

首先定义一个抽象类,里面有一个纯虚函数用来实现加减法功能。class abstractCalculator { public: virtual int getResult()=0; void setValue1(int v) { value1=v; } void setValue2(int v) { value2=v; } protected: int value1; int value2;};之后定义一个加法类和一个减法类,都公有继承上面的抽象计算机

2021-12-11 17:50:20 4125 1

原创 C语言学生信息管理系统

C语言学生信息管理系统此系统主要通过链表实现学生信息的增删查改。目录1.定义结构体2.新增学生信息3.查找学生信息(1)打印所有学生信息(2)按照姓名查找学生(3)按照性别查找(4)按照学号查找4.添加新的学生信息5.按照学生成绩排序6.修改学生信息(1)打印出修改前此学生的信息(2)修改姓名(3)修改学号(4)修改全部信息7.删除学生信息8.保存学生信息9.主函数10.演示1.定义结构体定义一个结构体,里面..

2021-12-04 21:30:09 5750 4

空空如也

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

TA关注的人

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