![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
考研
文章平均质量分 72
数据结构,C语言
android 小白星
这个作者很懒,什么都没留下…
展开
-
易错知识点总结:#define S(x) 3*x*x+1的计算。
这种是带参数的宏定义,通常会将宏内容文本中的宏参数替换成文本。我们直接用上我们这个来写一个例子进行计算。#define SUM(x) 3*x*x+1int main(){ int i=5; int j=8; printf("%d\n",SUM(i+j));}计算机出来的答案是64。我开始的错误思路是:3*(5+8)*(5+8)+1。但是我们算出来的值与实际相差的。正确的思路是:SUM不会把括号也带过去,只把式子带过去。3*5+8*5+8+1。算出来正好与原创 2021-10-06 21:24:44 · 740 阅读 · 0 评论 -
为什么operator<<左移运算符不能重载成员函数,而只能重载为友元函数?
关于运算符重载1.首先我们通过operator+加号运算符来了解成员函数与友元函数的区别。1.加号运算符的成员函数2.加号运算符的友元函数2.operator<<左移运算符不能重载成员函数,而只能重载为友元函数。1.左移运算符成员函数达不到我们的效果2.如果使用友元函数1.首先我们通过operator+加号运算符来了解成员函数与友元函数的区别。首先我们来看一下operator+加号运算符,因为他的重载继可实现成员函数重载,也可以实现友元函数重载。1.加号运算符的成员函数我们来看一下加号运原创 2021-04-19 22:49:47 · 3684 阅读 · 13 评论 -
C语言运算符知识点用法总结(位操作符,逻辑操作符,单目操作符)
运算符1.位操作符2.逻辑操作符3.单目运算符1.位操作符PS:进行位操作前,必须先化为二进制来进行相应操作。位操作符名称特点例子|按位"或" (OR)一真则真int a=5; //0101int b=6; //0110int c=a | b; //0111&按位"与"(AND)一假则假int a=5; //0101int b=6; //0110int c=a & b; //0100^按位"异或"(XOR)原创 2021-08-09 22:15:08 · 280 阅读 · 0 评论 -
图文并茂对C语言基础复习进行详细总结,让各种知识点一目了然?
C语言1.C语言的基本结构1.C语言函数的组成2.C语言的标识符1.命名要求2.关键字3.常量5.C语言程序的基本步骤总结2.各种运算符、优先级和结合性数据类型转换1.自动转换2.算术运算符中数据类型的转换规则3.强制转换4.自动类型转换 VS 强制类型转换3.数据类型及表示范围1.整数类型2.实型数据3.字符型常量4.字符串常量4.格式化输入、输出1.printf函数1.格式化控制符总结2.有符号整数的输出3.无符号整数的输出4.实数的输出5.字符和字符串的输出6.辅助格式控制符小结2.scanf 函数3原创 2021-08-06 22:18:49 · 1013 阅读 · 1 评论 -
【数据结构】数组的重点总结
数据1.数组的存储2.特殊矩阵和稀疏矩阵1.对称矩阵如何使用高效的存储方式来存储对称矩阵2.三角矩阵如何使用高效的存储方式来存储三角矩阵3.对角矩阵如何高效存储一个三对角矩阵4.稀疏矩阵如何高效存储一个稀疏矩阵1.三元组表示法2.邻接表表示法3.十字链表表示法2.广义表1.逻辑结构2.存储结构1.头尾链表存储结构2.扩展线性表存储结构1.数组的存储直接可以通过二维数组来存储2.特殊矩阵和稀疏矩阵相同的元素或者零元素在矩阵中的分布存在一定规律的矩阵称为特殊矩阵,反之称之为稀疏矩阵。1.对称矩阵矩原创 2021-07-19 22:49:28 · 352 阅读 · 0 评论 -
二叉树的遍历,详细解释深度优先遍历(递归、非递归)和层次遍历,使用c++实现?
二叉树的遍历1.二叉树广度优先遍历????2.二叉树深度优先遍历(先序、中序、后序)????1.根据到达次数来实现遍历????2.根据形状来实现遍历????3.树的广度优先遍历????4.树的深度优先遍历????5.森林的深度优先遍历????5.二叉树遍历c++代码实现1.链式存储结构2.二叉树数据初始化3.深度优先遍历(递归)1.先序遍历(递归)2.中序遍历(递归)3.后序遍历(递归)4.深度优先遍历(非递归)(使用容器:`栈`)1.先序遍历(非递归)2.后序遍历(非递归)3.中序遍历(非递归)5.层次遍原创 2021-07-15 20:35:32 · 684 阅读 · 5 评论 -
【思维导图】数据结构考研常用的5种查找
查找1.顺序查找2.折半查找3.分块查找4.散列查找5.B树和B+树的区别如果图片太小不方便看的话,可以去百度网盘进行下载,链接如下:链接: https://pan.baidu.com/s/1-jb9usOiUoaVmoTdGEXEYw提取码: 7seu然后下载一个XMind软件就可以进行查看了。学习视频:王道考研数据结构平均查找长度(ASL):所有查找过程的平均值。需要考虑成功和失败两种情况下的ASL1.顺序查找算法思想:从头往尾找。如果在0号位置存“哨兵”,从尾部向头部挨个查找。优原创 2021-06-06 17:20:05 · 385 阅读 · 0 评论 -
【建议收藏】数据结构考研常用的8种排序算法
排序算法1.冒泡排序2.最近在准备考研,正好在学习数据结构的排序,发现下面这位大佬总结的很详细,不过是用java,我得用c++来考试,所有用c++来总结一下。图片均来自于:作者:三四月事八九月果java实现10种排序算法https://blog.csdn.net/weixin_44531966/article/details/116464294c++代码学习:天勤考研1.冒泡排序#include <bits/stdc++.h>using namespace std;voi原创 2021-06-01 21:23:53 · 3235 阅读 · 10 评论 -
数据结构--图
图1.邻接矩阵2.邻接表和逆接表3.十字链表4.邻接多重表5.DFS(深度优先遍历)6.BFS(广度优先遍历)7.prim算法8.kruskal算法9.Dijkstra算法10.Floyd算法11.拓扑排序12.逆拓扑排序13.关键路径1.邻接矩阵2.邻接表和逆接表typedef struct ArcNode{ int adjV; struct ArcNode* next;}ArcNode;typedef struct{ int data; ArcNod原创 2021-05-29 15:43:29 · 378 阅读 · 3 评论 -
c++使用operator<小于运算符和<<运算符实现结构体的排序和打印输出。
结构体排序和打印最近在学数据结构的时候,发现我以前知道的运算符重载有点忘记了,记录一下避免忘记。如果对于运算符重载的表示不是很了解的,可以去B站黑马程序员的视频或者也可以看这篇博客为什么operator<<左移运算符不能重载成员函数,而只能重载为友元函数?typedef struct DNode{ char a; int b; //小于运算符重载 bool operator<(const DNode &y) { return thi原创 2021-05-27 18:04:52 · 2659 阅读 · 1 评论 -
数据结构--树
树1.树的基础知识2.树的存储1.树的顺序存储结构2.树的链式存储结构3.二叉树1.二叉树的条件2.二叉树的所有形态3.满二叉树1.树的基础知识名称定义根节点A1为根节点树的结点树中的数据元素(例:A1、A2、A5等)结点的度结点子树的个数(例:A1的度为3)树的度结点的度中最大的为树的度(例:树的度为3)叶子结点度为0的结点(例:A3、A4)分支结点度大于0的结点(例:A1,A2)双亲结点有直接关系的上一层结点(例:A1是A2、原创 2021-05-25 22:23:45 · 406 阅读 · 6 评论 -
数据结构与算法--二叉树之线索二叉树(前序、中序、后序)思路以及代码实现。
线索二叉树1.先序线索二叉树2.后序线索二叉树3.中序线索二叉树4.代码打印结果:1.先序线索二叉树思路:沿类似于上图中的先序遍历路径行走,如果发现左孩子结点或右孩子结点为空(也就是度为1或者0的结点),把它们的左空孩子结点指向它的前驱结点,把它们的右空孩子结点指向它的后继结点。当没有前驱或者后继结点时不用指。关于如何找到它们的前驱或后继结点?如下图:我们可以通过图中(+)加号的看出路径,可以得到先序遍历的顺序为:1 2 4 5 3 6 8 7我们以图中结点4为例子:4为叶子结点,所以它原创 2021-05-24 17:08:42 · 4308 阅读 · 0 评论 -
leetcode--有效的括号,使用到栈的知识点
最近在学数据结构结构,正好刚刚学过栈的知识点,做到题目来练习一下因为我主要是练习一下我数据结构所学知识,可能我的方法不是很完美和简便。题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例原创 2021-05-18 16:16:07 · 247 阅读 · 1 评论 -
c++--typedef的作用和用法
typedef的作用和用法1.首先了解共同体和结构体的区别2.枚举3.结构体定义的方式4.typedef的作用和用途1.与#define的区别2.声明多个指针对象3.直观简洁4.平台无关性最近在学数据结构结构的时候发现对typedef的学习不过透彻,就来学习补充一下。1.首先了解共同体和结构体的区别共同体:把不同类型的数据组合成一个整体,自定义类型。union Person{ int age; char name[256]; char sex[2];};结构体: 使几个不同类型的变量共同原创 2021-05-18 09:59:12 · 583 阅读 · 0 评论 -
剑指 Offer 52. 两个链表的第一个公共节点?
最近在学c++和数据结构,做几道题目来练习一下,使用语言c++题目输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始原创 2021-05-17 18:55:54 · 349 阅读 · 8 评论 -
数据结构第三章--串
1.串的基础串分为顺序存储结构和链式存储结构。但是考研链式存储结构,不会出现,所有我只考虑顺序存储结构。顺序存储结构分为:定长存储结构和变长存储结构。定长存储结构(存储的长度是不变的):typedef struct{ char str[maxSize+1]; int length;}Str;maxSize为已经定义的常量,表示串的最大长度;str数组的长度定义为maxSize+1,是因为char类会多出一个'\0'作为结束标记。关于可以用length来返回串的长度,为什么原创 2021-05-15 16:04:30 · 479 阅读 · 7 评论 -
数据结构第二章--栈和队列的考点(输出序列、前缀和后缀、中缀之间转换以及求值,循环队列问题,双端队列),以及实现功能代码?
栈和队列的考点1.输出序列如果队栈和队列不是很清楚的,可以看一下这篇博客数据结构第二章–栈和队列。1.输出序列原创 2021-05-13 17:52:47 · 1428 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表.
最近在学c++和数据结构,做些题目练练手,虽然都比较简单的题目,但是我感觉我对于算法和数据结构这方面的知识点比较缺乏,记录一下。题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]思路:这道题目还是比较简单,我使用到了c++自带的两个容器,vector和stack,stack容器的底层数据结构是栈,不知道这些容器,可以看一下这篇博客c++容器总结。解答:class Solution {public:原创 2021-05-12 21:58:49 · 100 阅读 · 1 评论 -
数据结构第二章--栈和队列
栈1.什么是栈2.顺序栈3.链栈使用语言:c++1.什么是栈栈的特点:先进后出。栈是一种只能在一端进行插入或删除操作的线性表。线性表:栈的逻辑结构属于线性表,只不过在操作上加了一些约束。一端:可以插入或者删除元素的一端叫栈顶,另一端叫栈底。2.顺序栈#include <bits/stdc++.h>using namespace std;#define maxSize 10//入栈void push(int* a,int &top,int elem){原创 2021-05-09 21:18:32 · 318 阅读 · 2 评论 -
数据结构线性表--静态链表
静态链表1.静态链表产生的原因?2.静态链表4.备用链表3.创建静态链表4.添加数据5.删除操作6.查询数据1.静态链表产生的原因?因为顺序存储结构和链式存储结构两者都有各自的优点,如下表所示。性能具体功能顺序存储链式存储空间性能存储分配一次性分配动态分配(优)空间性能存储密度(下面会有解释)=1(优)<1时间性能查找O(n/2)O(n/2)时间性能读运算O(1)(优)O((n+1)/2)最好情况为1,最坏情况为n时间性能原创 2021-05-09 19:53:49 · 617 阅读 · 0 评论 -
数据结构第一章--线性表
线性表1.逻辑结构2.存储结构1.顺序存储和链式存储的区别:2.存储密度3.链式存储结构1.单链表2.双链表3.循环链表4.静态链表学习视频:来自于天勤考研本文主要代码是使用的c++1.逻辑结构线性表是具有相同特性数据元素的有限序列。相同特性:把同一类事物归类,方便批量处理。有限:表中元素个数为n,n有限大,n可以为0。序列:表中元素排成一列,体现了一对一的逻辑特性(每个元素有则仅有一个前驱和一个后继)。2.存储结构存储结构分为顺序存储结构和链式存储结构。1.顺序存储和链式存储的区别:原创 2021-05-04 23:19:05 · 393 阅读 · 0 评论 -
数据结构--逻辑结构和存储结构区别和内容
最近在看考研数据结构,发现关于逻辑结构和存储结构这点不是很懂,然后百度找了一下,发现一篇非常详细的文章,转载一下,转载博客地址:http://c.biancheng.net/view/7524.html。转载 2021-05-01 21:16:24 · 6562 阅读 · 1 评论 -
c++学习--容器总结
c++常用容器:vector deque stack queue list map set容器的区分和使用总结原创 2021-04-24 23:09:55 · 1778 阅读 · 7 评论 -
c++中string容器的常用方法总结,加深学习巩固
string容器1.string的本质2.string的常用方法1.赋值操作2.字符串拼接3.查找与替换4.字符串比较5.字符串获取和字符串长度6.字符串的插入与删除7.字符串的子串获取8.字符串的第一个字符和最后一个字符9.字符串倒置10.字符串转字符数组因为以前学过c语言,最近在学c++,做一下笔记,以便下次查看。1.string的本质string是C++风格的字符串,而string本质上是一个类,在使用string语句的时候一般需要导入string的头文件。不过我一般使用下方的万能头文件。#i原创 2021-04-15 20:57:56 · 574 阅读 · 1 评论 -
同济高等数学第三章之经典错误知识点笔记
同济高等数学第三章1.微分中值定理1.费马引理2.罗尓定理3.拉格朗日中值定理4.柯西中值定理5.皮亚诺型余项泰勒公式6.拉格朗日型余项泰勒公式2.导数应用1.函数的单调性2.函数的极值3.极值的必要条件4.极值和驻点的关系5.极值的第一充分条件6.极值的第二充分条件7.函数的最大最小值8.曲线的凹凸性9.曲线的渐近线10.曲线的弧微分与曲率1.微分中值定理1.费马引理2.罗尓定理3.拉格朗日中值定理4.柯西中值定理5.皮亚诺型余项泰勒公式6.拉格朗日型余项泰勒公式2.导数应用原创 2021-02-14 21:23:47 · 1193 阅读 · 0 评论 -
同济高等数学第二章之经典错误知识点笔记
同济高等数学第二章1.导数1.概念2.微分3.导数与微分的几何意义4.可微,可导,连续之间的关系5.基本初等函数导数格式6.求导法则1.有理运算法则2.复合函数求导法3.隐函数求导法4.反函数的导数5.参数方程求导7.高阶导数常用的高阶导数公式:1.导数1.概念可导是左右导数都存在且相等充分必要条件。2.微分定理一:定理二:y=f(x)在点x0处可微的充分必要条件是f(x)在点x0处可导。3.导数与微分的几何意义切线方程:法线方程:法线:法线指平面上垂直于曲线在某点的切原创 2021-02-08 23:19:04 · 699 阅读 · 1 评论 -
同济高等数学第一章之经典错误知识点笔记
第一章经典错误及笔记1.函数1.复合函数2.反函数![在这里插入图片描述](https://img-blog.csdnimg.cn/20210204225120914.png)3.初等函数2.极限1.数列的极限1.函数1.复合函数复合函数(y=f(u)、u=g(x))的条件:f(u)的定义域和g(x)的值域相交不为空。结论:不是任何两个函数都可以是复合函数。2.反函数一个y只能对应唯一确定x,多个x可以对应同一个y。。结论:3.初等函数奇函数的图形关于原点对称,且若f(x)在x=0处原创 2021-02-05 18:45:52 · 2671 阅读 · 2 评论