![](https://img-blog.csdnimg.cn/20190217130939773.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
大连海事大学数据结构实验,大作业,课程设计
用于分享大连海事大学各种算法,数据结构等课程的实验代码。均为C/C++代码实现。
我的程序跑快快
这个作者很懒,什么都没留下…
展开
-
小学期C语言实训:约瑟夫环(C工程文件和链表练习)
题目:代码:Josephus.htypedef int Status; // 一个新类型Status 表明操作成功与否的状态,如果函数成功返回整形值1,否则返回整型值0struct Lnode { // 单链表结点类型 int data; // 信息存储 Lnode *next; // 下一结点地址};typedef Lnode Linklist ;///函数声明...原创 2019-07-14 19:29:49 · 441 阅读 · 0 评论 -
小学期C语言实训:基于链表的“学生信息管理系统”
题目:代码:#include<stdio.h>#include<string.h>const int maxn = 55;struct Student{ char name[maxn], profes[maxn], clas[maxn]; // 姓名,专业,班级 float score[3]; // 三门课成绩 int id ; // ...原创 2019-07-14 19:37:05 · 2178 阅读 · 2 评论 -
小学期C语言实训:考试出题计分系统设计
题目:代码:#include<stdio.h>#define _question_len 100#define maxn 1000typedef struct Question{ // 题目结构体,存储一个题目 char str[_question_len] ; // 试题内容 char ans_A[20], ans_B[20], ans_C[20], an...原创 2019-07-14 19:21:54 · 1315 阅读 · 0 评论 -
小学期C语言实训:智能猜扑克牌游戏设计
题目:思路:27张牌,分成3行,每行9张。对于这随机生成的27张牌,每个牌设置一个属性cv:被选中的次数。初始27张牌每张牌的被选中次数为 0 ;第一轮操作:三行中被选中行的牌的次数+1,此时有9张牌的cv是1,28张牌的cv是0第二轮操作:将cv为1的牌平均分成3行,剩下的随意放置,再次让用户选择,此时被选中的行的牌的次数+1,此时有3张牌的cv是2,其余牌的cv<2。第...原创 2019-07-14 19:11:09 · 1249 阅读 · 1 评论 -
操作系统:页面置换算法(FIFO算法、LRU算法、LFU算法、NRU算法)实验报告
操作系统实验报告一、实验名称 :页面置换算法二、实验目的:在实验过程中应用操作系统的理论知识。三、实验内容:采用C/C++编程模拟实现:FIFO算法、LRU算法、LFU算法、NRU算法四个页面置换算法。并设置自动数据生成程序,比较四个算法的缺页出现概率。四、程序代码:/*FIFO: 简单的先进先出,用队列模拟即可 prio 表示入队时间(小值先出)LRU: 淘汰最久没有被访问的页...原创 2019-07-10 09:42:05 · 16279 阅读 · 4 评论 -
算法设计与分析:最短路径问题(哈密顿回路+最短路)小学期实践
最短路径问题一、题目要求:二、子问题(1)哈密顿回路1.问题建模描述给定一个n个结点,m条有向边(边权为正)的图,求出一条路径满足如下条件:条件一:该路径可以从任意节点开始,不过起点和终点必须相同。条件二:该路径除了起点和终点,其他结点都必须经过,且只能经过一次。条件三:在满足上述两条件的前提下,要求路径尽可能短。2.DFS搜索算法分析:有两种搜索的思路,第一种就是在不考虑图...原创 2019-07-09 21:48:23 · 10753 阅读 · 0 评论 -
算法设计与分析:连续邮资问题(搜索)实验报告
实验内容:算法讲解:首先既然是nnn个数字,可重复选取mmm个,那么枚举长度为nnn的序列AAA的所有可能情况,分别计算出每种序列“选mmm个(可重复)能组成的最长连续邮资为多大”(后面将其称为**“序列的最大值”**),找出那个“序列的最大值”最大的序列就是答案了。但是我们发现因为自然数是无限大的,AAA序列的每个位置理论上都可以有无数种可能,所以我们要通过提前分析,得到一些AAA序列的...原创 2019-06-21 15:47:52 · 2167 阅读 · 0 评论 -
算法设计与分析:多边形游戏(动态规划)实验报告
实验内容:算法讲解:1.算法模型引入(区间动态规划)首先,这个问题是一个很经典的区间动态规划问题,我们先看一下什么是区间动态规划:顾名思义,就是动态规划过程中求一个区间的最优解。通过将一个大的区间分为很多个小的区间,求其小区间的解,然后一个一个的组合成一个大的区间而得出最终解,有没有发现,这完全就是分治的思想。不过这样讲解还是很抽象,那么我们举一个很简单的具体的例子吧:有2.具体问...原创 2019-06-21 15:45:09 · 2693 阅读 · 0 评论 -
连续邮资问题(DFS搜索回溯)
题目内容:思路简述:首先既然是n个数字,可重复选取m个,那么枚举长度为n的序列a的所有可能情况,限制条件为:1.a数组严格单调递增2.a数组第一个数字为1然后如果这样枚举那么枚举空间是无限的,因为此时:a[0] = 1 , a[1]的枚举范围可以是[2,+∞)。所以需要再加一些限制:假设a[0]a[k]选m个能组成的最大连续数字为:1s,那么a[k+1]的枚举范围一定是:[a[k]...原创 2019-06-10 07:45:47 · 1431 阅读 · 0 评论 -
多边形游戏(区间动态规划)
简述:就是一个区间动态规划,为了处理环状结构,一个好的想法是把整个顶点和边的序列在后面再复制一遍。可以比较简化代码实现的复杂度。代码:#include<bits/stdc++.h>using namespace std;const int maxn = 105 ;struct CalSeq{ //存储一个计算序列的信息 string str; long l...原创 2019-06-01 21:42:36 · 906 阅读 · 0 评论 -
编译原理 TEST语言,词法分析+语法分析(C/C++语言)
临时写了个语法分析的代码,可以顺便输出语法树,以后有时间慢慢解释具体结构吧~代码:#include<bits/stdc++.h>#define xcx(x) printf("ojbk %d\n",(x))using namespace std;const int KEY_WORD_NUM = 13 ;const int OPERATOR_WORD_NUM = 19;con...原创 2019-05-06 23:20:06 · 4760 阅读 · 4 评论 -
编译原理词法分析实验代码(C/C++实现)
临时写了一个词法分析的代码,大概可以分析所有C语言程序吧,反正可以分析它自己,有较强的可维护性,时间空间效率都不低,采用一个类似字典树的结构(可能类似自动机),可处理任意长度的分界符识别,单双引号中的反斜杠转义字符也可处理。报错位置合理,信息清晰。muuuuuuuuuuuuuua!#include<bits/stdc++.h>using namespace std;const i...原创 2019-05-03 12:31:14 · 5822 阅读 · 0 评论 -
horn语句归结原理(附C++代码)
大连海事大学智能科学与技术专业课程设计,代码福利写法说明该程序可处理任意函数名,任意常量名的多语句归结。且有较优秀的效率以及十分完备的封装结构,今后的进一步维护将非常方便。实际基本结构如下:首先采用暴力bfs的形式扩展出每一个有可能组合形成的“horn语句”(后面称之为结点),在bfs的过程中维护一个set用来表示已经扩展完成的结点。用当前扩展结点和set中的每一个结点都进行一次组合,这样...原创 2018-10-09 10:32:05 · 4158 阅读 · 3 评论 -
遗传算法解决旅行商问题(附C++代码)
大连海事大学智能科学与技术专业课程设计福利写法说明该实验通过调整:生成地图的类型(1.随机边权抽象图。2.满足三角形不等式规则的实际二维平面地图),种群数量,迭代代数,变异概率等相关影响结果的因素,分别对随机生成的地图进行求解。并通过dfs暴力搜索对点数比较少的地图暴力求解最优解。经过比较发现,种群数量以及迭代次数都和求解所得路径的长度成负相关关系。附代码:#include<bits...原创 2018-10-09 10:20:28 · 5403 阅读 · 12 评论 -
C++实现简单五子棋AI
使用方法:输入二维坐标0~14落子,输入-1 -1可以悔棋#include&amp;amp;lt;bits/stdc++.h&amp;amp;gt;using namespace std;#define bas 15#define Dep_limit 3#define inf 0x3f3f3fint score[2][6]={{0,5,25,4000,inf,inf},{0,0,2,50,4000,inf}};//...原创 2018-10-09 10:12:33 · 4369 阅读 · 2 评论 -
小根堆实现“优先队列”数据结构及“堆排序”算法(C/C++)
功能介绍:min_heap p;//声明小根堆p.len;//堆的大小p.add(x);//将数据x插入堆中p.del();//删除堆顶元素p.top();//返回堆顶元素p.print();//层序遍历顺序输出堆中元素p.build(a,n);//将数组a[]的前n个元素建立小根堆( 时间复杂度:O(n) )p.clear();//清空堆中元素p.psort();//将p中元素...原创 2019-02-18 15:34:10 · 1137 阅读 · 0 评论 -
BP神经网络算法(C/C++实现)
前几日美赛建模前准备的BP神经网络模板,纯C++手写。之后会找时间写一个使用方法,并配上测试样例,尽量加上过程图。代码:#include<bits/stdc++.h>using namespace std;#define maxn 150#define p2(x) ((x)*(x))const double len_v=0.5;///学习速率int n,m,p,dep;...原创 2019-02-17 20:13:22 · 4147 阅读 · 3 评论 -
Tire树(字典树)各种功能实现(C/C++指针)
基本功能1.字典树插入字符串。2.字典树中查询字符串是否出现。3.输出字典树中已存字符串以及出现次数。4.在字典树中删除字符串,字符串不存在提示错误。代码#include<bits/stdc++.h>using namespace std;const int bas=26;//字符集数量#define dt(c,n,s) Data_type(c,n,s)struct...原创 2019-02-17 19:21:40 · 1217 阅读 · 0 评论 -
单链表各种常用功能C/C++实现
已实现功能:1.链表首部插入元素2.从链表中删除指定元素:(1)删除第一次出现的位置(2)删除最后一次出现的位置(3)删除所有出现的位置3.返回链表中元素个数4.链表比较大小5.链表首尾连接6.翻转链表7.链表从小到大排序代码:#include<bits/stdc++.h>using namespace std;struct node{ int da...原创 2019-02-16 22:26:35 · 367 阅读 · 0 评论 -
八数码问题 解的存在性证明以及解法分析(附代码)
问题描述:很经典的问题,给一个4399的网址,自己玩一下就知道了。。。。。 8数码小游戏试玩分析:一 . 基础BFS最显然想到肯定是暴力搜索,因为我希望找到一个最少操作步数的解决方案,所以比较明显的就是可以用最基本的广度优先级搜索,因为我的状态一共只有 9! 种,所以即使搜遍所有状态还是很快的。 那么如何判断某一状态是否已经搜过了呢,还是用标记数组。显然就是把 0~8 ...原创 2018-02-28 17:28:18 · 1424 阅读 · 0 评论 -
简单作业:求n!并输出
注意0!=1原创 2017-09-11 21:26:07 · 689 阅读 · 0 评论 -
Java作业:大数累加(我是真不知道有什么用)
java老师让用c写一个1加到1e8和1e12的累加和。还不让用等差数列公式,非要一个一个加,不知为什么。而且还非要超一下int的表示范围,又禁止了long long int 的使用,真是为了用高精度而用高精度啊~不管了,反正先写一个应付作业吧。这样我把这个代码打印出来老师也不会怀疑我是网上抄的了~原创 2017-09-10 21:52:54 · 447 阅读 · 0 评论