- 博客(15)
- 收藏
- 关注

原创 C++ 【 入门 】【 第一回 】
1. C++关键字(C++98)C++总计63个关键字,C语言32个关键字以下是C++98里面的关键字asm do if return try continue auto double inline short typedef for bool dynamic_cast int signed typeid public break else long sizeof typ
2022-04-10 00:40:21
2744
56
原创 浅析C语言结构体内存对齐问题
我们之前了解过浮点数,整数在计算机的存储方式,结构体他也有他的一套存储方式。#include<iostream>using namespace std;struct test { char a; int b; char c;};int main() { cout << sizeof(test) << endl;}sizeof出来是多少呢?这还不简单 1 + 4 + 1 = 6!那结果会是这样吗?答案真的是让我们大跌眼镜,那这样我把 b
2022-04-30 16:59:54
1238
5
原创 浅谈 C/C++ 的条件编译
1.条件编译的时机我们都知道vscode其实是一个编辑器,你要在上面跑C或者C++你需要配置编译器,拿编译器是怎样吧一个文本文件变成一个可执行文件的呢?那必然是经历以下这四步预处理:宏替换,头文件的展开,去注释,条件编译 编译:将预处理后的源文件转换为汇编语言文件,只编译源文件,不编译头文件,头文件在刚刚预处理阶段已经展开。 汇编:虽然叫做汇编,但是不是转变为汇编代码,而是将刚刚的汇编语言文件转换为机器码,也就是二进制文件。 链接:将生成的二进制代码与库函数以及其他目标文件,通过链接器链接
2022-04-22 09:24:49
7142
34
原创 数据结构 严薇敏 堆 的实现及其使用方法详解
1.堆的概念将一个关键码的集合K = {k0 , k1,k2,k3……kn-1}把他所有元素按完全二叉树的存储方式放在一个一维数组中,并且满足双亲节点大于孩子节点,或者双亲节点小于孩子节点将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。1.2堆的性质堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树2.堆的实现及其接口详解2.1Heap.h#pragma once#include <stdio.h>#include &l
2022-04-20 15:46:25
1679
19
原创 Leetcode 【64】 最小路径和 C++
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。示例 2:输入:grid = [[1,2,3],[4,5,6]]输出:12好家伙刚刚做完准备找个动态规划题做做给我来了个换汤不换药,一个类型的题还是要多总结多思考,还有就是还是用C++刷题把好家伙我记得
2022-04-19 20:15:39
254
2
原创 剑指 Offer 47 礼物的最大价值 C++
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物困难题我唯唯诺诺,简单题我重拳出击,这种DP真的感觉回到家了真舒服呀!class Sol...
2022-04-19 19:36:33
425
原创 数据结构 严薇敏 树 及 二叉树 的概念以及常用知识点
1.树的概念以及结构1.1树的概念树是一种非线性的结构它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的节点,称为根节点,根节点没有前驱节点。除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i<= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继因此,树是递归定义的树形结构中,子
2022-04-19 13:17:26
539
7
原创 Leedcode 【62】 不同路径 C语言
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。问总共有多少条不同的路径?输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右3. 向下 -> 向右
2022-04-17 21:25:38
661
1
原创 Leetcode 【206】 反转链表 C语言
输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]简单题 不用画图就出来了属于是 作业好多数据结构的文章还在创作中struct ListNode* reverseList(struct ListNode* head) { struct ListNode* prev = NULL; struct ListNode* cur = head;...
2022-04-16 23:32:30
814
2
原创 Leetcode 【203】 移除链表元素 C语言
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]思路:对于这个题用暴力解法来判断很多情况,来解决。但是昨天学到了可以用带一个头结点来取消这个对于
2022-04-15 23:44:43
1200
1
原创 Linux 权限相关指令
1. 指令的本质在之前我们了解了一些基本指令,为什么在终端输入一个指令就可以实现一个功能,指令的本质是什么?内核的设计者,说操作系统是不能让用户直接访问的,设计者为了避免这个情况,就给用户提供了很多用于访问内核功能的接口(比如操作各种各样设备的接口)操作系统提供的接口不好用因为功能是过于单一的想要完成复杂功能的时候就需要组合,也就是进行编程,大佬们也就是对典型的应用功能进行了封装,比如之前的 ls 程序这个程序就是来实现浏览目录功能的,所以我们所执行的一个个指令其实就是一个个程序,你执行一跳指令,就
2022-04-14 20:51:31
1582
6
原创 Leetcode 【19】 删除链表倒数第N个节点 C语言
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]这个题我读完之后立马想到就是先遍历一遍链表统计节点个数,最后通过n的判断找到倒数第N的前驱节点进行删除,通过了,但是想到了几天前那个 876 删除中间节点那个可以使用双指针来操作,但是
2022-04-14 13:44:23
1082
原创 Leetcode 【225】 用队列实现栈 C语言
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:你只能使用队列的基本操作 —— 也就是push to back、peek/pop from front、size.
2022-04-13 22:09:23
808
2
原创 数据结构 严薇敏 队列 的实现及其使用方法详解
目录1.队列1.1队列的概念及结构1.2队列的实现1.3接口以及实现Queue.hQueue.c申请一个队列的节点初始化队列入队列出队列查找队头元素查找队尾元素获取队列长度判断是否为空队列队列的销毁测试用例1.队列1.1队列的概念及结构队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删.
2022-04-02 15:27:10
1746
4
原创 数据结构 严薇敏 栈 的实现及其使用方法详解
1.栈1.1栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。形象一点就是吃进去吐出来,只是在一端进行操作。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。1.2栈的实现栈的话用动态顺序表实现就是比较简单的,当然也可用单链表实现,但是注意一个问题,栈是不可以被遍历的,我.
2022-04-02 00:29:28
247
23
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人