- 博客(6)
- 收藏
- 关注
原创 数据结构分治策略与递归
分治策略是将规模比较大的问题可分割成规模较小的相同问题。问题不变,规模变小。这就自然导致递归过程的产生。递归是指一个函数能够直接或者间接的调动自己,就称之为递归函数(自己调用自己)。分治法所能解决的问题一般具有以下特征:该问题缩小的一定程度就可以容易地解决;该问题可以分解为若干个规模较小的相同问题;使用小规模的解可以合并成该问题原规模的解;该问题所分解出的各个子规模是相互独立的。分治法步骤:分解:将问题划分为一些子问题,子问题的形式与原问题一样只是规模更小。解决:递归地求解子问题,如果子问
2020-12-08 19:54:35
163
原创 2020-11-25
在数据结构中,线性表有两种存储结构,一种是顺序存储结构,另外一种是链式存储结构。其中定长顺序表和不定长顺序表是顺序存储结构,带头结点的单链表、不带头结点的单链表、双向链表和双向循环链表是链式存储结构。这篇文章我们主要来介绍定长顺序表。首先我们来设计定长顺序表的结构,如下所示:#define LISTSIZE 10//顺序表总长度typedef int ElemType;//类型重定义typedef struct Seqlist{ ElemType data[LISTSIZE];//定义一个数组
2020-11-25 15:20:43
48
原创 c++队列
队列是一种先进先出的线性表,只允许在表的一端进行插入另一端进行删除。允许插入的一端称为队尾,允许删除的一端称为队头。同样的我们先来设计队列的结构:typedef int ElemType;//类型重定义#define MAXSIZE 10//队列的最大容量为10typedef struct Queue{ ElemType *base; int head;//队头 int rear;//队尾}Que,*pQue;和栈一样,对一个空队列(不存在的队列)进行操作是毫无意义的,因此在进行所有操
2020-11-23 19:34:24
363
原创 c++栈的操作
栈和队列是两种非常重要的数据结构。栈是一种先进后出的数据结构,而队列是一种先进先出的数据结构。从它们的特点来看,栈和队列是针锋相对的,但它们却是相互联系的。比如后面要介绍到的“用两个栈实现队列”以及“用队列实现栈”。下面用这幅图再来认识一下栈和队列这两种数据结构的特点。接着我们来设计一个栈的结构,并用代码实现入栈、出栈、判栈满、栈空以及获得栈顶元素等。typedef int ElemType;//类型重定义#define STACK_INIT 10//初始分配栈空间的大小#define APPEN
2020-11-21 22:17:13
349
1
原创 C++拷贝构造函数
``同一个类的对象在内存中有完全相同的结构,如果作为一个整体进行复制或者拷贝是完全可行的,这个拷贝过程只需要拷贝数据成员,而函数成员是共用的。在建立对象时可用同一类的另一个对象来初始化该对象,这时所用的构造函数称为拷贝构造函数。也就是说当拿一个对象初始化另一个对象时,就会调动拷贝构造函数。class Object{private: int value;public: Object(int x=0):value(x) { std::cout<<"create obj:"&l..
2020-11-11 16:52:07
185
原创 vector中的resize, reserve , assign 的区别
vector中的resize, reserve , assign 的区别void reserve (size_type n);reserver函数用来给vector预分配存储区大小,即capacity的值 ,但是没有给这段内存进行初始化。reserve 的参数n是推荐预分配内存的大小,实际分配的可能等于或大于这个值。当调用函数时,n的值如果大于capacity的值,就会重新分配内存 ,使得capacity的值会大于n 。这样,当调用push_back函数使得size 超过原来的默认分配的capacit
2020-11-09 19:06:29
607
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人