注:以下内容参考了别人的博客,仅供自己学习。
1. 数据结构与算法
1.1 线性数据结构
1.1.1 数组、单链表和双链表
1.1.1.1 数组
- 数组的数据在内存中是连续存储的,随机访问速度快。
- 多维数组
- 动态数组:数据的容量可以动态增长的数组,特别地在
c++
中,STL标准模板库已经提供了实现vecor<type>
1.1.1.2 单向链表
- 链表的一种,由若干个节点组成,每个节点都包含指向下一个节点的指针,表头为空,表头的后继节点才是链表元素。
- 链表的每个节点包括两个部分,一部分为表元素域,存放具体的数据,另一部分为链接域,用来存放后继节点的地址。

额自己的画的不够具体,参考下大佬的

- 头指针
- 指向第一个节点地址的指针变量
- 具有标识单链表的作用,一般常用头指针代表单链表的名字。
- 头节点
- 在单链表的第一个节点之前附设的一个节点,没有直接前驱
- 可以不存信息,或存放线性表的长度等附加信息
- 指针域存放首节点的地址
- 附设头结点的具体解释
- a
- n
c++中的头文件 .h
和源文件 .cpp
c++
中的头文件可以存放函数的声明,当一个.cpp
文件需要调用这些函数时就可以通过宏命令#include
包含进这个.cpp
文件中。举例// math.cpp int F1() { // do something here ...... return ; } int F2() { // do something here ...... return ; }
// math.h int F1(); int F2();
// main.cpp #include "math.h" int main() { int num1 = F1(); int num2 = F2(); }
栈 Stack
队列 Queue
树形数据结构
二叉查找树
AVL树
伸展树
红黑树
堆形结构
图形数据结构
排序算法
冒泡排序
快速排序
直接插入排序
希尔排序
选择排序
堆排序
归并排序
堆排序
桶排序
基数排序
LeetCode 笔记
简单类型上手
LeetCode 7
==题目:整数的翻转问题 (32位有符号整数)==
class Solution {
public:
int reverse(int x)
{
int reverse_x = 0;
int tmp;
while (x != 0)
{
tmp = x % 10;
// 翻转后的结果可能会超过int整型的范围
// INT_MAX = 2147483647
// INT_MAX = -2147483648
if ((reverse_x > 214748364) || (reverse_x < -214748364))
{
return 0;
}
else
{
reverse_x = reverse_x * 10 + tmp;
x = x / 10;
}
}
// return reverse_x * scale;
return reverse_x;
}
};
PREVIOUSFew Shot Segmentation
NEXTTransformer