算法
进阶中的菜鸟
这个作者很懒,什么都没留下…
展开
-
北航数据结构期中测试编程题解析
编程题1【问题描述】有一种基于环的选择排序方法,其(从小至大排序)主要原理如下:1.首先将待排序的数据构成一个数据环;2.从环当前位置(初始时为待排序的第一个数据所在位置)开始按顺时针遍历环,从中找到当前环中最小元素;3.将当前位置移至最小元素的下一元素位置,并将最小元素从环中取出(得到一个排好序的元素);4.重复步骤2和3,直到环中没有元素。编写程序,从标准输入中读取...原创 2020-02-13 02:13:27 · 2766 阅读 · 2 评论 -
【课程设计】图的建立和遍历(基于邻接表和邻接矩阵存储)
本课程设计主要完成邻接矩阵和邻接表两种不同存储方式的图的建立和遍历,其中遍历部分分别进行了DFS和BFS两种不同形式的遍历。#include<stdio.h>#include<stdlib.h>#include<string.h> #include<stack>#include<queue>using namespace ...原创 2020-02-13 02:05:37 · 1187 阅读 · 1 评论 -
【课程设计】最小生成树应用
本次课程设计要求在n个城市之间架设n-1条线路,实现这几个城市之间的网络通信,要求网络经济代价最低。具体要求如下:课程设计要求根据设计要求,我们假设城市之间的距离越大架设网线的经济代价越大,因此可以用两个城市之间的距离作为边的权重。n个城市之间最多可以生成 1+2+...+(n-1)条边,分别计算出每条边的长度然后对他们进行升序排序,利用并查集得到由n-1条边组成的最小生成树,...原创 2020-02-13 01:57:08 · 2534 阅读 · 0 评论 -
【课程设计】判断二叉树是否为排序二叉树及排序二叉树节点的删除和插入算法
本次的课程设计要求建立一颗二叉树,并且用中序非递归方法遍历该二叉树,然后判断该二叉树是否为二叉排序树,如果是二叉排序树的话进一步要求对结点进行插入和删除操作,并输出操作后的结果。树结点typedef struct node{ struct node *lchild; struct node *rchild; int data;}BiTreeNode, *BiT...原创 2020-02-13 01:47:37 · 419 阅读 · 0 评论 -
【课程设计】非递归实现二叉树的三种遍历算法及创建排序二叉树
本次课程设计主要含三部分内容,并且每一部分内容独立为一个小的课程设计1.二叉树的建立及其非递归的先序、中序、后序遍历;2.二叉树的层序遍历3.排序二叉树的创建及中序遍历输出首先我们来实现第一小部分的内容,先序递归构建二叉树并按非递归的方法对其进行先序、中序和后序遍历。接下来我们用下面这颗二叉树作为我们示例进行演示,我们示例二叉树长这样:图1 示例二叉树在前序遍历生成二叉树...原创 2020-02-13 01:33:40 · 1719 阅读 · 0 评论 -
【算法】求最短路径
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#define INF 10000using namespace std;const int maxSize = 100;typedef struct MGraph{//邻接矩阵int edges[maxSiz原创 2020-02-13 00:57:30 · 179 阅读 · 0 评论 -
【算法】求极大数和极小数的和
算法步骤:(1)确定小数点位置,若没有小数点,默认为strlen(str);(2)以小数点为分界线,将两个加数分别分割为两部分: 整数部分右对齐放入数组中,小数部分左对齐放入数组中。(3)将两个加数的小数部分和整数部分看成整数,模拟手算法,分别相加求和;(4)将求和之后的小数部分和整数部分连接在一起: 若小数数组首元素为0,说明不用进位,直接相连; 若小数...原创 2018-05-09 01:52:13 · 527 阅读 · 0 评论 -
【编程】C语言递归遍历文件夹
#include // for strcpy(), strcat()#include #include#define Max 100000//文件数量int FileSearch(const char *dir);int Write(void);int i = -1;typedef struct Data{unsigned long size;c原创 2018-02-05 16:20:36 · 2591 阅读 · 0 评论 -
【算法】无向图的创建和遍历
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;#define maxSize (100)typedef struct ArcNode{//弧结点int info;//弧信息struct ArcNode* nextarc原创 2017-08-11 16:42:51 · 1844 阅读 · 0 评论 -
【数据结构】链栈学习及运用笔记
上午再一次深入复习了栈的算法实现,写了一个简单的十进制转二进制函数作为练习(以后有时间的时候再将其中关键部分用图文描述出来,加深印象的同时也希望能够帮助初学者更好的理解这部分的知识),代码如下:// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespa原创 2017-07-26 11:05:37 · 257 阅读 · 0 评论 -
【数据结构】循环队列理解及练习
最近对循环队列进行了深入了解,根据自己的理解用AI画了下面的示意图,并对其要点进行了归纳。如下所示:下面是书上的习题,设计一个可以在队头和队尾进行入队、出队的队列,算是循环队列的练习升级版,代码如下:// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing name原创 2017-07-25 15:53:55 · 2272 阅读 · 0 评论 -
【算法】二叉树各种遍历
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;const int MAXSIZE = 10;int i = 0;int da[] = { 3, 1, 2, -1, -1, -1, 4, 6, -1, -1, 7, -1, -1原创 2017-08-01 16:39:09 · 272 阅读 · 0 评论 -
【算法】栈实现后缀表达式求值
// 栈实现后缀表达式求值/*算法思想:遍历整个表达式如果是操作数,入栈;如果是操作符,将当前栈顶元素和栈第二个元素出栈进行运算,并将结果压栈;若是除(减)操作符,第二个元素作为被除数(被减数),栈顶元素作为除数(减数);表达式遍历完后,当前栈的栈顶元素即为所求表达式的值。ps:本示例代码只对10以内的整数有效*/#include "stdafx.h"原创 2017-07-20 14:33:42 · 2238 阅读 · 0 评论