Bootstrap

第二周总结:读资料总结

目录

一:作业本怎样做节省时间,来源知乎

 二:Re: 从零开始的程序设计竞赛(五)

三:结构体&结构体数组

四:类和对象

五:二分查

六:递归、深度优先搜索、记忆化搜索、DP动态规划(不熟练)

七:线性表(不熟练)

八:二叉树(看不懂没学会)

九:指针(有些难)

十:总结


一:作业本怎样做节省时间,来源知乎

错题本怎么做省时间? - 知乎 (zhihu.com)

  1. 认真对待试卷,把各科试卷用小夹子整理好
  2.  不能在整理错题上浪费太多时间,不能天天整理错题,假装自己很努力
  3. 不要整理一些没用的,自己未来从来不会再碰一次的错题。
  4. 不要把题目直接抄到错题本上,而是要再做一遍
  5. 错题本一定要随时翻阅,要不记了没用
  6. 不要用手机记错题,可能记一道题玩一小时

 二:Re: 从零开始的程序设计竞赛(五)

Re: 从零开始的程序设计竞赛(五) - 知乎 (zhihu.com)

  1. 不要天天和那些很简单的水题玩,没有意义,不能提高实力
  2. 做题要独立完成,不能查CSDN博客园
  3. 做题后一定要总结,不能一直刷题

三:结构体&结构体数组

(2条消息) 结构体&结构体数组_pl0020的博客-CSDN博客_结构体数组

(2条消息) C语言结构体数组,结构体数组的定义,结构体数组的输出,结构体的应用_北芳科技的博客-CSDN博客_结构体数组

  1. 在题目中可以避免出现超大数组无法编译问题
  2. 比较成员中某一项的值
  3. 结构体数组中的a[i]就像一个对象,而不是一个值

四:类和对象

(2条消息) C++学习:对象和类详细总结_谢小小XH的博客-CSDN博客_c++类和对象

  1.  不改变值的函数后面一定要加const
  2. 一旦有new的使用,意味着新内存空间的开辟和指针的使用,构造函数中用了new,则析构函数中应该使用delete
  3. new和delete应该相互兼容。new对应于delete,new []对应于delete[].
  4. 要是有多个构造函数,那么其中使用new的时候应该是用相同的类型.因为只有一个析构函数,只能在构造函数中使用同样的new的方式。
  5. 很据实际情况使用定义一个复制构造函数。这样可以进行深度复制,使得每个对象尽可能的保存独立。
  6. 据实际情况重载赋值运算符=,进行深度复制,使得每个对象尽可能的保持独立。

五:二分查找

​​​​​​(2条消息) 不骗你,没读这一篇,你不可能懂二分_兔老大RabbitMQ的博客-CSDN博客

  1. 二分查找代码要背下来
  2. 最短距离最大化问题:保证任意区间距离要比最短距离mid大或相等(这样,mid才是最短距离)即:区间的距离>=mid

  3. 最长距离最小化问题:保证任意区间距离要比最大距离mid小或相等(这样,mid才是最大距离)即:区间的距离<=mid
     
  4. 最长距离最小化问题:保证任意区间距离要比最大距离mid小或相等(这样,mid才是最大距离)即:区间的距离<=mid

六:递归、深度优先搜索、记忆化搜索、DP动态规划(不熟练)

​​​​​​(2条消息) 一道题弄懂递归、深度优先搜索、记忆化搜索、DP动态规划_小小的香辛料的博客-CSDN博客_记忆化深度优先搜索

一道题看懂递归、(深度搜索)dfs、记忆化搜索、动态规划(DP)的差别!_AndrewYB的博客-CSDN博客_dp搜索

DFS就是先选择一条路,走到尽头,如果前面没有路可,就返回,再选择另一条路,如此循环往复,直到把所有路走遍。在适当情况下选择回溯

七:线性表(不熟练)

数据结构:线性表(List)【详解】_UniqueUnit的博客-CSDN博客_线性表

  1. 线性表(List):零个或多个数据元素的有限序列。

  2. 顺序表无需为元素之间的逻辑关系增加额外的存储空间,可以快速存储某一位置的元素,但是在操作时需要大量的移动元素,线性表长度较大时,难以确定存储容量,造成存储空间的浪费。

  3. 单链表,前后两个元素之间存在逻辑关系,每个节点有数据域和指针域,链表第一个节点称为头指针,以后的称为后继指针

  4. 双向链表时单链表前再加一个前驱指针域。

八:二叉树(看不懂没学会)

什么是二叉树(详细图解)_初念初恋的博客-CSDN博客_二叉树

数据结构--二叉树--详解_清欢有道的博客-CSDN博客_二叉树

img

 在这里插入图片描述

 二叉树 非线性数据结构

普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。

  • 堆总是一棵完全二叉树。

二叉树我目前看不懂 以后再看

九:指针(有些难)

C++指针详解-史上最全_Jason_Chen93的博客-CSDN博客_c++指针

*不管挨着哪个,只要是出现了星号,而不管中间是不是有空格,我们便认为,这算是创建了一个指针变量.

创建指针可以初始化也可以不初始化

尽量定义了对象之后再定义指向这个对象的指针,对于不清楚的指向哪里的指针,一律初始化为nullptr(C++11)或者NULL(0).之后再判断是否指向对象再进行相应的操作.

Void*是一种特殊类型的指针,能够用来存放任何类型对象的地址.通俗来说,就是我不知道这个指针指向的是什么类型的对象.

#include <iostream>
int main()
{
    void *p_v=&x;
    void *p_v2=p;
    std::cout<<"p_v:"<<p_v<<std::endl;
    std::cout<<"p_v2:"<<p_v2<<std::endl;
}

十:总结

网课这一周,学习明显懈怠,接下来的一周要改变状态,不能沉迷于做简单的作业题,这样不能提高水平

;