- 博客(10)
- 收藏
- 关注
原创 湖南师范大学数据结构实验(五)
5、排序背景知识:各种排序方法目的要求:掌握常见的排序算法的思想及其适用条件。掌握常见的排序算法的程序实现。实验内容:输入一组关键字序列分别实现下列排序:实现简单选择排序、直接插入排序和冒泡排序。实现希尔排序算法。实现快速排序。实现堆排序。测试数据:已知待排序的一组记录的初始排列如下R(49),R(38),R(65),R(97),R(76),R(13),R(27),R(49)#include<cstdio>#include<iostream>usin
2020-11-28 10:04:01 634
原创 湖南师范大学数据结构实验(四)
4、查找的有关操作背景知识:静态查找、动态查找目的要求:掌握顺序查找算法的思想及程序实现。掌握折半查找算法的思想及程序实现。实验内容:根据输入数据,采用顺序查找实现某一已知的关键字的查找,并显示查找结果。利用实验一建立有序表,采用折半查找实现某一已知的关键字的查找,并显示查找结果。测试数据:输入数据(45,21,76,36,54,19,64,82,29,91),查找64和90。有序表(05,13,19,21,37,56,64,75,80,88,92),查找64和90。#includ
2020-11-27 23:22:31 578
原创 湖南师范大学数据结构实验(三)
3、 二叉树的常见操作背景知识:二叉树的存储、建立、遍历及其应用目的要求掌握二叉树的存储实现。掌握二叉树的遍历思想。掌握二叉树的常见算法的程序实现。实验内容及步骤:输入字符序列,建立二叉链表。求先序、中序和后序遍历序列,并显示输出。求二叉树的深度,并显示输出 。求二叉树的结点总数,并显示输出。测试数据:输入字符序列ABCØØDEØGØØFØØØ#include<cstdio>#include<cstdlib>#include<iostream&g
2020-11-26 23:16:04 505
原创 湖南师范大学数据结构实验(二)
2、 栈、队列背景知识:栈和队列的逻辑定义、存储定义和基本操作的实现及应用目的要求:掌握栈、队列的思想及其存储实现;掌握栈、队列的常见算法的程序实现及应用。实验内容:利用栈和算符优先算法,实现表达式求值。采用顺序存储实现循环队列的初始化、入队、出队和求队列长度的操作。实验步骤:从键盘输入表达式,求值,并显示求值结果;每次入队或出队操作后,显示队列情况和队列长度。测试数据:(1)3×6+9-5×(8-3)(2)循环队列大小为11;d,e,b,g,h入队;两次出队; i,j,k,l,
2020-11-26 13:57:16 509
原创 湖南师范大学数据结构实验(一)
#include<cstdio>#include<cstdlib>#include<iostream>using namespace std;int read() {int x; cin >> x; return x;}struct vector{ int siz; int *a; void init(){ siz = 0; a = NULL; } void push_b
2020-11-25 22:03:03 535 1
原创 洛谷 P1363 幻象迷宫
可以想象为一张无限循环的地图。如果从S点出发可以走无限远,那一定可以走到另一个小地图的S’点,例如从(1,2)点走到(1+n,2)这个地方,所以直接搜就行了。搜的时候用一个三维数组,表示是否被访问过及访问的横纵坐标,如果走到的环境相同而坐标不同的话就代表可以走到无限远了#include<bits/stdc++.h>using namespace std;const int maxn = 1510;char mp[maxn][maxn];int vis[3][maxn][maxn],
2020-09-15 09:21:30 205
原创 贪吃蛇 C++
#include<bits/stdc++.h>#include <conio.h>#include <windows.h>using namespace std;void gotoxy(int x,int y) //将输出位置改到 y行x列 { CONSOLE_SCREEN_BUFFER_INFO csbiInfo; HANDLE hConsoleOut; hConsoleOut = GetStdHandle(STD_OUTPUT_HAN
2020-08-24 20:22:01 165
原创 【2020牛客多校】Fake Maxpooling 单调队列求区间最大值
题目大意:给出三个参数n,m,k,构成元素为lcm(i,j)的n×m矩阵,求所有k×k子矩阵最大值之和。做法:用一个长度为 k 的单调队列维护最大值,保持队列为单调递减。压入数值之前,先将所有比之小的数值弹出(如果本身是最小且队列已满,则将队首元素弹出),然后压入数值,这样保证队首元素是该区间最大元素。代码:#include<bits/stdc++.h>using namespace std;int lcm(int a,int b) //最小公倍数{ int ta =
2020-07-14 20:24:35 251
原创 树的重心
重心的定义:找到一个点,当这个点成为树的根时,最大子树的结点数最小。重心的性质:1、树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个重心,他们的距离和一样。2、把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。3、一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置。4、一棵树最多有两个重心,且相邻。求树的重心:定义几个数组,f[i]表示以i为根的...
2020-03-22 11:40:48 547 1
原创 快速排序
快速排序是一种非线性排序,它的时间复杂度是O(nlogn)。它通过多次交换、比较实现排序。其流程如下:首先设定一个分界值,一般取第一个(我们选中间那个 )将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。分治将左边部分和右边部分排序i=0,j=8,midnum=7我们从J往左找一个比midnum小的一个数,从i往右找一个比midnum大的一个数此时i指向8,j...
2020-03-07 13:00:42 1162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人