![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
IvyYin
达则兼济天下
展开
-
栈的C++实现
以下是数据结构中环形队列各函数的C++实现,如有需要,请访问我的Github获取完整源码。//栈类的定义(Stack.h)class Stack { public: Stack(int size); //构造函数,分配内存,初始化栈空间,设置栈容量(size不变),栈顶 ~Stack();原创 2017-08-23 19:33:13 · 473 阅读 · 0 评论 -
单链表的C++实现
以下是数据结构中环形队列各函数的C++实现,如有需要,请访问我的Github获取完整源码。 //Node类的定义class Node{public: int data; Node *next; //指向下一个元素 void printNode(); //没有构造函数,使用默认构造函数};//Node类成员函数的实现#include"N原创 2017-08-25 16:47:31 · 454 阅读 · 0 评论 -
线性表的C++实现
线性表的分类: 以下是数据结构中顺序表的C++实现,如有需要,请访问我的Github获取完整源码。 //线性表类的定义class List{public: List(int size); //创建线性表 ~List();原创 2017-08-24 22:24:09 · 2192 阅读 · 1 评论 -
队列的C++实现
以下是数据结构中环形队列各函数的C++实现,如有需要,请访问我的Github获取完整源码。//类的定义class Quence{public: //构造函数:初始化队列,假设队列元素都为简单的整型数据 //C++实现 //C语言实现 Quence(int QuenceCapacity); //InitQuence(&Q)原创 2017-08-23 12:36:19 · 1807 阅读 · 0 评论 -
使用两个栈实现队列的入队、出队
这是数据结构中对栈的一个应用实例,在各大公司的面试中也是常考题,使用栈实现队列的入队、出队操作很简单,只需要两个栈,一个栈负责入栈=入队,另一个栈负责出栈=出队即可。 思路:使用STL中的stack创建两个栈,s1和s2,s1负责入栈,s2负责出栈;队列入队:使用STL中的stack会动态分配内存,因此不必担心栈满的情况,所以入队时,直接将元素入s1栈即可。队列出队:出队时需要s2出栈,因此原创 2017-08-30 11:49:38 · 6189 阅读 · 1 评论 -
图的深度优先搜索和广度优先搜索
本文首先对图的深度优先搜索和广度优先搜索进行介绍,然后给出其C++实现,也可访问我的Github获取源码。深度优先搜索(DFS)1、DFS介绍 图的深度优先搜索和树的先序遍历比较相似,思想是:假设初始状态下图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发,进行深度优先遍历,直到图中所有和v相连的顶点都被访问。若此时尚有其他顶点未被访问到,则另选顶点原创 2017-09-24 16:21:05 · 307 阅读 · 0 评论 -
二叉树系列六:求二叉树叶子结点间的最大距离 [编程之美]
题目描述: 如果把二叉树看作图,父子结点间的连线是双向的,我们姑且定义“距离”为两个结点之间边的个数,如下图所示,相距最远的两个结点是A和B,距离为6。写程序实现二叉树中相距最远的两个结点之间的距离。思路分析: 计算一棵二叉树的最大距离有两种情况,第一种是路径经过左子树的最深结点,通过根节点,再到右子树的最深结点,那么距离就是左右子树的深度和;另一种情况是,路径不穿过根节点,只...原创 2017-10-20 09:47:10 · 1550 阅读 · 0 评论