赫斌老师数据结构视频查缺补漏笔记
赫斌老师数据结构视频查缺补漏笔记
观看学习赫斌老师数据结构的视频,记录下自己之前学习这块内容时似懂非懂的知识,仅针对自己查缺补漏使用
视频链接:《郝斌老师数据结构自学视频》
1.指针的大小
指针类型占用的内存大小是固定的(无论该指针指向哪种数据类型),在 32 位系统中为 4 字节;在 64 位系统中为 8 字节
指针的大小实际上是由CPU的寻址位数决定
2.结构体和类
结构体中只能包含成员的属性,不可以包含行为,所以结构体中不能直接写一个函数进去
3.字符串重新赋值
字符串指针初始化之后不可以改变值,但是字符串数组可以
字符串数组 和 字符串指针 的区别
4.向函数中传递结构体变量
推荐传递变量的地址,快而且不耗内存
5.关于stdio.h
多数与C语言输入输出相关的函数在<stdio.h>中定义
6.结构体不可以加减乘除,但是可以互相赋值
7.如果想要跨函数使用内存(跨函数赋值),必须传入变量地址,否则函数运行完之后,函数会被释放,函数中定义的局部变量也会被释放
8.typedef
typedef Struct Student
{}*PST; // PST等价于 Struct Student *
typedef Struct Student
{}*PST, ST; // PST等价于 Struct Student * , ST等价于 Struct Student
9.栈的应用
函数调用,表达式求值,中断,内存分配,缓存,迷宫
10.队列
1)静态队列(数组)一般都是循环队列
如果不是循环队列,已经出队的位置将无法储存数据,对长度有限的数组而言队列长度将越来越小直至为零,无法再储存数据。
2)rear指针指向最后一个有效元素的后一个位置
11.队列的应用
所有和时间有关的操作
12.当一个函数运行期间调用另一个函数时,在运行被调函数之前,系统需要完成三件事:
1)将所有的实际参数,返回地址等信息传递给被调函数保存
2)为被调函数的局部变量(也包括形参)分配存储空间
3)将控制转移到被调函数的入口
13.从被调函数返回主调函数之前,系统也要完成三件事:
1)保存被调函数的返回结果
2)释放被调函数所占的存储空间
3)依照被调函数保存的返回地址将控制转移到调用函数
14.递归和迭代的比较
递归:易于理解,速度慢,存储空间大
迭代:不易于理解,速度快,存储空间小
迭代是逐渐逼近,用新值覆盖旧值,直到满足条件后结束,不保存中间值,空间利用率高。
递归是将一个问题分解为若干相对小一点的问题,遇到递归出口再原路返回,因此必须保存相关的中间值,这些中间值压入栈保存,问题规模较大时会占用大量内存。
15.树的定义
满二叉树:在不增加树的层数的前提下,无法再多添加一个节点的二叉树
完全二叉树:只是删除了满二叉树最底层最右端的连续若干个节点形成的二叉树
16.二叉树的连续存储(完全二叉树)
优点:查找某个节点的父节点和子节点(也包括判断有没有子节点)速度很快
缺点:耗用内存空间过大
17.二叉树表示法
把普通树转化成二叉树储存,转换方法:
左指针域指向它的第一个孩子,右指针域指向他的下一个兄弟
18.森林的存储
把不同的根节点当作兄弟,再用二叉树表示法储存
19.已知两种遍历求二叉树
只有通过先序和中序,或通过中序和后序,才可以唯一确定一个二叉树
1)已知先序和中序
中序判断左右节点(根节点左边是左子树,右边是右子树),先序判断根(先出现的为根)
2)已知后序和中序
中序判断左右节点(根节点左边是左子树,右边是右子树),后序判断根(最后出现的为根)
20.树的应用
1)树是数据库中数据组织的一种重要形式
2)操作系统子父进程的关系本身就是一棵树
3)面向对象语言中类的继承关系
赫斌老师数据结构视频查缺补漏笔记相关推荐
- Java 基础开发技术查缺补漏笔记
暑假期间,个人对一些未来研究生阶段可能会常用的编程技术进行重新一轮的系统复习和学习,及希望能够查缺补漏,有所提升.本文也是作为复习和学习过程中的笔记,用于长久的记录.不排除其中可能含有部分疏漏和错误, ...
- MySQL查缺补漏 从无到有
MySQL查缺补漏 从无到有 有这一篇就够了 数据库概述 SQL概述 什么是数据库 MySQL概述 SQL的分类 DOS命令窗口使用MySQL的基本命令 查看MySQL的版本 进入MySQL 导入数据 ...
- JAVA核心,200例,查缺补漏
适用于想要查缺补漏的人:本已经掌握的技术,但是不知道如何表达的人:不断完善技自己,顺带梳理下答案. 主要包括以下模块:Java基础.容器.多线程.反射.对象拷贝.Java Web模块,异常.网络.设计 ...
- 2020年最新最全的Java面试经历整理(一次性查缺补漏个够)
前言 现在已经是2020年了,相信很多人都在准备面试,,如何拿到心仪的 Offer,进入梦寐以求的大厂,实现自己的职业理想,达到程序员的小康水平. 这篇文章主要介绍了刘哥一月份的几次面经,(一次性查缺 ...
- Python高效技巧(三)---查缺补漏(时间处理、shutill模块、高阶函数、装饰器)
Python高效技巧 前言: 函数 1.可接受任意数量参数的函数和关键词参数 2.匿名函数 lambda 二.其他 1.关于序列的各种方法 2.产生器表达式 三. 查缺补漏 1.时间处理 1. cal ...
- EFCore查缺补漏(二):查询
相关文章: EFCore查缺补漏 第 20 轮 TechEmpower 评测结果出炉了,ASP.NET Core 的 Plaintext 成绩名列前茅,带着 EFCore 的测试却在 Single q ...
- I2C总线学习—查缺补漏—S3C2440的I2C控制器
I2C总线学习-查缺补漏-S3C2440的I2C控制器 学习了IIC总线协议的理论部分,觉得应该学习具体操作2440的IIC控制器,毕竟最终都是为了学习S3C2440 ...
- I2C总线学习—查缺补漏—应答信号ACK
I2C总线学习-查缺补漏-应答信号ACK IIC协议规定,当主机作为接收设备时,主机对最后一个字节不应答,以向发送设备(从设备)标识数据传送结束.这是因为每次传输都应得到应答信号后 ...
- I2C总线学习—查缺补漏—对数据有效性的思考
I2C总线学习-查缺补漏-对数据有效性的思考 IIC协议规定:SDA上传输的数据必须在SCL为高电平期间保持稳定,SDA上的数据只能在SCL为低电平期间变化.IIC期间在脉冲上升沿把数据放到SDA上, ...
最新文章
- Android KTV
- 俄称中国航空水平依然较低 歼11没有市场优势
- 基于BitBox的Wormhole SDK 已迭代至1.0.0版本
- BP神经网络 语音信号分类
- C语言符号位补码要变吗,补码与符号位取反
- cudaMemcpy2D介绍
- 画好原理图的几个技巧
- 四窗口卖票 自己的票
- linux下rust编译环境搭建
- 用R读取Excel的新方法
- 根据ASCII码值排序
- python 转盘 圆形,用python实现一个转盘
- IOS逆向学习之路之iPod touch4 越狱心得
- 无限渗透实战(2)--绕过认证上校园网
- Error:NgdBuild:604解决方法
- D2 日报 2019年5月20日
- 常用JAVA面试题库
- vue的调试工具 vue-devtools
- Github每日精选(第66期):擦图老照片修复神器--Lama Cleaner
- 中国联通研报:走出反腐漩涡 与电信抱团取暖