- 博客(34)
- 收藏
- 关注
原创 构造函数和析构函数
/* 构造函数: 特点:1.无返回值 2.通常情况下是pubilc属性 3.调用不需要自己调用,构建对象的时候调用 4.函数名和类名一样 分为: 1.默认构造函数 2.普通构造函数 3.拷贝构造函数 析构函数:
2021-01-26 20:35:19
118
原创 类和对象初始
/* 类:多个对象共同属性和行为的抽象 例如:美女类 属性:数据成员修饰(数据类型) 例如:性别 姓名 三围等(不做讨论) 行为:成员函数(写在类型中函数) 对象:类的具体化 属性具体是什么 例如:名字叫 水中月 ,性别:女代码中如何产生一个类:class 类名{ //默认的情况下是私有属
2021-01-22 22:35:21
126
原创 this指针
#include <iostream>#include <string>using namespace std;struct girl{ string name; int age; girl(string name,int age) { //当形参名字和实参名字相同的时候,可以引用this指针,用this->标记的表示数据成员 this-
2021-01-22 15:13:49
114
原创 c++版本链表部分内容
#include <iostream>using namespace std;int main(){ system("pause"); return 0;}
2021-01-22 01:01:15
78
原创 c++新增引用类型
#include<iostream>using namespace std;void modiFy(int *a){ *a = 1000;}void modiFy(int &a) //对比这两个,第一个用了指针,第二个不用。传参:int &形参 = 实参{ a = 1000;}//传常量,前提是没有改变常量的值void print(const int &a){ cout << a <&l
2021-01-20 23:20:41
152
原创 c++ 与 c语言 的函数思想转变
#include<iostream>using namespace std;/* 内联函数:代码在执行的过程当中,形式是二进制代码的形式,它不需要去编译,牺牲空间提高效率,内容短小 用inline修饰的函数 或者 是在结构体中 或者 类中实现的函数 函数重载:允许同名不同参函数存在,只和参数有关系,系统是通过调用的时候,根据数据的类型去决定调用哪个函数 不
2021-01-19 00:12:49
94
原创 c++数据类型上的改变
#include <iostream>using namespace std;int size = 0;bool empty(){ return size == 0;}int main(){ bool boolNum = 1; //1.含义:真和假 //2.打印的值:0或1 //3.作用:充当开关,充当函数返回值 //4.特殊的初始化 //5.非零表示成立,零表示不成立,-1也表示成立,任何非零值都
2021-01-17 15:39:11
309
原创 c++命名空间
/* 头文件的改变 1.去掉了 .h的方式 2.命名空间的引入 namespace 空间名 { 成员; }*/#include <iostream>//若要引用c语言的头文件。1.直接加c语言的头文件:2.在头文件前加c#include <stdio.h>#include <cstdlib>//using n
2021-01-17 01:12:24
63
原创 贪吃蛇之界面设计,游戏地图的设计,蛇的绘制,蛇的移动,随机生成食物,蛇吃食物,蛇死亡的判断,游戏结束
/*这里分开 头文件 和 源文件,使代码更加清晰*//*头文件*/#include<stdlib.h>#include<stdio.h>#include<Windows.h> 设置控制台标题的头文件int main(){ Welcome(); //界面 return 0;}//界面void Welcome(){ //设置控制台标题 SetConsoleiTitle(L"经典贪吃蛇游戏");
2021-01-12 21:40:06
1133
原创 推箱子之游戏介绍及游戏地图设计,角色移动,人推箱子,过关升级
#include<stdio.h>#include<windows.h>#include<stdlib.h>//用二维数组做一个地图/* 用数字描述 0:空地 1:墙壁 3:箱子目的地 4:箱子 6:人 7:箱子和目的地重合 9:人站在目的地 在这里弄成一个开始地图为: 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 4 0 1 0 1
2020-12-31 13:06:51
1205
原创 DFS(深度优先搜索)遍历
/* DFS:访问邻接顶点,再访问邻接顶点方式*/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>typedef char VertexType[4];#define MAX 10typedef struct ArcNode{ int vexIndex; //顶点在顶点数组中的序号 st
2020-12-20 23:24:53
145
原创 BFS(广度优先搜索)遍历
/* BFS: 广度优先,结合队列实现遍历方式 1.选对一个入口 2.访问所有的当前顶点的所有邻接顶点 3.出队,找当前顶点邻接顶点 4.标记已经遍历节点 5.队列为NULL,所有顶点都被访问*/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>typedef char Vertex
2020-12-18 23:13:10
379
1
原创 邻接表法存储图
/*邻接表法:无向无权图无向图,两个字符串之间,相邻的关系是相互的,需要做两次插入*/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>typedef char VertexType[4];#define MAX 10//存放邻接顶点的链表typedef struct ArcNode{int vexInde
2020-12-17 22:41:07
313
原创 矩阵法存储有向带权图
/* 一般用矩阵法做带权图*/#include<stdio.h>#include<stdlib.h>#include<string.h> //用字符串去表示结点,方便去比较typedef char VertexType[4]; //顶点类型typedef int VRTpe; //权值类型define MAX 10 //定义最大的顶点数typed
2020-12-16 23:51:39
547
原创 大顶堆
/*堆:一维数组堆:一完全二叉树(就是除了最后一节点之外,其他的都是满的)去分析,从第一个结点开始编序号:从 1 开始大顶堆:根结点的数比孩子节点的数要大,上一层的数比下一层的要大数组下标:孩子节点的编号等于父结点的两倍堆的插入:向上渗透永远从堆的最后面插入如果插入的结点比上一层的数要大,我们要调整堆所以无论插入那个节点,首先都把它插到根部,然后再进行调整堆堆的删除:向下渗透--对应出堆*/#include<stdio.h>#include<stdlib.h&g
2020-12-12 21:43:55
359
原创 二叉树非递归遍历方式
#include<stdio.h>#include<stdlib.h>//描述单一个体,起别名typedef struct treeNode{char data; //数据域用字符表示struct treeNode* LChild; //左子树指针struct treeNode*RChild; //右子树指针}TREE,*LPTREE; //一般用用LP开头的,表示指针别名//创建二叉树结点LRTREE createNo
2020-12-09 23:26:21
67
原创 二叉树基本概念以及遍历代码的实现
/*ONE.二叉树基本常识 二叉树结构单体:有一个数据域,加上左子树指针和右子树指针,就是结构体写法 ONE.ONE.基本概念: 二叉树有五种形态 第一种:空的二叉树,就是一个结构体指针 第二种:只有根节点的二叉树(只有一个根节点,用tree指针表示) 第三种:只有左子树或右子树的二叉树(左子树:在结点左边的指针。右子树同理),就是单纯的单链表。。。
2020-12-09 00:00:54
126
原创 跳表
/*调表:有序链表一个节点有点个指针,然后每个结点除了本来的链式结构,还用链表连接了其他的结构体数据*/#include<stdio.h>#include<stdlib.h>#include<string.h>struct dataType{int first;int second[20];};struct Node{struct dataType data;struct Node*next;}struct
2020-12-06 16:42:35
73
原创 哈希结构
/*哈希结构:数据和地址的一种映射关系映射关系:数学中的函数关系哈希地址:不是指真正意义上的地址(指针),抽象的参照地址。举例:数组数组下标就可以充当哈希地址第一种:直接定址法int arrayHash[10]; //哈希的内存y=x //构造函数,数据就是直接的地址arrayHash[1]=1;arrayHash[]*/#include<stdio.h>#incllude<stdlib.h>int main(){ system(
2020-12-03 22:14:27
898
原创 顺序表结构(就是动态数组)
/*线性结构:顺序表数组结构顺序表有两个特性:1.顺序表的内存2.顺序表的索引(就像数组下标),顺序表就是根据索引去做事情*/#include<stdio.h>#include<stdlib.h>struct linerList{char*element; /存储char类型的数据为例,因为索引是整形的/int arrayLengt; /顺序表的最大长度/int listSize; /顺序表当前的元素个数/};/创建一个顺
2020-12-03 09:10:54
202
原创 优先队列
/*优先队列:有队列容量但多了个优先权*/#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX 100/数据由两部分组成:数据本身+权值(关键字)/struct data{int priority; //权值int element; //数据本身};//对列struct priQueue{int sizeQueue;//对列当前
2020-12-02 00:08:31
80
原创 数组对列,只要是先进先出的就是队列
#include<stdio.h>#include<stdlib.h>#define MAX 10/*用数组去存储对列,所以必定有个大小限制,数组无法自动扩增*/struct queue{ int *queueMemory; /*队列容量容量-->数组*/ int frontPos;/*队头元素下标*/ int tailPos; /*队尾元素下标*/};struct queue* lpQueue
2020-11-30 23:45:55
397
原创 链式对列
#include<stdio.h>#include<stdlib.h>int main()struct Node{int data;struct Node *next;};/创建结点的过程,为入队做准备/struct Node createNode(int data){struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));newNode->
2020-11-30 01:11:01
148
原创 数组栈
#include<stdio.h>#include<stdlib.h>int main(){//通常情况我是直接用数组充当栈内存int stack[10]; //栈内存int /return 0;}
2020-11-27 22:37:10
109
原创 链式栈
/*数据结构:批量存储数据的一种方式栈结构 FILO:先进后出,后来居上的一种存储方式栈的基本属性: 栈内存 栈顶标记 栈的当前元素个数入栈出栈获取栈顶元素 万金油操作: 判断是否为NULL 当前栈中数据个数 队列 FIFO 先进先出,排列的方式*/...
2020-11-26 19:52:04
254
原创 双向循环链表
#include<stdio.h>#include<stdlib.h>struct Node{int data;struct Noderight;struct Nodeleft;};//创建链表struct NodecreateList(){struct NodeheadNode = (struct Node*)malloc(sizeof(struct Node));headNode->right = headNode-&g
2020-11-25 10:10:59
79
原创 双向链表
#include<stdio.h>#include<stdlib.h>/数据结构:存放数据的一种结构//结构体:秒速的是数据的结构单元//结构体复杂,但是当我们把单个结点拿出来分析,就不复杂了/struct Node{int data;struct Nodeleft; /左指针和右指针/struct Noderight;.};//创建节点struct NodecreatNode(int data){struct Nodenew
2020-11-22 23:13:56
74
原创 无头链表结构体封装
#include<stdio.h>#include<stdlib.h>struct Node{int data;struct Node*next;};struct NodecreateNode(int data){struct NodenewNode = (struct Node*)malloc(sizeof(struct Node));newNode->data=data;newNode->next=NULL;
2020-11-20 22:45:41
87
原创 无头链表封装用二级指针封装
#include<stdio.h>#include<stdlib.h>/无头链表:第一个节点存放数据,所以我们没有创建链表的过程,只有创建结点的过程,结点就可以做表头//先使用二级指针完成无头链表/struct Node{int data;struct Node*next;}struct NodecreateNode(int data){struct Node newNode = (struct Node*)malloc(sizeof(s
2020-11-19 23:40:37
95
原创 c语管理系统
管理系统按顺序做:1.菜单2.按键处理3.逻辑处理//菜单void menuSystem(){printf("-------【起点】--------"); printf() }
2020-11-16 21:45:16
148
原创 有头单链表
1.单链表属于链式结构,而链式结构就是结构体变量与结构体变量链接在一起。而结构体分为:数据域(用来存储数据,而且这个数据可以是任何类型,甚至是结构体类型),指针域(用来做连接的)...
2020-11-14 21:50:51
273
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人