自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kmp算法的实现及心得体会

说实话,学习了这么长时间的数据结构,对于算法的实现能力好像并不强,尤其是一些大家的算法,例如:kmp算法,普利姆算法,克鲁斯卡尔算法,狄克斯特拉算法等等,说实话我认为知原理是远远不够的,因为只知其原理说明对一个事物的看法只是在一个浅层次里,只有看过了,写过了,调试过了,才算是真正的了解(并不是掌握),真正的掌握是对于前辈们的算法非常熟悉后,能后自己写出更加简洁,在时间空间复杂度上更进一步的算法。

2015-11-23 21:09:31 1384 1

原创 字符串的排列

题目要求,s1字符串的组合是s2字符串的子串也就意味着,s1是不按照顺序,只要在s2中存在即可满足题意。也就等同于s1与s2的某个区间的字符串的字符种类个数都相同。所以通过vector可以直接对上述两个进行比较。class Solution {public: bool checkInclusion(string s1, string s2) { int s1len = s1.length(); int s2len = s2.length(); vector

2021-11-21 17:36:01 3412

原创 无重复的最长字串

a=abcabcbb,则a的无重复最长字串是abc,长度为3解题思路:无重复最长子串一旦出现重复的字符,起点一定会变为上一个出现的重复字符的后一个字符。第一种 为了方便判断是否有重复字符的出现,选用set作为去重的数据结构。1.从第一个字符开始遍历,如果set中不存在重复的字符,则继续向后遍历,并把字符放入set中。2.当出现重复字符的时候,(此时指针指向的值是重复的值得前一个,因为计算的是不重复的大小),一旦出现重复的值,就把前面的字符删除,直至set中不重复。3.得出最大长度。

2021-11-21 17:31:44 4295

原创 c++求余的用处

求余符号常常用于数组的数值重新定位的问题。求余符号会把数组穿成一个环状的结构。例如0%10=0 ;1%10=1;如果将一个值向右平移两个位置则,(9+2)%10=1,则会在1的位置上出现。

2021-11-15 21:49:45 1018

原创 二分查找的一些细节-参考自leetcode278

1.mid溢出问题给定的low和high值时满足32位要求的,但是当计算mid的时候 mid = (low+high)/2中的low+high时可能溢出的。实际上在计算mid的时候很多人都使用了如下的计算方法:mid = low+(high-low)/2; 推导过程是这样的:(low+high)/2=(low+low+high-low)/2=(2*low+high-low)/2 = low+(high-low)/2。通过high-low避免了计算过程中出现溢出的情况。2.二分查找的区

2021-11-14 19:42:04 308

原创 leetcode 704二分查找

二分查找算法思想:每一次都去查找数组中中间的数值,low,high如果mid==target,则说明值已经找到,返回数组下标即可。如果mid>target,则说明target在mid的左边,high=mid-1。如果mid<target,则说明target在mid的右边,low=mid+1。在low<=high的情况下不断循环,当low>high时,说明数组队列的搜索范围已经被缩小到1,并且找不到target,算法结束,返回-1。class Soluti

2021-11-14 16:57:51 3957

原创 2021-11-13 leetcode 整数反转

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-231 <= x <= 231 - 1解题思路...

2021-11-13 17:49:42 1061

原创 0 The New Stage - Algorithm to the prioject

  大概已经两年已经没有写博客了,大学四年对于工程类的东西并不感兴趣,只是喜欢通过c、c++来写算法,当然自己的水平也没那么高,也就是自己实现个链表,二叉树、图的算法(prim、kruskal、dijkstra、spfa...),难得算法也就是dp(其实也不是很难),大学的时候太过于注重算法,导致技术没有跟上,现在会后看感觉自己太过于偏激了。所以自己现在也转变了一下思路,多多学习一下技术,也让自己...

2018-12-27 15:54:30 144

原创 ARM微处理器中支持字节、半字、字三种数据类型,地址的低两位为0是啥意思?

1、字对齐数据,也就是说每个数据都是用字(32位)来表示的,而ARM中的存储单元都是以字节为单位,那么要索引一个数据,需要连续的4个字节才行,比如,0x0000_0000~0x0000_0003这四个单元存储一个数据,紧接着0x0000_0004~0x0000_0007这四个单元存储第二个数据,那么依此类推,每个数据的存储起始地址为:0x0000_00000x0000_0004

2016-09-06 18:34:33 5527

原创 1008 N的阶乘 mod P

输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)例如:n = 10, P = 11,10! = 36288003628800 % 11 = 10Input两个数N,P,中间用空格隔开。(N Output输出N! mod P的结果。Input示例10 11Output示例10解法: 

2016-09-05 20:29:16 908

原创 数据结构课程设计代码--电子投票系统

注:本文章虽然没有什么很有难度的东西,但是是本身亲自手敲的第一个具有完整功能的增删改查的系统(不带数据库),转载时请注明,如果看到本文章有不错的地方想自己用,请稍作更改,谢谢。(1)头文件:/************************************************************ 版权所有 (C)2015, LiuQiang。** 文件名称: ...

2015-12-25 13:33:29 3489 3

原创 数据结构期末总结(对翻转课堂的感受)

大二上学期的课程即将结束,伴随我们一学期的翻转课堂也将要告一段落,下面说一下我对数据结构的体会以及对翻转课堂的感受。

2015-12-17 13:20:19 1915 1

原创 第十六周实践项目 - 英文单词的基数排序

问题及代码:#include #include #include #define MaxLen 9 //单词的最大长度#define Radix 27 //基数rd为27,分别对应' ','a',…'z'typedef char String[MaxLen+1]; //定义String为字符数组类型typed

2015-12-17 13:18:17 671

原创 第十六周实践—归并排序算法的改进

问题及代码:#include #include #include #include #define MinLength 64 //最短分段长度typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType

2015-12-17 13:14:32 387

原创 第十六周实践项目-排序(3)

问题及代码:归并排序:#include #include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoTyp

2015-12-17 13:05:45 444

原创 第十六周实践项目--排序(2)

问题及代码:

2015-12-15 18:23:53 344

原创 第十六周实践项目--排序

问题及代码:冒泡法:#includeusing namespace std;int main(){ int a[50]={57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}; int i=0,j=12,t; while(i<12) { while(j>i) { if(a[j]<a[j-1])

2015-12-15 17:07:28 307

原创 第十五周项目3 - B-树的基本操作

问题及代码:#include #include #define MAXM 10 //定义B-树的最大的阶数typedef int KeyType; //KeyType为关键字类型typedef struct node //B-树结点类型定义{ int ke

2015-12-11 09:03:39 342

原创 第十五周项目2- 用哈希法组织关键字

问题及代码:#include #include #define N 15#define M 26int H(char *s){ return ((*s-'a'+1)%M);}int main(){ char *s[N]= {"if", "while", "for", "case", "do", "break", "else", "stru

2015-12-11 08:11:14 335

原创 第十五周实践项目--项目1 - 验证算法

问题及代码:#include #define MaxSize 100 //定义最大哈希表长度#define NULLKEY -1 //定义空关键字值#define DELKEY -2 //定义被删关键字值typedef int KeyType; //关键字类型typedef char * InfoTyp

2015-12-07 16:50:50 320

原创 第十四周实践项目三--验证是否为BST

问题及代码:#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;typedef struct node //记录类型{ KeyType key;

2015-12-06 16:36:51 786

原创 第十四周项目二 - 二叉树排序树中查找的路径

问题及代码:#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;typedef struct node //记录类型{ KeyType key;

2015-12-06 16:25:32 436 1

原创 第十四周实践项目3--二叉树排序

问题及代码:#include #include typedef int KeyType;typedef char InfoType[10];typedef struct node //记录类型{ KeyType key; //关键字项 InfoType data;

2015-12-05 14:58:43 410

原创 第十四周实践项目2--分块查找

问题及代码:#include #define MAXL 100 //数据表的最大长度#define MAXI 20 //索引表的最大长度typedef int KeyType;typedef char InfoType[10];typedef struct{ KeyType key; //KeyType为关键字的数据类型

2015-12-04 17:32:28 401

原创 第十四周实践项目1--验证折半查找

问题及代码:(1)非递归式:  #includeusing namespace std;int main(){ int low=0,high,n; int a[100]; int i=0,f; cout<<"Please input the number of data and what data do you want to find"<<end

2015-12-04 17:17:37 487

原创 第十四周知原理--3

2015-11-30 17:05:46 632

原创 项目3 - 图遍历算法实现

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十二周项目3 - 图遍历算法实现.cpp作 者:刘强完成日期:2015年11月21日版 本 号:v1.0问题描述: 实现图遍历算法,分别输出如下图结构的深度优先(DFS)遍历序列和广度优先遍历(BFS)序列。 输入描述: 若干测试数据。程

2015-11-21 18:42:01 569 1

原创 项目4 - 利用遍历思想求解图问题(6-7)

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十二周项目4 - 利用遍历思想求解图问题.cpp作 者:刘强完成日期:2015年11月21日版 本 号:v1.0问题描述: 假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的

2015-11-21 18:39:15 552

原创 项目4 - 利用遍历思想求解图问题(1-5)

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十二周项目4 - 利用遍历思想求解图问题.cpp作 者:刘强完成日期:2015年11月21日版 本 号:v1.0问题描述: 假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的

2015-11-21 18:37:18 491

原创 项目5 - 迷宫问题之图深度优先遍历解法

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十二周项目3 - 图遍历算法实现.cpp作 者:刘强完成日期:2015年11月21日版 本 号:v1.0问题描述: 实现图遍历算法,分别输出如下图结构的深度优先(DFS)遍历序列和广度优先遍历(BFS)序列。 输入描述:若干测试数据。程序

2015-11-21 18:34:06 671

原创 项目2 - 操作用邻接表存储的图

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十二周项目2 - 操作用邻接表存储的图.cpp作 者:刘强完成日期:2015年11月21日版 本 号:v1.0问题描述: 假设图G采用邻接表存储,分别设计实现以下要求的算法:  1)输出出图G中每个顶点的出度;  2)求出图G中出

2015-11-21 18:32:39 411

原创 项目1 - 图基本算法库

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十二周项目1 - 图基本算法库.cpp作 者:刘强完成日期:2015年11月21日版 本 号:v1.0问题描述: 定义图的邻接矩阵和邻接表存储结构,实现其基本运算,并完成测试。 要求: 1、头文件graph.h中定义相关的数据结构并声明

2015-11-21 18:29:34 665

原创 第十二周知原理第七题

7、已知图的邻接表如图3所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是A. 0 3 2 1 B. 0 1 2 3 C. 0 1 3 2 D. 0 3 1 2答案:AB我们知道以广度优先遍历是以下图这种方式进行遍历的(红箭头是遍历方向)横向的先经过,所以如果以0为遍历定点的话,0->1->2->3,0->3->2->1即为广度遍历的方

2015-11-19 13:43:14 815 1

原创 第十一周项目2 - 用二叉树求解代数表达式

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十一周项目2 - 用二叉树求解代数表达式.cpp作 者:刘强完成日期:2015年11月3日版 本 号:v1.0问题描述: 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、

2015-11-13 20:58:57 601

原创 第十一周项目1 - 二叉树算法验证(4)哈夫曼树

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十一周项目1 - 二叉树算法验证.cpp作 者:刘强完成日期:2015年11月13日版 本 号:v1.0问题描述: 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于, 可以从更多角度体会算法,以达到逐渐掌握算

2015-11-13 20:45:37 678

原创 第十一周项目1 - 二叉树算法验证(3)中序线索化二叉树的算法验证

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十一周项目1 - 二叉树算法验证.cpp作 者:刘强完成日期:2015年11月13日版 本 号:v1.0问题描述: 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于, 可以从更多角度体会算法,以达到逐渐掌握算

2015-11-13 20:44:32 523

原创 第十一周实践项目1 - 二叉树算法验证(2)二叉树构造算法的验证

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十一周项目1 - 二叉树算法验证(2).cpp作 者:刘强完成日期:2015年11月13日版 本 号:v1.0问题描述: 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于, 可以从更多角度体会算法,以达到逐渐

2015-11-13 20:18:01 495

原创 第十一周实践项目1 - 二叉树算法验证(1)层次遍历算法的验证

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十一周项目1 - 二叉树算法验证.cpp作 者:刘强完成日期:2015年11月13日版 本 号:v1.0问题描述: 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于, 可以从更多角度体会算法,以达到逐渐掌握算

2015-11-13 19:39:53 643

原创 ”知原理“检验题目哈夫曼树

0615 哈夫曼树:下表给出的,是某文本档案中的词汇出现的频度。假设文本档案中只有这些词,请给出各个单词的哈夫曼编码,求出平均查找长度。 注:这个任务是由wc交给jc来做,jc将任务指(diu)派(bao)给了我,由于wc催的急,由于本人能力有限,尽管不留余力,任可能存在错误和不足之处,敬请读者批评指正。1.首先根据途中的单词及频度画出哈夫曼树然后将各个树枝上的

2015-11-11 16:03:25 1008 1

原创 第十周实践项目3 - 利用二叉树遍历思想解决问题

问题及代码:/*Copyright (c)2015,烟台大学计算机与控制工程学院All rights reserved.文件名称:第十周项目3 - 利用二叉树遍历思想解决问题.cpp作 者:刘强完成日期:2015年11月6日版 本 号:v1.0问题描述: 假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试: (1)计算二叉树节点个数; (

2015-11-06 20:04:29 724

空空如也

空空如也

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

TA关注的人

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