自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构与算法18——散列表(哈希表)

散列表(哈希表)查找我们要在a[ ]中查找key关键字的记录:—— 顺序表查找:挨个儿比较—— 有序表查找:二分法查找—— 散列表查找:?散列表的查找步骤当存储记录时,通过散列函数计算出记录的散列地址当查找记录时,我们通过同样的是散列函数计算记录的散列地址,并按此散列地址访问该记录。构造散列函数的两个基本原则好的散列函数 = 计算简单+分布均匀直接定址法—— 例...

2019-08-25 13:44:56 941

原创 编程中,循环、迭代和递归之间的区别

循环算是最基础的概念, 凡是重复执行一段代码, 都可以称之为循环. 大部分的递归, 遍历, 迭代, 都是循环。递归的定义是, 根据一种(几种)基本情况定义的算法, 其他复杂情况都可以被逐步还原为基本情况。在编程中的特征就是, 在函数定义内重复调用该函数。例如斐波那契数列, 定义F(0)=1, F(1)=1, 所有其他情况: F(x)=F(x-1)+F(x-2)所有大于1的整数经过有限次的反...

2019-08-25 12:53:03 1257

原创 数据结构与算法17——排序总结

2019-08-25 12:16:48 152

原创 数据结构与算法16——堆排序

一、完全二叉树定义:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。二、堆大顶堆:小顶堆:由以上图片可知:根结点一定是堆中所有结点最大或者最小者,如果按照层序遍历的方式给结点从1开始编号,则结点之间满足如下关系:下标i与2i和2i+1是双亲和子女关系。那么大顶堆和小顶堆用层序遍历存...

2019-08-22 16:01:08 412

原创 网络通信协议(互联网协议)

一、操作系统基础操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。注:计算机(硬件)->OS->应用软件二、网络通信原理2.1 互联网的本质就是一系列的网络协议一台硬设有了操作系统,然后装上软件你就可以正常使用了,然而你也只能自己使用像...

2019-08-19 15:00:13 4883

原创 数据结构与算法15——冒泡排序

排序的基本概念与分类通过例子消化概念:在排序问题中,通常将数据元素称为记录。——显然我们输入的是一个记录集合,排序后输出的也是一个记录集合。——所以我们可以将排序看成是线性表的一种操作。排序的依据是关键字之间的大小关系,那么对同一记录集合,针对不同的关键字进行排序,可以得到不同序列。排序的稳定性影响排序算法性能的几个要素时间性能辅助空间算法的复杂度一、冒泡排...

2019-08-08 14:50:54 293

原创 数据结构与算法14——二叉树的建立和遍历算法

题目要求:建立二叉树并输出每个字符所在的层数。#include <stdio.h>#include <stdlib.h>typedef char ElemType;typedef struct _BiTNode{ char data; struct _BiTNode *lchild, *rchild;}BiTNode,*BiTree;...

2019-08-07 16:37:37 164

原创 数据结构与算法13——二叉树和二叉链表

一、二叉树的定义—— 每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。—— 左子树和右子树是有顺序的,次序不能颠倒。—— 即使树中的某结点只有一颗子树,也要区分是左子树还是右子树。(就像人的左右手,左手拿碗,右手拿筷子)二、二叉树的五种基本形态空二叉树只有一个根结点根结点只有左子树根结点只有右子树根结点既有左子树又有右子树对于很二的二叉树,由于要区分左右,所以...

2019-08-07 15:29:13 1533

原创 数据结构与算法12——树和树的存储结构

这是本次学习的第二个数据结构:树。之前我们一直讨论的是一对一的线性结构,无论是线性表也好,栈和队列也罢,都是2p模式。可是现实生活中,3p、4p等现象比比皆是,例如一个年轻的妈妈生了4个孩子,而每个孩子都不像他们的爸爸,那么这类情况我们用线性结构的形式就不足以描述了!所以我们需要研究这种一对多的数据结构:树。一、树的定义树(Tree)是n(n>=0)个结点的有限集。当n=0时成为空...

2019-08-07 14:40:26 266

原创 数据结构与算法11——队列

什么是队列?这就是队列这不是队列队列的定义:队列(queue)是只允许在一端进行插入操作,而在另外一端进行删除操作的线性表。与栈相反,队列是一种先进先出的线性表。与栈相同的是,队列也是一种重要的线性结构,实现一个队列同样需要顺序表或者链表作为基础。我们的输入缓冲区接受键盘的输入就是按队列的形式输入和输出的,不然的话就很容易出问题。例如有一天你突然心血来潮,企鹅发一句“ Y...

2019-08-06 17:11:46 168

原创 数据结构与算法10——栈(二进制转化为十进制数)

栈是一种重要的线性结构,可以这样讲,栈是前面所讲过的线性表的一种具体形式。栈的最大特点就是后进先出。(就像子弹一样,最后进的子弹,最先出枪口)栈的定义官方定义:栈(Stack)是一个后进先出的线性表,它要求只在表尾进行删除和插入。简单的理解:所谓的栈,其实也就是一个特殊的线性表(顺序表、链表),但是它在操作上有一些特殊的要求和限制:栈的元素必须“后进先出”;栈的操作只能在这个线性表...

2019-08-06 14:15:54 1826 1

原创 数据结构与算法9——双向链表

双向链表结点结构typedef struct _DualNode{ ElemType data; struct _DualNode *prior; // 前驱结点 struct _DualNode *next; // 后继结点}DualNode;双向链表的插入操作插入操作其实并不复杂,不过顺序很重要,千万不能写反了。双向链表的删除操作双向链表可以有效地提高算法的...

2019-08-05 21:05:06 216

原创 数据结构与算法8——循环链表(约瑟夫问题)

循环,顾名思义就是:绕。单链表不从头结点出发,就无法访问到全部的结点。事实上要解决这个问题也并不麻烦,只需要将单链表中终端结点的指针端由空指针改为指向头结点,问题就解决了。将单链表中终端结点的指针端由空指针改为指向头结点,就使得整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。约瑟夫问题据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后...

2019-08-04 16:20:08 337

原创 数据结构与算法7——单链表小结(腾讯面试题)

题目:快速找到未知长度单链表的中间结点。既然是面试题就一定有普通方法和高级方法,而高级方法无疑会让面试官大大加分!普通的方法很简单,首先遍历一遍单链表以确定单链表的长度L。然后再次从头结点出发循环L/2次找到单链表的中间结点。算法复杂度为:O(L+L/2)=O(3L/2)。能否再优化呢?有一个很巧的方法:利用快慢指针!利用快慢指针原理:设置两个指针*search、 *mid 都指向单链表...

2019-08-03 16:49:47 383

原创 数据结构与算法6——单链表与顺序存储结构优缺点

我们学习线性表最主要的就是学习单链表

2019-08-03 15:08:21 546

原创 数据结构与算法5——单链表的整表创建和删除

——对于顺序存储结构的线性表的整表创建,我们可以用数组的初始化来直观理解。——而单链表和顺序存储结构就不一样了,它不像顺序存储结构数据这么集中,它的数据可以是分散在内存各个角落的,它的增长也是动态的。——对于每个链表来说,它所占用空间的大小和位置是不需要预先分配划定的,可以根据系统的情况和实际的需求即时生成。——人生的追求就要像单链表一样,灵活应变!单链表整表创建的算法思路如下:声明一...

2019-08-03 14:32:21 567 2

原创 数据结构与算法4——链式存储结构

前面所讲的线性表的顺序存储结构,它最大的缺点就是插入和删除时需要移动大量元素,这显然就需要耗费时间。线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以在内存中未被占用的任意位置。比起顺序存储结构每个数据元素只需要存储一个位置就可以了。现在链式存储结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址(指针)。一、链式存储结构定义我们把存储数据元...

2019-08-02 15:26:03 1238

原创 数据结构与算法3——线性表性质与顺序存储结构

这是本次学习的第一个数据结构:线性表。首先通过图片感受一下,线性表的特征。——大家姑且可以把这幅图想象为老师带领同学们外出野营。因为咱们的队伍比较强大,要记住每一位同学并且区分还真是一件不容易的事。——所以咱们想到了一个办法,让大家按照一个约定排成一队,以后大家要怎么记住自己的位置呢?没错,大家只需要记住自己前面的同学就可以了。——老师也可以很容易的清点人数,万一有人走丢,也能在最快时间...

2019-08-01 15:59:07 534

示波器采集系统软件设计.zip

本文设计的数据采集系统是通过下位机微控制器采集信号,由Andriod平板电脑接收采集信号,并且完成对信号的存储和处理。该系统软件是基于Qt平台、采用C++语言编程设计的,并且利用无线WIFI网络通信,接收来自下位机的实时数据,利用QCustomPlot工具在用户界面完成二维曲线的绘制。测试和实际应用结果表明,开发完成的信号示波器软件,可在平板电脑Andriod操作系统上运行,提高了数据采集和处理的效率。

2020-05-17

空空如也

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

TA关注的人

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