![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
数据结构、算法
秦时小
这个作者很懒,什么都没留下…
展开
-
Uva1586
#include #include #include #include using namespace std;int main(void){ int T=0; cin>>T;//读入T组数据 while(T--) { string s,n; cin>>s;//读入化学分子式字符串 char c='@';//c记录每次读到的字符,初始化为一个用不到的@字符原创 2016-03-18 21:58:04 · 440 阅读 · 0 评论 -
Uva10881
#include #include using namespace std;typedef struct ant{ int position;//表示位置,距离左端的距离 char direction;//表示方向 int number;//表示编号,即输入的顺序 int flag;//表示蚂蚁的状态,-1表示掉下去,0表示Turning,1正常}ants;//定义sort的原创 2016-01-26 16:01:22 · 305 阅读 · 0 评论 -
Uva227
#include #include #include #include using namespace std;int main(void){ char c=0;//记录是否读取到了Z,表示结束 scanf("%c",&c); char frame[5][5]; int ei=-1,ej=-1;//记录空格的下标 int count=1;//记录当前处理的是第几组数据原创 2016-03-22 23:57:43 · 357 阅读 · 0 评论 -
Uva11292
#include #include using namespace std;int main(){ int n,m;//龙头的数量和骑士的数量 //int sum=0;第一次出错是因为我把sum的定义放在了这里,以至于每组数据使用的sum都是前一组数据留下来的未清理的数据 while(scanf("%d%d",&n,&m)==2&&n&&m) { int sum=0;//记原创 2016-01-26 16:02:53 · 338 阅读 · 0 评论 -
Uva455
#include #include #include using namespace std;int main(void){ int count=0; cin>>count; while(count--) { string s; cin>>s; int length=s.size(); int i=0,j=1; //核心代码 while(1) {原创 2016-03-19 00:53:50 · 332 阅读 · 0 评论 -
Uva1585
#include #include using namespace std;int main(void){ int T=0; string s;//默认为空 cin>>T; while(T--) { cin>>s;//读取一组OX字符串 int length=s.size(); int sum=0,flag=0;//sum求和,flag用来表示连续出现的0是第几个原创 2016-03-18 21:56:13 · 303 阅读 · 0 评论 -
Uva1225
#include #include using namespace std;int main(void){ int a[10]={0}; int n,count=0; cin>>count;//读入所要处理的数据组数 while(count--) { cin>>n; for(;n>0;n--) { if(n>999) { a[n/1000]+原创 2016-03-18 21:54:14 · 599 阅读 · 0 评论 -
uva11729
#include#include using namespace std;const int MAX_N=1000+5;//任务结构体typedef struct tk{ int b;//交代任务的时间 int j;//执行任务的时间}task;//定义结构体比较函数,规定按照执行任务所花时间从大到小进行排序bool compare(task A,task B){ r原创 2016-01-26 16:04:26 · 279 阅读 · 0 评论 -
栈的顺序结构实现
/* 1 栈的顺序结构实现 */#include <stdio.h>#include <stdbool.h>typedef int TYPE; //定义栈元素类型#define SIZE 5 //栈空间大小//声明顺序栈结构体typedef struct{ TYPE data[SIZE];//记录栈中元素值 int length; //记录栈的长度}seqS原创 2016-01-22 22:11:49 · 1255 阅读 · 0 评论 -
队列的链式结构实现
/* 4 队列的链式结构实现 */#include #include #include typedef int TYPE;//元素类型//声明链队列结点结构体typedef struct Node{ TYPE data;//存储数据 //struct Node* last;//指向上一节点,入栈使用头插法 struct Node* next;//指向下一节点,入栈使用尾插原创 2016-01-22 22:48:06 · 272 阅读 · 0 评论 -
队列的顺序结构实现
/* 3 队列的顺序结构实现 */#include #include typedef int TYPE;//元素类型#define SIZE 20//元素最大个数SIZE-1,有一个不存数据//声明队列结构体typedef struct{ TYPE data[SIZE];//存储数据 int front;//指向首元素 int rear;//指向尾元素的下一位置 int原创 2016-01-22 22:32:15 · 538 阅读 · 0 评论 -
栈的链式结构实现
/* 2 栈的链式结构实现 */#include #include #include typedef int TYPE;//元素类型别名//声明顺序栈结构体typedef struct stack{ TYPE data;//存储结点数据 struct stack* next;//记录后继结点的地址}stack;void init(stack**);//初始化voi原创 2016-01-22 22:26:57 · 411 阅读 · 0 评论 -
线性表的链式结构实现
/* 6 线性表的链式结构实现 */#include #include #include typedef int TYPE;//定义数据类型别名//声明结点结构体typedef struct Node{ TYPE data;//存储结点数据 struct Node* next;//指向下一节点}Node;//声明链表结构体typedef struct{ Node原创 2016-01-22 22:54:33 · 299 阅读 · 0 评论 -
线性表的顺序结构实现
/* 5 线性表的顺序结构实现 */#include #include typedef int TYPE;//声明元素类型别名#define SIZE 10//顺序表的最大空间typedef struct{ TYPE data[SIZE];//存储顺序表的元素 int length;//顺序表当前长度}seqList;void init(seqList* list);/原创 2016-01-22 22:52:44 · 1724 阅读 · 0 评论 -
二叉排序树的实现
/*编程实现二叉排序树的基本操作,注意如果有多个值相同的元素,则除了第一个之外其余的不能插入到树中,因为这样会使树的高度增大过快。样例输入: 50 70 20 60 40 30 10 90 80*/#include #include #include typedef int TYPE;//数据类型别名 /*声明二叉树结点结构体*/ typedef struct N原创 2016-01-26 15:50:32 · 639 阅读 · 0 评论 -
如何更好地理解和掌握 KMP 算法
作者:灵茶山艾府链接:https://www.zhihu.com/question/21923021/answer/37475572来源:知乎角色:甲:abbaabbaaba乙:abbaaba乙对甲说:「帮忙找一下我在你的哪个位置。」甲从头开始与乙一一比较,发现第 7 个字符不匹配。要是在往常,甲会回退到自己的第 2 个字符,乙则回退到自己的开头,然后两人开始重新比较。[1]这样的事情在字符串王国中每天都在上演:不匹配,回退,不匹配,回退,……但总有一些妖艳字符串要花自己不少的时间。上了转载 2020-06-21 22:09:07 · 187 阅读 · 0 评论 -
最大子数组之暴力枚举法
/***************************************************************用暴力枚举法求解最大子数组问题,时间复杂度为O(n的平方)输入: 第一行为数组元素个数,第二行为数组中的元素值,如下: 16 13 -3 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7输出: 43 18 20 -7原创 2015-11-10 22:27:40 · 912 阅读 · 0 评论 -
分治策略之最大子数组问题
/****************************************************************用分治法解决最大子数组和问题:最大子数组的位置有以下三种情况:1:最大子数组位于左半部分A[low,mid]中;2:最大子数组位于右半部分A[mid+1,high]中;3:最大子数组跨越了中点,同时位于左半部分和右半部份;对于第三种情况,最大子数组的和等于原创 2015-11-10 22:04:10 · 315 阅读 · 0 评论 -
分治法之归并排序
/*************************************************分治法之归并排序:时间复杂度为O(nlgn) 升序排列。分治法的三部曲: 1:分解; 2:解决; 3:合并;**************************************************/#include #include //合并函数void me原创 2015-11-10 22:20:48 · 435 阅读 · 0 评论 -
朴素法实现矩阵乘法
/*****************************************************************************************普通法实现矩阵乘法:时间复杂度为O(n的3次方)输入: 2 2 1 2 2 3 2 3 1 3 2 3 2 1输出: 2 3 7 7 4 11 12 7说明:其中第一行代表矩阵的行数和原创 2015-11-11 16:26:34 · 846 阅读 · 0 评论 -
二分查找的实现
/* 二分查找的实现*/#include //查找算法的实现int search(int *p,int low,int high,int elem){ if(low>high)//递归终止条件,返回-1表示没有找到 return -1; int mid=(low+high)/2; if(*(p+mid)<elem) { //如果所查元素大于当前中点的值,原创 2016-01-26 21:12:02 · 359 阅读 · 0 评论 -
冒泡排序的实现
/*作者:秦时小 专业:计算机科学与技术学校:咸阳师范学院 2013级时间:2016.01.27程序名称:冒泡排序算法实现程序功能:*/#include /*函数名称:冒泡排序参数说明: begin是待排序列的起始地址,end是待排序列最后一个元素的下一地址。 即end刚好且已经越界。compare函数指针。指定排序顺序是升序还是降序函数说明: 为了避免当待排原创 2016-01-27 13:24:42 · 383 阅读 · 0 评论 -
插入排序算法的实现
/*作者:秦时小 专业:计算机科学与技术学校:咸阳师范学院 2013级时间:2016.01.27程序名称:插入排序程序功能:*/#include #include /*函数名称:插入排序函数描述: 将数组分成了两部分,前半部分表示已经排好序的元素,后半部分 表示待排序的元素,外层for循环表示待排序的数据,内层for循环 表示已经排好序的元素,每循环一次原创 2016-01-27 14:37:49 · 396 阅读 · 0 评论 -
选择排序算法的实现
/*作者:秦时小 专业:计算机科学与技术学校:咸阳师范学院 2013级时间:2016.01.27程序名称:选择排序算法的实现程序功能:*/#include #include /*函数名称:选择排序函数描述: min用来记录值最小的元素的下标,初始假定当前第一个元素为最小值 ,然后依次向后与每一个元素做比较,当找到更小的元素时,更新min 的值为当前最小值的下标原创 2016-01-27 16:40:54 · 393 阅读 · 0 评论 -
快速排序算法的实现
/*作者:秦时小 专业:计算机科学与技术学校:咸阳师范学院 2013级时间:2016.01.27程序名称:快速排序算法的实现程序功能:*/#include //快速排序//low和high表示的是下标。以中间元素为基准值void quickSort(int* arr,int low,int high){ if(low>=high) return; int p原创 2016-01-27 19:48:15 · 419 阅读 · 0 评论 -
直接插入排序
/*************************************************直接插入排序:时间复杂度为O(n的平方) 升序排列。**************************************************/#include #include int main(){ int temp,length,*A; while(scanf(原创 2015-11-10 22:24:31 · 306 阅读 · 0 评论