自定义博客皮肤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)
  • 收藏
  • 关注

原创 第二十三次-排序(一)

排序的基本概念排序:给定一组记录的集合{r1, r2,……, rn},其相应的关键码分别为{k1, k2, ……, kn},排序是将这些记录排列成顺序为{rs1,rs2, ……, rsn}的一个序列,使得相应的关键码满足ks1≤ks2≤……≤ksn(称为升序)或ks1≥ks2≥……≥ksn(称为降序)。正序:待排序序列中的记录已按关键码排好序。逆序(反序):待排序序列中记录的排列顺序与排...

2019-12-29 21:32:53 80

原创 第二十二次-查找(三)

散列表(hash)的查找技术散列函数的构造直接定址法除留余数法数字分析法平方取中法折叠法(分段叠加法)冲突处理方法开放定址法链地址法建立公共溢出区散列函数的构造直接定址法除留余数法数字分析法平方取中法折叠法(分段叠加法)冲突处理方法开放定址法链地址法建立公共溢出区冲突处理方法开放定址法链地址法建立公共溢出区散列函数——除留余数法一般情况下,选p为...

2019-12-29 21:29:00 134

原创 第二十一次-查找(二)

折半查找适用条件:Ø 线性表中的记录必须按关键码有序;Ø 必须采用顺序存储。基本思想:在有序表中(low, high,low<=high),取中间记录作为比较对象,若给定值与中间记录的关键码相等,则查找成功;若给定值小于中间记录的关键码,则在中间记录的左半区继续查找;若给定值大于中间记录的关键码,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成功,或所查找的区域...

2019-12-29 21:25:16 352

原创 第二十次-查找(一)

基本概念列表:由同一类型的数据元素组成的集合。关键码:数据元素中的某个数据项,可以标识列表中的一个或一组数据元素。键值:关键码的值。主关键码:可以唯一地标识一个记录的关键码。次关键码:不能唯一地标识一个记录的关键码。查找 :在具有相同类型的记录构成的集合中找出满足给定条件的记录。查找的结果 :若在查找集合中找到了与给定值相匹配的记录,则称查找成功;否则,称查找失败。静态查找 :不涉...

2019-12-29 21:18:54 112

原创 第十九次-图(五)

Prim算法——伪代码Void prime(MGraph G){ for(int i=1;i<G.vertexNu;i++){ lowcost[i]=G.arc[0][i]; adjvex[i]=0; } lowcost[0]=0; for(i=1;i<G.vertexNum;i+++){ k=MinEdge(lowc...

2019-12-02 21:59:16 141

原创 第十九次-图(四)

邻接表邻接表存储的基本思想:对于图的每个顶点vi,将所有邻接于vi的顶点链成一个单链表,称为顶点vi的边表(对于有向图则称为出边表)所有边表的头指针和存储顶点信息的一维数组构成了顶点表。定义邻接表的结点:struct ArcNode{ int adjvex; ArcNode *next;};template <class T>struc...

2019-12-02 21:55:05 102

原创 第十八次-图(三)

图的存储结构及实现邻接表有两种结点结构:顶点表结点和边表结点vertex:数据域,存放顶点信息。firstedge:指针域,指向边表中第一个结点。adjvex:邻接点域,边的终点在顶点表中的下标。next:指针域,指向边表中的下一个结点。定义邻接表的结点struct ArcNode{ int adjvex; ArcNode *next;};tem...

2019-12-01 21:37:57 150

原创 第十七次-图(二)

若无向图G=(V,E)中含7个顶点,则保证图G在任何情况下都是连通的,则需要的边数最少是( ) cA :6 B:15 C:16 D:21分析:要想保证在任何情况下都连通,其中6个顶点组成完全图。包含6个顶点的完全图中包含6*5/2=15个条边。第7个顶点和其他6个顶点之间有一条边,就能保证图是联通的。因此,...

2019-11-18 09:28:35 1014

原创 第十六次-图(一)

图的逻辑结构图的定义图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G=(V,E)其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。在线性表中,元素个数可以为零,称为空表;在树中,结点个数可以为零,称为空树;在图中,顶点个数不能为零,但可以没有边若顶点vi和vj之间的边没有方向,则称这条边为无向边,表示为(vi,vj)如果图的任意两个顶点之间的边都...

2019-11-13 23:44:38 203

原创 第十五次-树(二)

线索链表线索:将二叉链表中的空指针域指向前驱结点和后继结点的指针被称为线索;线索化:使二叉链表中结点的空链域存放其前驱或后继信息的过程称为线索化;线索二叉树:加上线索的二叉树称为线索二叉树线索二叉树的存储结构:线索链表结点结构:enum flag {Child, Thread}; template <class T>struct ThrNode{ T da...

2019-11-13 22:15:15 58

原创 第十一次-树(一)

树树的定义树:n(n≥0)个结点的有限集合。当n=0时,称为空树;任意一棵非空树满足以下条件:⑴ 有且仅有一个特定的称为根的结点;⑵ 当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,… ,Tm,其中每个集合又是一棵树,并称为这个根结点的子树。树的定义是采用递归方法**//重点**树的基本术语孩子、双亲:树中某结点子树的根结点称为这个结点的...

2019-11-12 17:08:15 94

原创 第八次-栈与队列(二)

表达式的组成:1.操作数(operand):操作数既可以是常数, 也可以是被说明为变量或常量;运算符(operator):运算符可以分为算术运算符、 关系运算符和逻辑运算符三类,不同的运算符有不同的优先级以及结合性1.界限符(delimiter) :基本界限符有左右括号和表达式结束符等。 例如:#(3+4)*5-2#,界限符的优先级相同(左括号和右括号的优先级相同, #的优先级也相...

2019-11-12 00:05:07 533

原创 第十次-多维数组

多维数组数组的定义:数组是由一组类型相同的数据元素构成的有序集合,每个元素受n(n≥1)个线性关系的约束,并称该数组为 n 维数组。特点:1,元素本身可以具有某种结构,属于同一数据类型;2,数组是一个具有固定格式和数量的数据集合。二维数组是数据元素为线性表的线性表。数组的基本操作:⑴ 存取:给定一组下标,读出对应的数组元素;⑵ 修改:给定一组下标,存储或修改与其相对应的数组元素。...

2019-11-11 23:54:30 182 1

原创 第九次-字符串(二)

模式匹配——KMP算法结论: i可以不回溯,模式向右滑动到的新比较起点k ,并且k 仅与模式串T有关!void Compute_Next(char t[], int next[]){ int j,k; next[0]=-1;j=1; while(t[j]!='\0') { k=next[j-1]; while((k!=-1)&&(t[k]!=t[j...

2019-11-11 23:48:09 83

原创 第八次-字符串(一)

字符串和多维数组字符串(1)串的逻辑结构串:零个或多个字符组成的有限序列。串长度:串中所包含的字符个数。空串:长度为0的串,记为:" “。非空串通常记为:S=” s1 s2 …… sn "其中:S是串名,双引号是定界符,双引号引起来的部分是串值 ,si(1≤i≤n)是一个任意字符。子串:串中任意个连续的字符组成的子序列。主串:包含子串的串。子串的位置:子串的第一个字符在主串中...

2019-11-11 23:39:57 248

原创 第六节-双链表

双链表结构特点:template struct DNode{T data;DNode *llink;DNode *rlink;};**设指针p指向双链表中某一结点,则有下式成立: p->llink->rlink = p = p->rlink->llink **建立空双链表:first->rlink=NULLfirst->llink=...

2019-11-10 03:01:22 212

原创 第五节-单链表(二)

单链表中按位置查找查找算法:1.工作指针P初始化,计数器初始化2.执行下列操作,直到p为空或指向第i个节点,工作指针后移,计数器增13.若p为空,则第i个元素不存在,抛出位置异常;否则查找成功,返回节点p的数据元素具体实现:template T LinkList::Get(int i) {Node *p; int j;p=first->next; j=1; //或p=f...

2019-11-10 02:46:46 186

原创 第四节-单链表(一)

指针变量的特点变量的三要素:名字,内存地址,值变量的左值,右值 左值指变量的内存地址右值:值在赋值表达式中,赋值号左边需要左值,右边需要右值;如a=a+100指针变量指针变量的右值本身又是一个左值。个人上课未理解的点:头指针:指向第一个结点的指针,链表的定义:struct node{Int data;//data 储存数据struct node *next;//next...

2019-11-10 02:18:54 111

原创 第三节-顺序表与链表的开头

线性表的逻辑结构线性表的定义是零个或多个具有相同类型的数据元素的有限序列。数据元素的个数定义为线性表的 长度 。长度等于零时称为空表,一个非空表通常记为    L = ( a 1 , a 2 ,……, a n )其中, a i *( 1 ≤ i ≤ n )*称为数据元素,下标 i 表示该元素在线性表中的位置或序号, 称元素 a i 位于表的第 i 个位置,或称 a i 是表中的第 i ...

2019-11-10 01:15:30 231

原创 第二节-模板(后续)

类模板成员函数的定义●类模板中的成员函数的定义,若放在类模板的定义之中,则与类的成员函数的定义方法相同;若在类模板之外定义,则成员函数的定义格式如下:template<模板形参表>返回值类型 类模板名<形参名表>::成员函数名(参数表){成员函数体}例题 :Bouble类型定义class Rectangle{private:int length,w...

2019-11-09 23:34:29 66

原创 第七次-栈与队列(一)

一.模板的概述1.模板是对具有相同特性的函数或类的再抽象,模板是一种参数化的多态性工具。2.所谓参数化多态性,是指将程序所处理的对象的类型参数化,使一段程序代码可以用于处理多种不同类型的对象。(如int,double等不同类型可以不一一规定)3.采用模板编程,可以为各种逻辑功能相同而数据类型不同的程序提供一种代码共享的机制,减少代码的重复几率,增加效率。二.模板的分类1.模板分为: ●...

2019-11-08 17:03:46 81

空空如也

空空如也

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

TA关注的人

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