LemonWhale

「不必等候炬火。」

Cpp类和对象

C++面向对象的三大特性为:封装、继承和多态 万事万物皆为对象,对象上有其属性和行为 具有相同性质的对象可以抽象成一个类 一、封装 1.1 封装的意义 将属性和行为作为一个整体,表现生活中的事物 类在设计的时候,可以把属性和行为放在不同的权限下,加以控制 名称 权限 访问权限 备...

cpp通讯录管理系统

1、系统需求 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人 显示联系人:显示通讯录中所有联系人的信息 删除联系人:按照姓名删除指定的联系人 查找联系人:按照姓名查看指定联系人信息 修改联系人:按照姓名重新修改指定联系人 清空联系人:清空通讯录中所有联系人 退出通讯录:退出当前使用的通讯录 2、具体代码...

CMake的使用

一、只有一个源文件的程序编译 创建文件CMakeLists.txt ```Cpp // CMake最低的版本要求 cmake_minimum_required(VERSION 2.8)、 //本项目的工程名 project(test) //第一个变量:要生成的可执行文件名为hello,后边的参数是需要的依赖 add_executable(hello hello.cpp) ###...

cpp基础

1、常量 #difine 定义宏常量 const 修饰的常量 常量一旦修改就会报错; 宏常量写在函数的外部,const修饰的变量可以定义在函数内部; 2、常用的编程关键字(保留) 关键字不能作为变量名 | int | long | char | float | asm | | — | —- | —- | —– | — | 3、标识符命名规则 标识符...

二叉树

满二叉树:所有元素都有 完全二叉树:除了底层都是满的,底层是从左到右连续的

STL基础

1、STL初识 1.1 STL诞生 C++的面向对象和泛型编程思想,目的就是复用性的提升 为了建立数据结构和算法的一套标准,诞生了STL 1.2 STL基本概念 STL(standard Template Library),标准模板库 STL从广义上分为:容器(container)算法(algorithm)和迭代器(iterator) 容器和算法之间通过迭...

206-反转链表

题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 解法分析 可以使用双指针法或者递归法 Python写法 双指针法 双指针法注意循环的条件为current为真,最终的返回值应该时pre; 如果循环条件是current.next为真,由于在第一个循环中current....

707-设计链表

题目 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。 实现 MyLinkedList 类: MyLinkedList() 初始化 MyLinke...

24-两两交换链表中的节点

题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 输入:head = [1,2,3,4] 输出:[2,1,4,3] 解法分析 可以使用虚拟头节点或者递归写法 Python写法 使用虚拟头节点 # Definition for singly-linked list. # class ListN...

19-删除链表的倒数第N个节点

题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 解法分析 使用快慢指针法,先让快指针走n+1步,然后快慢指针同时走,当快指针走到链表结尾时慢指针走到倒数第n个节点的前一个节点,方便操作。 Python写法 # 创建一个单向链表 class ListNode: d...