LiZeB / Learning-Coding

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

介绍

1. Learning_cpp

对C++各种特性的测试

  • container.cpp : 顺序容器、关联容器
    • map: 遍历,删除,排序
    • vector:各种初始化方式的区别
    • queue:empty函数
  • test_algorithm.cpp :C++中algorithm库中自带的算法
    • 排序算法sort()
    • C++ primer第11.3.6小节中出现的单词置换程序,用到了文件输入输出流、字符流、字典
  • character.cpp : 字符串操作
    • C++中的字符容器string;
    • C风格的字符串;
    • C风格字符串的库函数;
    • 字符串相关的笔试题;
  • my_thread.cpp : thread多线程类的操作
    • thread的常用操作;
    • 利用mutex对线程进行加锁;
    • 多线程笔试题:多个线程按顺序打印字母,比如ABCABCABC
    • 锁管理类:unique_lock,lock_guard; 设置条件协调线程运行的条件变量类:condition_variable;
    • 锁的概念:C++中锁有一个作用域,作用域内所有的资源都会被锁定,只能被一个线程使用。这些资源可以是变量、输入输出流;

2. DataStructure

常见数据结构的实现

  • 单向链表;
  • 链表的排序;
  • 栈;
  • linkedBinaryTree.cpp: 二叉树和二叉查找树(二叉搜索树);
  • 平衡二叉搜索树(即AVL树)
  • 哈希表(散列表);
  • graph.cpp : 图
    • 用邻接矩阵的方式实现了图的基本操作;
    • 用邻接表的方式实现了图的基本操作;
    • 邻接表形式下图的深度优先搜索;
    • 邻接表形式下图的广度优先搜索;
  • 堆:
    • 堆的基本操作:插入、删除最大值、初始化为最大堆等;
    • 利用最大堆实现的堆排序;
  • binaryTree.cpp: 重写了二叉树的基本操作;完成了一道根据层次序列构建二叉树的笔试题;

3. Algorithm

一些平常用到自己亲自实现过的算法

  • 生成字典序;
  • 排序算法:
    • (1)插入排序;
    • (2)希尔排序(运算符重载输出vector);
    • (3)冒泡排序;
    • (4)归并排序;
    • (5)快速排序
  • 查找算法:
    • (1)二分查找
  • 最短路径搜索:
    • (1)Dijkstra算法
  • recursion.h : 常见的递归算法问题
    • 一个数的质数分解;

4. Java Code

java学习

  • 数据类型的转换
  • 链表实现
  • 加入了链表的排序
  • 排序算法:
    • (1)冒泡排序;
    • (2)冒泡降序排序;
    • (3)择排序;
    • (4)插入排序;
    • (5)快速排序;
    • (6)加入了二分查找的递归实现和非递归实现;
  • 栈的实现:
    • (1)基于数组的顺序栈;
    • (2)基于链表的链式栈;
  • 二叉树的实现:
    • (1)数组转换成二叉搜索树;
    • (2)增加/删除二叉树的节点;
    • (3)遍历二叉树;
    • (4)统计二叉树的高和节点个数;
  • 堆(大顶堆)的实现:
    • (1)数组转换成堆;
    • (2)插入元素/向上调整;
    • (3)删除元素/向下调整;
    • (4)用堆实现排序;
  • 死锁:
    • (1)synchronized实现;
    • (2)lock实现;
  • 动态规划经典背包问题:
    • (1)0-1背包问题;
    • (2)完全背包问题;
    • (3)多重背包问题;
  • clone方法学习:
    • (1)重写clone方法实现深拷贝
  • 创建对象的几种方法:
    • (1)new;
    • (2)调用clone方法,具体见clone方法学习部分;
    • (3)调用newInstance方法,2种;
    • (4)序列化和反序列化,代码未实现;

5.Socket

Linux下Socket编程

6.MySQL

SQL语句练习,数据库的增删改查

  • utility.h: 定义了数据库的管理类
  • utility.cpp: 数据库管理类的实现

7.设计模式

设计模式的练习总结

  • singleton.cpp : 单例模式
    • 基类的成员访问权限,派生类的继承权限;
    • 类的内存分配,成员内存对齐规则;
    • 单例模式:饿汉方式和懒汉方式;

8.LeetCode

LeetCode刷题

About


Languages

Language:C++ 69.5%Language:Java 30.5%