自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 区块链必备基础知识(4-6)--Geek学习笔记

区块链必备基础知识 第四讲到第六讲第四讲 区块链的核心问题第五讲 “区块链”进一步定义第六讲 所有权的本质 第四讲 区块链的核心问题 面对像羊群一样各自独立的计算机集群,牧羊犬在哪里。 点对点系统中的信任与完备性 在软件系统当中,完备性是对一个系统非功能性特征的描述:安全,完整,持久,正确,并且不会失控和产生错误。而信任则引申至人类之间对可靠,真相以及对一些事或人无理由的相信。 在点对点系统中,人们如果相信这个点对点系统,并且这个系统的运作结果增强了他们的信任,他们就会进一步进入这个系统,并且持续给这个

2021-07-04 21:01:06 703 2

原创 区块链必备基础知识(1-3)--Geek学习笔记

区块链基础知识上第一讲理解分层的概念第二讲纵观全局 第一讲理解分层的概念 我们使用两种方法来对软件系统进行分割。 1.应用层和实现层 主观上对系统按照用户需求和内在技术原理进行划分,其实是在区分应用层和实现层。应用层是从用户需求出发的。实现层中的一切都是使得这些需求落地实现的内容,实现层中的所有内容本质上都是技术性的,并且都会被当作达到目标的方法。 2.功能性和非功能性 考虑一个系统能够做什么和这个系统做的怎么样是由区别的,这就是对系统功能性和非功能性划分的基础。 对于一个软件系统,我们可以再识别其技术性特

2021-07-02 23:13:42 2418 3

原创 数组的快速排序

#include<stdio.h> int kp1(int a[],int l,int h){ int p=a[l]; //使用p来记录枢轴的值 while(l<h){ //推出条件,头尾指针相等 while(l<h&&a[h]>p)h--; //从尾部开始找到第一个不符合规定的与头交换 a[l]=a[h]; while(l<h&&a[l]<p)l++; //从头开始找到第一个不符合的与尾交换 a[h]=a

2020-12-30 12:11:46 259 1

原创 数组插入排序

#include<stdio.h> int main(){ int i,j; int a[8]={0,1,2,3,4,5,6,7}; for(i=2;i<8;i++){ a[0]=a[i]; //用哨兵来记录要插入的数值 for(j=i-1;a[j]>a[0];j--){ a[j+1]=a[j]; //一个一个后移,直到找到合适的插入位置 } a[j+1]=a[0]; } for(int i=1;i<8;i++){ printf("%

2020-12-30 10:25:50 230 1

原创 链表的选择排序

用c简单实现了一下链表的选择排序~ #include<stdio.h> #include<malloc.h> typedef struct list{ int data; list* next; }*listd; void pr(listd head){ //选择排序 listd q,p,r; int s; for(p=head->next;p!=NULL;p=p->next){ r=p; for(q=p->next;q!=NULL;q=q-&g

2020-12-30 09:02:21 544 2

原创 归并排序之递归实现

归并算法很有意思哈!它可以指定开始位置和结束位置,只对其中的某一段进行排序,它的定义是把两个或两个以上的有序表组合成一个新的序表,这种方法我们称它二路归并排序,他的算法实现也是很奇妙的,接下来看一下代码吧! #include<iostream> using namespace std; int *p=new int[100]; //为合并两段的元素做一个备份数组 void mer(int h[], int a, int b, int c) { //a代表第一段的头,b代表第一段的尾,c代表第二段

2020-12-12 12:01:31 131 1

原创 堆排序之小根堆实现

我把堆排序算法拿出来给大家看看,这个算法在我的学生成绩管理系统里也有体现,注意:数组的0下标是不存任何数据的,因为是完全二叉树,根节点的坐标是1才有利于进行计算。 #include<iostream> using namespace std; void stack(int a[], int k, int len);//调整堆 void stack1(int a[], int len);//从最后一个的双亲结点开始反复调整堆 void stacksum(int a[], int len);//堆

2020-12-11 17:42:56 828 3

原创 哈夫曼编码长度及输出

最近又有小伙伴问我哈夫曼的输出问题了,我想了一下,上次写算法只需要求频率,偷懒的我求出频率来就不管了,再三考虑还是再写一下哈夫曼树的输出问题吧,毕竟写个算法要写完整不是吗?来吧走起! #include<iostream> #include<string.h> using namespace std; #define max 100 typedef struct{ int quanzhi; int zuofu,youfu,zuo,you; }tree; int quchong(c

2020-12-09 18:53:17 1391

原创 最新的去重算法

从前写的那个关于去重的算法可能出现了一些问题,由于受到某些固定思想的限制,总想着去前移覆盖重复元素导致了思维受限,最近突发奇想,想到了一个很容易理解并且也很实用的算法,简单至极,看一遍就懂。 #include<iostream> using namespace std; #define max 100 int quchong(int *p,int n,int *a); int quchong(int *p,int n,int *a){ //p是原来的数组,n是数组的长度,a是未进行赋值的新数组

2020-12-09 18:33:00 324 2

原创 学生成绩管理系统~

为了迎接即将到来的数据结构实训,我终于抽时间提前把学生信息管理系统给敲完了,因为我没有学过做数据保存的功能,在这里我就不写了,有兴趣的朋友可以学一下再加进去那就完美了! #include<iostream> #include<malloc.h> #include<string.h> using namespace std; struct student{ char name[10],sex[3],student_id[20],id_number[20]; int

2020-11-29 15:59:40 765

原创 BFS算法详解

大佬们的代码函数居多,缺少底层算法,新手理解起来比较困难,在这里我详细讲一下BFS最短路径的思想和代码哈! 首先做一下准备工作: 1. 首先我们需要一个图是吧,我这里使用邻接表存储的,比较容易理解一些。 2. 我们还需要一个队列,队列是先入先出,很符合依次访问遍历的顺序。 3. 然后就是两个数组,一个用来记录此结点是否被访问,另一个来记录从某节点开始到各个结点的最短路径长度。 4. 关于队列的操作有入队,出队,判断队空,当然最后再来个初始化的操作,这些最好先用方法实现,不要写在主函数内,否则会让我们的代码看

2020-11-24 09:17:49 896 1

原创 哈夫曼编码长度输出

这个算法用到了去重的算法,构造哈夫曼树的方法。看看我的代码实现吧! typedef struct{ int quanzhi; int fu,zuo,you; }tree; 先定义一个结构题,里面有权值,父亲,左孩子和右孩子。 void hfm_tree(tree *hfm,int *s,int n){ //构建哈夫曼树,传参结构体数组,权值,结点数 int i,j,m1,m2,x1,x2; for(i=0;i<2*n-1;i++){ //初始化 hfm[i].quanzhi=0;

2020-11-08 17:04:14 631

原创 中缀表达式转后缀表达式算法

判断条件都是我经过多次测试出来的,每次都加上一点,也是耗时比较长的,在这里我并不想借鉴别人的代码,因为我觉得一个算法题每一次的测试每一次的修改不仅仅时加强了我对这个算法题的了解,更提高了我的耐心和心态,使我可以静下心来去思考,不会因为长时间没有看到成效而去放弃,我有时候感觉我真的很笨,但我觉得这并不是天生的,这跟我以前沉迷于游戏,只会去接受别人的东西有很大的关系,失去了独立思考的能力,再好的工具如果不经常使用终将会坏掉。言归正传,来分享一下今天我做出来的这个算法题吧! #define MaxSize 50

2020-10-31 12:49:44 1742 4

原创 栈的链表逆置

通过题目我们知道这个题需要使用链表方面的知识,首先对链表不熟悉的小伙伴们可以先去复习一下链表,了解一下单链表的各种基础操作。要实现链表的逆置,我第一时间想到的就是栈,因为栈的特点就是先入后出,想到就去实现。 typedef struct lnode{ int data; //定义单链表 lnode *next; }lnode,*list; typedef关键字是给数据类型取别名的意思,后面的list指针是为了让后面使用起来更方便,不需要每次都定义指针了。 void lt(list &l).

2020-10-28 08:08:27 2619

空空如也

空空如也

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

TA关注的人

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