- 博客(10)
- 收藏
- 关注
原创 C语言--------关于迷宫问题的浅析
首先我们先来说说迷宫问题------迷宫可分为三种情况:简单迷宫、多出口的迷宫、循环迷宫可以分为这三种简单情况,第一种我们只需用利用栈来实现即可;就是将数据的坐标入栈,当探测上下左右都无路可走的时候,利用回溯来探测别的可走的路,我们可以将第一种和第二种归结为一种情况来看下面是代码的实现:#include"mig.h"//int CheckAccess(Pos next)/...
2019-01-25 16:44:51 303
原创 队列的浅析(C++)
队列和上篇提到的栈类似,本质上都是特殊的线性表,它是在一端(队头)进行删除操作,另一端(队尾)进行插入操作,遵守先进先出的规则。。既然队列也是线性表,当然也有两种数据存储方式:顺序存储结构:这种结构事先要基本确定队列的大小,不支持动态分配存储空间,所以插入和删除元素比较省时,但是会造成空间的浪费。 为了节省空间,这里引入了循环队列,本质上也是顺序...
2019-01-21 11:06:37 208
原创 排序的总章-----概述
排序:快速排序、插入排序、选择排序、冒泡排序、堆排序、归并排序、希尔排序、二叉树排序、(非比较排序)计数排序、桶排序、基数排序比较排序的时间复杂度通常为o(n^2)或者o(nlogn)非比较排序的时间复杂度可以达到o(n),但是需要额外的空间开销排序的稳定性和复杂度:不稳定:选择排序--------O(n^2)快速排序--------平均O(nlogn)最坏O(n^2)堆排序---...
2019-01-20 11:31:44 154
原创 顺序栈以及链式栈的浅析
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操 作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。不含任 何元素的栈称为空栈,栈又称为后进先出的线性表链式栈与顺序栈相比有很多优点。当栈需要动态变化时,如果使用顺序栈,如果设置过大会造成很多的资源浪费;如果过小,当栈溢出时,需要开辟一块更大的空间同时将原来栈中的元素全部拷贝过去,造成较大的时间开销。相反,用链接表示可以动态...
2019-01-20 11:29:23 1945
原创 关于单链表的逆置问题
大家都知道单链表是只能前结点找到后结点的,关于单链表的逆置也困扰了我很久,终于受不了了,进行了一番重新学习在我学到的方法有这么几种:三指针法(也可以理解为辅助指针法)、头插法、今天学到的递归;壹、三指针法:我们先来看这个理解图这个图看上去应该可以很好的理解这种方法;下面就是三指针法的实现:typedef int DataType; //类型定义typedef struc...
2019-01-15 19:38:02 745
原创 单链表(C++)
头文件(.h)#include<iostream>using namespace std;class Node{public: int _data; Node* next; Node() { next = nullptr; }};class List {private: Node *head;public: List(); ...
2019-01-15 19:16:10 137
原创 C++关于浅拷贝、深拷贝以及写时拷贝的认识
C++中拷贝分为浅拷贝、深拷贝、写时拷贝。浅拷贝:又称位拷贝,是将别人的指针拷贝过来,从而使得多个对象共享一份资源。这就是string调用默认拷贝构造函数出现的问题,最终导致的问题是,s1、s2共用同一块内存空间,在释放时同一块 空间被释放j引起程序崩溃 接下来我们来说说深拷贝,深拷贝是重新开辟一块空间,将别人的内容拷贝过来,这样就不会出现浅拷贝出现的问题了接下来就用strin...
2019-01-13 20:36:29 206
原创 Date(日期类)的实现
头文件(.h)#pragma onceclass Date{public: Date(int year = 1900, int month = 1, int day = 1); // Date(const Date& d); // Date& operator=(const Date& d); // ~Date(); bool operator&...
2019-01-10 23:07:42 285
原创 函数模板与类模板(模板类)
什么是泛型编程?泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。模板分为函数模板和类模板下面我们就来说说函数模板:函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的类型版本格式:template<typename T1,typename T2......typename Tn>返回值类型 函数名(参数列表){}...
2019-01-08 11:59:45 663
原创 c++运算符的重载
c++允许大部分运算符的重载不允许重载的运算符(. * :: sizeof ?:)(就只有这五种不可以重载)重载运算符又分为单目运算符,双目运算符,流插入运算符和流提取运算符以下就是重载这几种运算符的简单的例子://#include<iostream>//using namespace std;//class String//{//public:/...
2019-01-07 11:11:20 464 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人