自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 C++实现二叉搜索树(Key模型和Key/value模型)

#pragma once#include<iostream>namespace K{ template<class K> struct BSTreeNode { BSTreeNode(const K& key) :left(nullptr) , right(nullptr) , _key(key) {} BSTreeNode<K>* left; BSTreeNode<K>* right; K _key;

2022-05-19 21:22:02 396

原创 C++stack&queue&priority_queue底层实现代码(适配器)

1.stack的底层实现代码2.queue的底层实现代码3.priority_queue实现代码1.stack的底层实现代码#pragma once#include<iostream>#include<vector>#include<list>#include<deque>//适配器模式:一种设计模式namespace zh{ template<class T, class Container = deque<T>&g

2022-04-10 16:47:01 865

原创 C++list简单底层实现代码

#pragma once#include"reverse_iterator.h"namespace zh{ //list单个节点的类 template<class T> struct ListNode { ListNode<T>* _next; ListNode<T>* _prev; T _data; ListNode(const T& x = T()) :_data(x) , _next(nullptr) , _

2022-04-10 16:43:03 1191

原创 C++vector底层简单实现代码

#pragma once namespace zh{ template<class T> class vector { public: typedef T* iterator; typedef const T* const_iterator; //构造 vector() :_start(nullptr), _finish(nullptr), _endofstorage(nullptr) {} //vector内部的swap函数,交

2022-03-22 18:00:52 787

原创 C++string的模拟实现

#pragma once#include<iostream>#include<assert.h>using namespace std;namespace zh{ class string { public: void swap(string& s) { std::swap(_str, s._str); std::swap(_size, s._size); std::swap(_capacity, s._capacity);

2022-03-17 17:44:57 1101

原创 初阶数据结构之二叉树

前言1.链式二叉树的定义2.链式二叉树的遍历前序遍历前言在前一篇数据结构博文中,我们已经了解了基本的二叉树只是,今天就来详细讲解链式二叉树的遍历,以及各方面的操作。链式二叉树的学习能很好锻炼我们递归思想以及分治思想。1.链式二叉树的定义怎么定义链式二叉树呢?我们用一个结构体来表示二叉树的一个节点,其中有一个变量存放二叉树节点的值,再来两个此结构体指针存放它的左右节点的地址。代码如下:typedef int BTDataType;typedef struct BinaryTreeNode{

2022-01-24 16:18:54 1201 2

原创 数据结构二叉树基础(包含堆的详解)

什么是树?1.树的概念2.树的性质3.怎么表示树?二叉树1.什么是二叉树2.二叉树的性质3.特殊的二叉树怎么表示二叉树1.顺序存储2.堆2.1堆的概念2.2堆的性质2.3堆的实现什么是树?1.树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点,除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中

2021-12-07 15:56:51 832 4

原创 数据结构栈和队列详解(C语言实现)

队列栈

2021-11-22 20:25:33 1219 6

原创 数据结构 ->链表(C语言实现)

链表的概念链表的实现总体思路尾插新节点的建立尾删头插头删查找其余接口所有代码SList.hSList.c链表的概念1.官方的概念链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。2.我的总结:链表就是一个可变的数据存储表,可以在他的基础上增删查改。不用像顺序表那样频繁增容,也不会浪费空

2021-11-17 17:58:24 864 8

原创 程序的环境和预处理

1.程序的环境预编译1.头文件的包含2.#define的预处理指令的执行3.注释的删除编译汇编链接1.程序的环境写过无数代码的你是否想过你写的.c文件编译链接运行形成.exe文件的中间是怎样执行的吗?从.c文件到.exe文件到代码的执行,这就是过程。.c文件我们叫做源文件,是文本文件,.exe文件是可执行文件,是二进制文件,是机器能够读懂的文件。在.c文件编译链接形成.exe文件的环境我们成为编译环境,.exe执行的环境我们称为运行环境。而编译环境又可以分为编译和链接两个过程。而编译过程又可

2021-11-08 17:18:00 3195 12

原创 数据结构之顺序表!(C语言实现,代码充实)!!!

整体思路:动态顺序表的增删查改等:(1)初始化:(2) 尾插增容(3) 尾删(4)头插(5)头删(6)查找(7)在pos下标后进行插入(7)在pos下标后进行删除整体代码1.SeqList.h2.SeqList.c3.test.c整体思路:要知道我们实现数据结构,是要理解他是有什么用处的。顺序表就是连续存储数据,它可以实现增删查改,让我们的数据变得灵活可变,让我们能够灵活的使用数据。顺序表有两个类型:一个是静态的顺序表,一个是动态的顺序表。他们都有各自的优点和缺点,我们这次是采取工程文件的形式。

2021-10-24 14:27:11 844 9

原创 深度剖析C语言中数据在内存中的存储

1.数据类型介绍基本类型的归类2.整形在内存中的存储:原码、反码、补码3.大小端字节序介绍及判断4.浮点型在内存中的存储解析1.数据类型介绍char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double//双精度浮点数基本类型的归类1.整形家族char:unsigned charsigned charshort:unsigned short [int]signed shor

2021-10-10 19:07:48 313 7

原创 C语言实现通讯录(包括静态版本和动态版本)

1.静态通讯录的实现实现的方法:我们采用的方法就是工程形势,实现将功能和定义以及测试分成三个文件,其中定义放在.h文件,实现和测试放在.c文件当中。(1)contact.h文件的基本实现:#pragma once//防止头文件重复定义#define NAME_MAX 20#define SEX_MAX 5#define TELE_MAX 12#define ADDR_MAX 30#define MAX 1000 //静态通讯录,最大为1000#include<stdio.h&

2021-09-26 16:44:38 442 10

原创 C语言中常见的字符串操作函数(#include<string.h>)

1.strlen函数作用 :计算字符串的长度,直到\0结束。函数原型声明:size_t my_strlen(const char* string);代码实现size_t my_strlen(const char* string){ assert(string);//需要使用#include<assert.h>头文件 size_t count = 0; while(*string){ count++; string++; } return count;}2.s

2021-09-23 22:03:04 562 17

原创 程序员的内功修炼——深入理解函数栈帧

1. 写过无数代码的你是否想过这些问题?1.局部变量是怎么创建的?2.为什么局部变量的值是随机值?3.函数是怎么传参的?传参的顺序是怎么样的?4.形参和实参是什么样的关系?5.函数调用是怎么做的?6.函数调用之后结束是怎么返回的?看到这些题目是否觉得自己并没有掌握函数的调用等等一系列的问题?不用着急 ,接下来我们慢慢探索。那我们该怎么去了解呢?我们这次使用的编译环境是VS2013。为什么使用VS2013呢?因为越高级的编译器越不容易观察到函数的栈帧,而且不同的编译器,函数调用过程中栈帧的创建

2021-08-10 15:15:52 606 9

原创 C语言实现小游戏:扫雷

整体思路这个就是扫雷的9*9的界面,我们知道扫雷的规律就是点一个点就会有

2021-08-04 16:35:53 1116 11

原创 C语言实现三子棋,回顾童年!

目录1.整体思路1.整体思路

2021-07-29 15:35:46 234 9

原创 zh的自我介绍

我是一名本科在读的大学生,下学期大三了,没有太多的时间给我去放纵了,所以在接下来的一年里我将努力去学习技术,让自己在明年暑期能找到一个好的实习offer,在9月份秋招的时候找到一份满意的工作,希望自己在未来的日子里能够坚持下去,脚踏实地的去做好每件事,上课认真听讲,下课认真完成作业,自己多刷题,保持良好的心态去接受知识。 编程目标就是以及方向是C++方向,学好C语言,数据结构,C++,Linux操作系统和网络,数据库等等,给自己未来的方向定好位。 关于怎么学习编...

2021-07-16 11:25:47 171 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除