自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 范数的作用

L-0范数:用来统计向量中非零元素的个数。L-1范数:向量中所有元素的绝对值之和。可用于优化中去除没有取值的信息,又称稀疏规则算子。L-2范数:典型应用——欧式距离。可用于优化正则化项,避免过拟合。L-∞范数:计算向量中的最大值。...

2021-10-20 09:30:13 1248

原创 C 词法分析器

   编译原理实验 一、实验题目设计、编制、调试一个识别一简单语言单词的词法分析程序。程序能够识别基本字、标识符、无符号整数、浮点数、运算符和界符)。单词符号及种别表如下: 单词符号 种别编码 begin 1 if 2 then ...

2018-11-11 15:21:38 732

原创 Linux和Windows间的UDP通信

UDP(user datagram protocol)的中文叫用户数据报协议,属于传输层。UDP是面向非连接的协议,它不与对方建立连接,而是直接把我要发的数据报发给对方。所以UDP适用于一次传输数据量很少、对可靠性要求不高的或对实时性要求高的应用场景。正因为UDP无需建立类如三次握手的连接,而使得通信效率很高。服务器端的步骤如下:1. socket:      建立一个socket2. bind:...

2018-06-30 20:27:11 3326 2

原创 数据结构课程设计————内部排序性能分析

/************************************************************************************版权所有(C)2017,LiuTao。**文件名称:main.c*文件标识:无*内容摘要:该代码用于获取满足后缀要求的第一个文件*其它说明:无*当前版本:V1.0*作者:刘涛*完成日期:2017

2017-12-19 13:42:32 1569 1

原创 c/c++在windows下获取时间和计算时间差的几种方法总结

一、标准C和C++都可用1、获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t timer0 )。 精确到秒。测试程序如下:[c-sharp] view plain copy#include   #include   int main()  {      t

2017-12-18 13:08:29 595

原创 数据结构年终总结

年华似水、岁月如梭、时光如水,时光飞逝,光阴似箭,光阴荏苒,日月如梭,转瞬即逝,斗转星移,流星赶月,日月如流,寒来暑往,时不我待,年深日久 ,似水流年,时日如飞,流星赶月,逝者如斯,白驹过隙,碎玉如梭,不知不觉中。。。我们已经跟随贺老学习了一个学期的数据结构课程,在这一个学期中,贺老教给我们的不仅是知识,更重要的是教给了我们学习的方法和技巧,从传统课堂到翻转课堂,从死板看书到课前视频,从书面作

2017-12-14 19:17:53 251

原创 第十五周 【项目4 - 英文单词的基数排序】

【项目 - 英文单词的基数排序】   设计一个基数排序的算法,将一组英文单词,按字典顺序排列。假设单词均由小写字母或空格构成,最长的单词有MaxLen个字母。[参考解答]#include #include #include #define MaxLen 9 //单词的最大长度#define Radix 27 //基

2017-12-07 11:02:46 201

原创 第十五周 【项目3 - 归并排序算法的改进】

【项目 - 归并排序算法的改进】   采用归并排序、快速排序等高效算法进行排序,当数据元素较少时(如n≤64),经常直接使用直接插入排序算法等高复杂度的算法。这样做,会带来一定的好处,例如归并排序减少分配、回收临时存储区域的频次,快速排序减少递归层次等。   试按上面的思路,重新实现归并排序算法。[参考解答]#include #include #include #incl

2017-12-07 11:02:03 137

原创 第十五周 【项目2 - 大数据集上排序算法性能的体验】

【项目 - 大数据集上排序算法性能的体验】 设计一个函数,产生一个至少5万条记录的数据集合。在同一数据集上,用直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序等算法进行排序,记录所需要的时间,经过对比,得到对复杂度不同的各种算法在运行时间方面的感性认识。提示1:这一项目需要整合多种排序算法,可以考虑先建设排序算法库,作为我们这门课算法库的收官之作; 提

2017-12-07 11:01:17 170

原创 第十五周 【项目1 - 验证算法】

用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(1)直接插入排序;(2)希尔排序;(3)冒泡排序;(4)快速排序;(5)直接选择排序;(6)堆排序;(7)归并排序;(8)基数排序。 (1)直接插入排序1.直接插入排序

2017-12-07 11:00:05 294

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

【项目 - B-树的基本操作】 实现B-树的基本操作。基于序列{4, 9, 0, 1, 8, 6, 3, 5, 2, 7}完成测试。 (1)创建对应的3阶B-树b,用括号法输出b树。 (2)从b中分别删除关键字为8和1的节点,用括号法输出删除节点后的b树。 [参考解答]#include #include #define MAXM 10

2017-12-07 10:47:36 169

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

【项目 - 用哈希法组织关键字】 已知一个关键字序列为if、while、for、case、do、break、else、struct、union、int、double、float、char、long、bool,共15个字符串,哈希函数H(key)为关键字的第一个字母在字母表中的序号,哈希表的表长为26。 (1)若处理冲突的方法采用线性探测法,请设计算法,输出每个关键字对应的H(key),输出

2017-12-07 10:46:04 127

原创 第十四周 【项目1 - 验证算法】

#include #define MaxSize 100 //定义最大哈希表长度#define NULLKEY -1 //定义空关键字值#define DELKEY -2 //定义被删关键字值typedef int KeyType; //关键字类型typedef char * InfoType; //其他数据类型

2017-12-07 10:43:58 140

原创 第十三周 【项目3 - 是否二叉排序树?】

【项目 - 是否二叉排序树?】 设计一个算法,判断给定的二叉树是否是二叉排序树。[参考解答] int JudgeBST()是设计的算法对应的实现。#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;type

2017-11-30 10:44:56 131

原创 第十三周 【项目2 - 二叉树排序树中查找的路径】

【项目 - 二叉树排序树中查找的路径】 设计一个算法,输出在二叉排序中查找时查找某个关键字经过的路径。[参考解答] 专为本项目设计的算法体现在函数int SearchBST(…)和void SearchResult()中。#include #include #define MaxSize 100typedef int KeyType;

2017-11-30 10:43:46 153

原创 第十三周 【项目1 - 验证算法】

1、认真阅读并验证折半查找算法。请用有序表{12,18,24,35,47,50,62,83,90,115,134}作为测试序列,分别对查找90、47、100进行测试折半查找#include #define MAXL 100typedef int KeyType;typedef char InfoType[10];typedef struct{ KeyType ke

2017-11-30 10:42:18 380

原创 第十二周 拓扑排序算法验证

[代码]#include #include #include "graph.h"void TopSort(ALGraph *G){ int i,j; int St[MAXV],top=-1; //栈St的指针为top ArcNode *p; for (i=0; in; i++) //入度置初值0

2017-11-30 10:11:23 260

原创 第十二周 Floyd算法验证

[Floyd算法实现] (程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)#include #include #include "graph.h"#define MaxSize 100void Ppath(int path[][MAXV],int i,int j) //前向递归查找路径上的顶点{ int k; k=path[i][j];

2017-11-30 10:06:57 134

原创 第十二周 Dijkstra算法的验证

(图3) #include #include #include "graph.h"#define MaxSize 100void Ppath(int path[],int i,int v) //前向递归查找路径上的顶点{ int k; k=path[i]; if (k==v) return; //找到了起点则返回 Ppath(pa

2017-11-23 13:43:04 168

原创 第十二周 Kruskal算法的验证

(图1) #include #include #include "graph.h"#define MaxSize 100typedef struct{ int u; //边的起始顶点 int v; //边的终止顶点 int w; //边的权值} Edge;void InsertSort(Edge E[],int n

2017-11-23 13:41:03 163

原创 第十二周 Prim算法的验证

#include #include #include "graph.h"void Prim(MGraph g,int v){ int lowcost[MAXV]; //顶点i是否在U中 int min; int closest[MAXV],i,j,k; for (i=0; i//给lowcost[]和closest[]置初值 {

2017-11-23 13:37:54 201

原创 第十一周 纸上谈兵:“知原理”检验题目

1、设图的邻接矩阵为,则该图为__。 A. 有向图 B. 无向图 C. 强连通图 D. 完全图 2、已知一个图,如图1所示,则从顶点a出发按深度优先遍历则可以得到的一种顶点序列为__。 A. a,b,e,c,d,f B. a,c,f,e,b,d C. a,e,b,c,f,d D. a,e,d,f,c,b (图1) 3、画出图1的邻接矩阵和邻接表存储的示意

2017-11-23 13:35:16 222

原创 第十一周 【项目5 - 迷宫问题之图深度优先遍历解法】

【项目 - 迷宫问题之图深度优先遍历解法】   设计一个程序,采用深度优先遍历算法的思路,解决迷宫问题。   (1)建立迷宫对应的图数据结构,并建立其邻接表表示。   (2)采用深度优先遍历的思路设计算法,输出从入口(1,1)点到出口(M,N)的所有迷宫路径。[模型建立]   将迷宫中的每一格作为一个顶点,相邻格子可以到达,则对应的顶点之间存在边相连。   例如,下面的

2017-11-23 11:24:14 346

原创 第十一周 【项目4(2) - 利用遍历思想求解图问题】

(程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)1、最短路径 问题:求不带权连通图G中从顶点u到顶点v的一条最短路径。#include #include #include "graph.h"typedef struct{ int data; //顶点编号 int parent;

2017-11-09 10:27:09 145

原创 第十一周 【项目4(1) - 利用遍历思想求解图问题】

(程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)1、是否有简单路径? 问题:假设图G采用邻接表存储,设计一个算法,判断顶点u到v是否有简单路径。#include #include #include "graph.h"int visited[MAXV]; //定义存放节点的访问标志的全局数组void ExistPath(ALGraph *G

2017-11-09 10:26:19 216

原创 第十一周 【项目3 - 图遍历算法实现】

1、深度优先遍历——DFS(程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)#include #include #include "graph.h"int visited[MAXV];void DFS(ALGraph *G, int v){ ArcNode *p; int w; visited[v]=1; printf("%d

2017-11-09 10:24:59 201

原创 第十一周 【项目2 - 操作用邻接表存储的图】

【项目 - 操作用邻接表存储的图】 假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的出度; (2)求出图G中出度最大的一个顶点,输出该顶点编号; (3)计算图G中出度为0的顶点数; (4)判断图G中是否存在边i,j>。 利用下图作为测试用图,输出结果。  提示:(1)分别设计函数实现算法;(2)不要全部实现完再测试,而是实现一个,测

2017-11-09 10:23:32 292

原创 第十一周 【项目1 - 图基本算法库】

图的存储结构主要包括邻接矩阵和邻接表,本算法库提供存储结构的定义,以及用于构造图存储结构、不同结构的转换及显示的代码。算法库采用程序的多文件组织形式,包括两个文件:      1.头文件:graph.h,包含定义图数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED#define MAXV

2017-11-09 10:22:19 196

原创 第十周 项目5 - 哈曼树

#include #include #define N 50 //叶子结点数#define M 2*N-1 //树中结点总数//哈夫曼树的节点结构类型typedef struct{ char data; //结点值 double weight; //权重 int parent; //双亲结点 int lchild;

2017-11-09 10:20:23 372

原创 第十周 项目4 - 线索化二叉树(中序)

本文是数据结构基础系列(6):树和二叉树中第14课时线索二叉树的例程。#include #include #define MaxSize 100typedef char ElemType;typedef struct node{ ElemType data; int ltag,rtag; //增加的线索标记 struct node *lch

2017-11-09 10:09:03 170

原创 第十周 项目3 - 二叉树的构造

1.由先序序列和中序序列构造二叉树定理:任何n(n≥0)个不同节点的二叉树,都可由它的中序序列和先序序列唯一地确定。证明(数学归纳法) 基础:当n=0时,二叉树为空,结论正确。 假设:设节点数小于n的任何二叉树,都可以由其先序序列和中序序列唯一地确定。 归纳:已知某棵二叉树具有n(n>0)个不同节点,其先序序列是a0a1…an−1;中序序列是b0b1…bk−1bkbk+1…bn

2017-11-09 10:06:07 205

原创 第十周 项目2 - 层次遍历算法

【二叉树的层次遍历算法】   实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。   请利用二叉树算法库。[参考解答](btreee.h见算法库)#include #include "btree.h"void LevelOrder(BTNode *b){ BTNode *p;

2017-11-09 10:03:14 171

原创 第十周 项目1 - 二叉树遍历非递归算法

【二叉树遍历的非递归算法】 实现二叉树的先序、中序、后序遍历的非递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 请利用二叉树算法库。[参考解答](btreee.h见算法库)#include #include "btree.h"void PreOrder1(BTNode *b){ BTNode

2017-11-09 10:01:10 227

原创 第九周 【纸上谈兵:“知原理”检验题目】

1、某树,用括号表示法描述为:A(B(E),C(F,G(I,J),H(K)),D) (1)请用树形表示法,画出这个树 (2)双亲表示法的数据结构定义为typedef struct { ElemType data; int parent;} PTree[MaxSize];12345请描述这个树利用双亲表示法时的存储 (3)用孩子链存储时,每个节点定义下

2017-10-26 10:17:31 482

原创 第九周 【项目3 - 利用二叉树遍历思想解决问题】

【利用二叉树遍历思想解决问题】  假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试:   (1)计算二叉树节点个数;   (2)输出所有叶子节点;   (3)求二叉树b的叶子节点个数   (4)设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数。   (5)判断二叉树是否相似(关于二叉树t1和t2相似的判断:①t1和t2都是

2017-10-26 10:15:46 340

原创 第九周 【项目2 - 二叉树遍历的递归算法】

【二叉树遍历的递归算法】   实现二叉树的先序、中序、后序遍历的递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 [参考解答]#include stdio.h>#include "btree.h"void PreOrder(BTNode *b) //先序遍历的递归算法{ if (b!

2017-10-26 10:12:31 249

原创 第九周 【项目1 - 二叉树算法库】

二叉树的链式存储算法库采用程序的多文件组织形式,包括两个文件:      1.头文件:btree.h,包含定义二叉树的链式存储数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef BTREE_H_INCLUDED#define BTREE_H_INCLUDED#define MaxSize 100typedef char ElemType;typedef struc

2017-10-26 10:08:47 161

原创 第八周(2) 项目3.2-稀疏矩阵的三元组表示的实现及应用

【项目 - 稀疏矩阵相加】   采用三元组存储稀疏矩阵,设计两个稀疏矩阵相加的运算算法 提示1:两个行数、列数相同的矩阵可以相加 提示2:充分利用已经建立好的算法库解决问题[参考解答1](程序中使用的头文件”tup.h”见稀疏矩阵的三元组表示算法库) #include #include "tup.h"bool MatAdd(TSMatrix a,TSMatrix b,T

2017-10-19 11:11:55 283

原创 第八周(2) 项目3.1-稀疏矩阵的三元组表示的实现及应用

稀疏矩阵的三元组表示相关的算法库采用程序的多文件组织形式,包括两个文件:  1.头文件:tup.h,包含定义稀疏矩阵的三元组表示数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef TUP_H_INCLUDED#define TUP_H_INCLUDED#define M 6#define N 7#define MaxSize 100 //矩阵中非

2017-10-19 11:10:47 417

原创 第八周(2) 项目2.2 - 对称矩阵压缩存储的实现与应用

(2)设计算法,实现两个用压缩形式存储的对称矩阵A和B的加法和乘法。实现中请使用好前面设计的基本运算。 【项目 - 压缩存储的对称矩阵的运算】 设计算法,实现两个用压缩形式存储的对称矩阵A和B的加法和乘法。实现中请使用好前面设计的基本运算。[参考解答]#include #define N 4#define M 10int value(int a[],int

2017-10-19 11:08:20 184

空空如也

空空如也

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

TA关注的人

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