- 博客(37)
- 收藏
- 关注
原创 【浙大数据结构学习笔记】习题选讲:逆转链表
要求: 给一个单链表的头结点Head和一个整数K,要求每K个结点逆转一下,并将逆转后的头结点返回给用户分析: 为了方便操作,头结点Head是空结点,头结点后一个结点才是第一个结点。用三个结点指针new、old、temp辅助实现链表逆转。其中,结点指针new指向已完成逆转的链表的头结点,结点指针old指向未完成链表逆转的老链表的头结点,结点指针temp指向old的下一个结点,用于记录地址。K个结点逆转用K次循环实现,在每次循环中调整结点指针的指向。代码:Ptr ReverseLinkedList(Pt
2020-08-23 09:44:11 331
原创 【浙大数据结构学习笔记】4.2 平衡二叉树
目录平衡二叉树平衡二叉树的调整左单旋右单旋左右双旋右左双旋插入平衡二叉树平衡因子: BF=hL - hR ,即左右树高的差。定义: 空树,或者平衡因子 | BF(T) |<=1#define ElementType int;typedef struct AVLNode *Position;typedef Position AVLTree;struct AVLNode{ ElementType Data; AVLTree Left,Right; int Height;};平衡二
2020-08-22 16:49:18 348
原创 【浙大数据结构学习笔记】4.1 二叉搜索树
目录二叉搜索树查找查找最值插入删除二叉搜索树定义:非空左子树的所有键值小于其根结点的键值非空右子树的所有键值大于其根结点的键值左右子树都是二叉搜索树#define ElementType inttypedef struct TNode *BinTree;typedef BinTree Position;struct TNode{ ElementType Data; BinTree Left,Right;};查找Position Find(ElementType X,Bi
2020-08-22 16:16:10 382
原创 【浙大数据结构学习笔记】3.4 二叉树的遍历
目录3.4 二叉树的遍历先序遍历中序遍历后序遍历层次遍历3.4 二叉树的遍历有四种方法:先序、中序、后序和层次遍历。用链式存储结构:typedef struct TreeNode *Position;typedef Position BinTree;struct TreeNode{ Element Data; BinTree Left,Right;};先序遍历先访问根结点,再遍历左子树、右子树。void PreOrderTraversal(BinTree BT){ if(BT)
2020-08-16 15:42:09 281
原创 【浙大数据结构学习笔记】3.3 二叉树
目录二叉树特殊二叉树存储结构顺序存储结构链式存储结构二叉树特殊二叉树斜二叉树:除叶子结点外,其余结点都只有左子树或者右子树。完美二叉树或满二叉树:除叶子结点外,其余结点都既有左子树又有右子树。完全二叉树:按从上至下,从左至右的顺序给结点编号,编号为 i 的结点位置与满二叉树中编号为 i 的结点位置相同。存储结构可以用顺序存储结构和链式存储结构。顺序存储结构用数组进行存储,这样空白结点也需要存储,造成空间浪费。链式存储结构相比顺序存储结构,更能节省空间。typedef struc
2020-08-15 21:15:27 161
原创 【浙大数据结构学习笔记】3.2 树的查找
目录3.2 树的查找静态查找之顺序查找动态查找之二分查找3.2 树的查找树的基本操作之一就是查找,它分为两类:静态查找和动态查找。静态查找: 查找的同时集合中的记录没有删除和插入操作动态查找: 查找的同时集合中的记录有删除和插入操作静态查找之顺序查找动态查找之二分查找...
2020-08-15 20:50:32 244
原创 【浙大数据结构学习笔记】3.1 树
目录树树的定义什么是非树树的查找三级目录树树的定义定义: n(n>=0)个结点构成的有限集合当n=0时,为空树对任意一颗非空树,具有以下性质;树的管理方法: 分层次组织什么是非树树的查找三级目录...
2020-08-15 20:07:47 106
原创 【浙大数据结构学习笔记】1.3、什么是数据结构
最大子序列和问题陈越老师分别介绍了四种算法,复杂度逐步降低。由最初的NNN到N*N再到Nlog N,最后降为N。后面两种算法没有理解,回顾时再看。nt MaxSubSeqSum1(int A[],int N){ int ThisSum,MaxSum=0; for(int i=0;i<N;i++) { for(int j=i;j<N;j++) { for(int k=i;k<=j;k++) { ThisSum+=A[k]; if(ThisSum
2020-08-08 09:39:00 163
原创 【浙大数据结构学习笔记】1.2、什么是算法
定义:例1 :选择排序的伪码描述什么是好的算法?空间复杂度S(n): 根据算法写成的程序在执行时占用存储单元的长度。这个长度 往往与输入数据的规模有关 。空间复杂度过高的算法可能导致使用的内存超限,造成程序非正常中断时间复杂度O(n): 根据算法写成的程序在执行时耗费时间的长度。这个长度 往往也与输入数据的规模有关 。时间复杂度过高的低效算法可能导致我们在有生之年都等不到运行结果递归输出 1~100000 :调用函数之前,系统需要将当前这个函数所有的现有的状态都存到系统内存
2020-08-08 09:38:11 197
原创 【浙大数据结构学习笔记】2.4 一元多项式的加乘法运算实现
目录2.4 一元多项式的加乘法运算实现加法运算乘法运算代码实现运行结果2.4 一元多项式的加乘法运算实现加法运算算法:首先判断多项式P1当前项指数和多项式 P2当前项指数的大小关系多项式P1当前项的指数比多项式P2当前项的大: 将多项式P1当前项插在结果多项式后面,P1的位置指针后移,P2的不变。多项式P1当前项的指数比多项式P2当前项的小: 将多项式P2当前项插在结果多项式后面,P2的位置指针后移,P1的不变。多项式P1当前项的指数和多项式P2当前项的一样大: 如果多项式P1当前项的系数和
2020-08-07 12:17:16 607
原创 【浙大数据结构学习笔记】2.3.2 队列的链式存储实现
目录2.3.2 队列的链式存储结构二级目录三级目录2.3.2 队列的链式存储结构二级目录三级目录
2020-08-05 12:59:04 191
原创 【浙大数据结构学习笔记】2.3.1 队列的顺序结构存储实现
目录2.3.1 队列的顺序结构存储实现什么是队列队列的顺序结构存储实现非顺环队列顺环队列2.3.1 队列的顺序结构存储实现什么是队列定义: 具有一定操作约束的线性表。只能在一端插入,在另一端删除。插入数据: 入队列删除数据: 出队列特点: 先进先出(FIFO)队列的顺序结构存储实现队列的顺序存储结构通常由一个一位数组和一个记录队列头元素位置的变量front和一个记录队列尾元素位置的变量rear组成。非顺环队列插入元素,rear+1;删除元素,front+1判断队列空:rear== f
2020-08-01 17:16:54 272
原创 【浙大数据结构学习笔记】2.2.2-例题:实现用一个数组实现两个堆栈,要求最大的利用数组空间
题目: 请用一个数组实现两个堆栈,要求最大的利用数组空间,使数组只要有空间入栈操作就可以成功。思路:中间为栈底,两头为栈顶两头为栈底,栈顶向内扩张很明显,思路2符合要求。 思路1 虽然实现了用一个数组实现两个堆栈,但是当stack1满,而stack2未满时,再无法向stack1插入元素,同时因stack2的剩余空间无法得到使用而造成了空间浪费。思路2不存在stack1或者stack2满的限制,直到两个堆栈占满整个数组空间才无法继续压入元素。因此,思路2 不仅实现了用一个数组实现两个堆
2020-08-01 16:22:48 440
原创 【浙大数据结构学习笔记】2.2.3 堆栈的链式结构存储实现
目录2.2.3 堆栈的链式结构存储实现代码实现运行结果2.2.3 堆栈的链式结构存储实现定义: 栈的链式存储结构实际上是一个单链表,又称链栈。插入和删除操作只能在栈顶(链表的尾部——表尾)进行。代码实现包括了建立空堆栈、入栈出栈和判断堆栈空。#include "stdio.h"#include "stdlib.h"#define ERROR -2typedef struct SNode *PtrToSNode;//ptr(pointer)指针的缩写 ,PtrToSNode——指向SNode
2020-08-01 10:22:35 211
原创 【浙大数据结构学习笔记】2.2.2 堆栈的顺序结构存储实现
目录2.2.2 堆栈的顺序结构存储实现代码实现运行结果2.2.2 堆栈的顺序结构存储实现堆栈的顺序存储结构通常由一个一位数组和一个记录栈顶位置的变量组成。代码实现包括了建立空堆栈、入栈、出栈、判断栈空栈满等函数的实现。#include "stdio.h"#include "stdlib.h"#define ERROR -2typedef int Position; struct SNode{ int *Data; Position top; int MaxSize;};type
2020-08-01 09:20:43 198
原创 【浙大数据结构学习笔记】2.2.1 什么是堆栈
目录2.2.1 什么是堆栈定义特点图示2.2.1 什么是堆栈定义堆栈是具有一定约束的线性表。它只能在一端(栈顶)进行插入和删除操作。插入数据:入栈删除数据: 出栈特点后出先入( Last In First Out)图示...
2020-08-01 08:42:17 146
原创 【浙大数据结构学习笔记】2.1.4 广义表和多重链表
目录2.1.4 广义表和多重链表广义表多重链表稀疏矩阵2.1.4 广义表和多重链表广义表定义:广义表的元素不仅可以是一个单元数,还可以是另一个广义表。它是线性表的推广,线性表的n个元素都是基本的单元素。typedef struct GNode *GList; struct LNode{ int Tag;//标志域;1-广义表;0-单元素 union{//子表指针域SubList和单元素Data复用,即公用存储空间 int Data; GList SubLi
2020-07-29 18:27:32 416 1
原创 【浙大数据结构学习笔记】2.1.3 线性表的链式结构实现
目录2.1.3 线性表的链式结构实现求表长查找插入删除2.1.3 线性表的链式结构实现线性表的顺序存储结构的物理地址是相邻的,而线性表的链式存储结构的物理地址可以不相邻,通过“链”建立起数据元素之间的逻辑关系。typedef struct LNode *List; struct LNode{ int Data; List Next; };求表长int Length(List PtrL){ List p=PtrL; int j=0; while(p){ p=
2020-07-29 17:09:44 249
原创 【浙大数据结构学习笔记】2.1.2 线性表的顺序存储实现
目录2.1.2 线性表的顺序存储实现什么是线性表线性表的顺序存储实现初始化查找插入删除展示测试主函数结果输出2.1.2 线性表的顺序存储实现什么是线性表由同种数据元素构成的有序序列的存储结构。线性表的元素个数称为表长;线性表没有元素时称为空表;线性表的起始位置称为表头,线性表的结束位置称为表尾。线性表的顺序存储实现#define MAXSIZE 10typedef struct LNode *List; struct LNode{ int Data[MAXSIZE]; i
2020-07-29 11:35:43 257
原创 【浙大数据结构学习笔记】2.1.1 引子——多项式的表示
目录2.1.1 引子——多项式的表示二级目录三级目录2.1.1 引子——多项式的表示二级目录f(x)=a0+a1x+⋯+an−1xn−1+f(x)=a_0+a_1x+\cdots+ a_n-1x^n-1+f(x)=a0+a1x+⋯+an−1xn−1+三级目录
2020-07-29 09:09:15 266
原创 【Git&Github学习】Git下载安装及其问题记录
目录Git下载安装及其问题记录Git下载及其使用教程问题记录Git下载安装及其问题记录Git下载及其使用教程Git下载安装及其使用教程可参照博客:Git的下载安装以及基本操作 。该博客在介绍Git的同时,引入了github,下期将记录github的学习历程。问题记录此次问题表象是 点击 “git bash here” 没反应,在查阅资料的过程中发现点击 “git bash here” 闪退问题的解决方法是替换 null.sys 文件,但是尝试多个null.sys 文件无果,也试过其他很多博主介绍
2020-07-24 20:57:59 257
原创 【浙大数据结构学习笔记】1.1、什么是数据结构
目录浙大数据结构学习笔记之第一讲什么是数据结构什么是数据结构什么是算法最大子序列和问题浙大数据结构学习笔记之第一讲什么是数据结构什么是数据结构什么是数据结构?没有明确定义,陈越老师用 例1:如何摆放书架上的书籍 来引入。要求:图书的摆放要使两个相关操作得以方便实现:、操作1:新书怎么插入?操作2:已插入图书怎么寻找?相对不好的实现方法:随便放按照字母顺序进行查找这两类方法在数量大时都不易查找,量小时无所谓。相对较好的实现方法:操作1:新书怎么插入?将图书分为不同的类别,
2020-07-23 12:25:55 207
原创 【python入门学习】python中的类
目录python学习之类创建和使用类继承python学习之类今天回顾《Python编程:从入门到实践》的第10章类,作梳理记录之用。如有错误,还请各位指正。创建和使用类在python中,首字母大写的名称指类。类包括属性和方法。简单记录下修改属性,其余不多赘述。修改属性:直接赋值我们可以在类的外面,通过重新赋值属性来改变属性的值。例如:class Car(): def __init__(self, make, model, year): """初始化描述车的属性"""
2020-07-13 16:39:31 128
原创 【python入门学习】python学习简单记录之函数
目录python学习之函数函数定义形参和实参返回值python学习之函数今天回顾《Python编程:从入门到实践》的第9章函数,作梳理记录之用。如有错误,还请各位指正。函数定义用关键字def告诉python定义一个函数,以缩进告诉python哪是函数体。形参和实参形参和实参的定义和c语言里是一样的,这里不做解释。不过,要介绍一下python中传递实参的多种方式:位置实参、关键字实参和默认值。位置实参: 基于位置顺序关联形参的方式。关键字实参: 此时,在形参列表中必须先列出没有使用
2020-07-13 15:32:06 122
原创 【python入门学习】在pycharm中安装pygame和matploylib
目录在pycharm中安装pygame和matploylib在pycharm导入第三方库在pycharm中导入库,但未用pip installxxx安装库在pycharm中安装pygame和matploylib之前介绍了在windows系统中用pip安装pygame和matplotlib,但如果不在pycharm中导入该库的话,也无法在pycharm中使用该库。这里将介绍怎么在pycharm导入第三方库。在pycharm导入第三方库打开pycharm,点击File,点击settings…找到
2020-07-09 10:09:49 689
原创 【python入门学习】在windows系统中安装matplotlib
目录标题在windows系统中安装matplotlib安装pip在windows系统中安装matplotlib今天学到了《Python编程:从入门到实践》的实践项目2——数据可视化,这也是python在数学建模中常用的一种应用。安装pip可参阅:在windows系统中安装pip和pygame...
2020-07-09 09:07:50 657
原创 【python入门学习】在windows系统中安装pip和pygame
目录标题在windows系统中安装pip和pygame安装pip更新pip到最新版本用pip安装pygame在windows系统中安装pip和pygame今天学到了《python编程:从入门到实践篇》的实践项目1——外星人入侵,首先要安装pygame模块。安装pip大多数较新的python版本都自带pip,因此先检查pip是否已经安装,有两种方法。法一:cmd输入: C:\Users\dell>python -m pip --versioncmd输出:pip 19.2.3 from
2020-07-08 07:47:28 338
原创 工程正确配置的重要性
最近在用STC15F2K06S2单片机,Keil5软件编写串口收发信息的程序,代码写的无误,但是就是无法实现收发,在朋友的帮助下,发现是工程不知道怎么出了岔子,导致功能不能实现,新建工程,复制代码过去,就可以实现了。但是为什么之前工程好好的,突然就不行了呢。。。???...
2019-01-03 17:58:14 141
转载 计算机组成原理——存储器系统
本文转自:https://blog.csdn.net/ljf_study/article/details/77154344 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ljf_study/article/details/7715434...
2018-12-30 17:03:10 3627
转载 转:L298N的原理图以及程序实现
最近在做寻迹小车,电机驱动遇到问题,博主有关L298N的介绍写的很不错,收藏一波! 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/P_xiaojia/article/details/79310858 </div> <div id="content_v...
2018-12-20 09:27:53 46990 7
转载 STC15F系列单片机的定时器频率
本文为转载文章!在迷离与定时器计数加1对应时间的时候,看到这篇好文章,转载已方便日后查阅!感谢作者!!! 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/heiheiwocao/article/details/77506166 ...
2018-12-05 13:53:30 2170
转载 16进制的输出格式
原创文章地址:https://blog.csdn.net/liugan5371375/article/details/51724392 本文为转载文章,为了回忆c语言基本语法之用。aim:测试十六进制的不同输出方式,%x,%X,%#x,%#X;*/#include <stdio.h>#include <stdlib.h>int length(char ...
2018-10-06 10:43:37 3458
转载 函数返回数组
本文转自:https://blog.csdn.net/earbao/article/details/53401800 关于C语言函数返回一个数组c语言中函数不能直接返回一个数组,但是可以用其他方式实现类似功能,不过需要注意:1、该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放。可以是全局变量,静态局部变量,动态分配内存,以及从函数参数传过来的数组地址。2、返...
2018-09-13 11:36:45 3056
转载 CSDN如何转载博客及注意事项
作为一个初学者,当遇到自己喜欢的博客,就可以转载到自己的博客里,方便日后使用。当然要尊重原创版权,表明出处。本文的参考博客地址如下,当然他也是参考别人的,嘿嘿嘿! 参考原博客地址:https://blog.csdn.net/zhongjianblackberry/article/details/79456338 ...
2018-09-12 10:14:39 318
原创 error:expected declaration or statement at end of input
这是英文翻译 此错误提示会在函数使用前没有声明或者少了一个括号的情况下出现。 比如此处,switch和for循环都少了一个括号,所以出现错误提示,以后要注意!...
2018-08-30 09:14:06 1106
原创 warning:iteration 7 invokes undefined behavior
这里是因为定义FP_Request_Buffer数组时只开了28位,而下标却到了32造成的溢出错误.
2018-08-29 21:38:09 6853 1
原创 usart_register_callback();函数使用经验
原代码如下: void config_ble_usart(void) { struct usart_config config_usart; usart_get_config_defaults(&config_usart);config_usart.baudrate=19200;config_usart.mux_setting=USART_RX_3_TX_2_...
2018-07-31 09:03:59 2697
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人