比特学习笔记
哈哈哈我一定在认真学习的
菜菜女孩要加油哦
这个作者很懒,什么都没留下…
展开
-
删除链表的倒数第k个节点(C++)详细
删除链表的倒数第k个节点思想及算法因为要删除倒数第k个节点,因此要知道是的正序的第几个,所以可以先遍历一遍链表获得链表的长度。代码#include<iostream>using namespace std;struct list { int val; list* next; list(int x) :val(x), next(nullptr) {}};list* insert(list* head, int x) { list* p = head; while (原创 2021-01-17 16:42:23 · 539 阅读 · 0 评论 -
逆置/反转单链表(C++)详细
逆置/反转单链表遗留的问题:我想新创建一个链表来实现单链表的反转,目前还没有实现出来思想及算法代码#include<iostream>using namespace std;struct list { int val; list* next; list(int x):val(x),next(nullptr){}};list* insert(list* head,int x) { list* p = head; while (p->next) {原创 2021-01-17 16:11:48 · 545 阅读 · 0 评论 -
在无头单链表的一个节点前插入一个节点(不能遍历链表) (C++)详细
算法思想代码#include<iostream>using namespace std;struct list{ int val; list* next; list(int x):val(x),next(nullptr){}};list* insert(list* head,int x) { list* p = head; while (p->next) { p = p->next; } list* t = new list(x); p-原创 2021-01-16 21:28:40 · 382 阅读 · 0 评论 -
删除一个无头单链表的非尾节点(不能遍历链表) (C++)详细
删除一个无头单链表的非尾节点(不能遍历链表)疑问:为什么要说明是无头单链表?——因为如果是带有头节点的单链表,假设要删除的是第一个节点,头节点是没有数据域的只有指针域,因此要想使用以下的方法就不能实现。算法思想我的代码#include<iostream>using namespace std;struct list{ int val; list* next; list(int x) :val(x), next(nullptr){}};list* insert原创 2021-01-16 20:46:02 · 191 阅读 · 0 评论 -
查找链表的中间节点,只能遍历一次数组(C++)详细
查找链表的中间节点,只能遍历一次数组方法及思想因为要求只能遍历一次链表,那么我们就可以边遍历边查找中间的节点。每遍历一步,就找一次中间节点,然后移动只想中间节点的指针。此处借助链表的长度来实现这个解法,我假设在链表长度为偶数时,中间节点为length/2取下取整(参考二分法)代码#include<iostream>using namespace std;struct list { int val; list* next; list(int x) :val(x), next(原创 2021-01-15 18:15:21 · 298 阅读 · 0 评论 -
从尾到头打印单链表(C++)详细
1.从尾到头打印单链表遗留的问题:在递归反向打印时,尾巴的->怎么处理掉?方法及思想:正序打印方法一:正序遍历,若当前节点的下一个节点不为nullptr(p->next!=nullptr),那么p继续往后移。直到移到最后一个节点为止方法二:使用递归,直到递归语句return中head传为head->next(此时在最后一次递归时,虽然下一个为空但是我们不知道,我们还会继续对其head->next),因此结束条件是:head==nullptr。注意cout输出语句的顺序原创 2021-01-15 18:07:55 · 1811 阅读 · 0 评论 -
cpp初阶--Lesson 04 类和对象(下)
Lesson 04 类和对象(下)【本节目标】1. 再谈构造函数2. C++11 的成员初始化新玩法。3. 友元4. static成员5. 内部类6. 再次理解封装虽然构造函数调用之后,对象中已经有了一个初始值,但是不能将其称作为类对象成员的初始化,构造函数体中的语句只能将其称作为赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内可以多次赋值。(这句话可以这样理解:就像 int a=1;声明一个a变量且初始化为1,而在程序之后再也不用对a初始化。而构造函数是一个函数,他可以多原创 2020-12-14 08:36:33 · 163 阅读 · 0 评论 -
cpp初阶——Lesson03 类与对象(中)
Lesson 03类与对象(中)【本节目标】1. 类的6个默认成员函数2. 构造函数3. 析构函数4. 拷贝构造函数5. 赋值操作符重载6. 默认拷贝构造与赋值运算符重载的问题7.const成员函数8.取地址及const取地址操作符重载1. 类的6个默认成员函数如果一个类是空类,那它也有6个默认的成员函数。2.构造函数构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有 一个合适的初始值,并且在对象的生命周期内只调用一次。2.2原创 2020-12-14 01:48:14 · 216 阅读 · 1 评论 -
cpp初阶--Lesson 02--类与对象(上)
Lesson 02类与对象(上)【本节目标】1.类与对象的初步认知2.类的引入3.类的定义4.类的作用域5.类的实例化6.类的访问限定符及封装7.类的对象大小的计算8.类成员函数的this指针1.类与对象的初步认知C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入**C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数原创 2020-12-13 20:15:34 · 152 阅读 · 0 评论 -
cpp初阶—Lesson01—C++入门
Lesson01–C++入门2.命名空间在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。2.1 命名空间定义定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然**后接一对{}**即可,{}中即为命名空间的成员。//1. 普通的命名空间namespace N1 // N1为原创 2020-12-13 18:25:48 · 359 阅读 · 0 评论 -
cpp初级--Lesson00--前言
Lesson00–前言1. 什么是C++20世纪80年代, 计算机界提出了OOP(objectoriented programming:面向对象)思想C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。2.C++发展史3.C++的重要性3.3.3 面试题【某学长腾讯面试】\1. 讲解一下你的项目。 【项目】\2. 讲一下epoll和select的区别。【网络】\3. epoll的ET和LT。【原创 2020-12-13 15:41:41 · 256 阅读 · 0 评论