
C++数据结构
DX_dove
致力于计算机视觉的开发。
展开
-
C++数据结构-栈
除了队列,C++中另外一种重要数据结构就是栈,这是一种先入后出的结构,可以理解为一个桶,先放进去的东西后拿出来。现在修改“队列”的相关函数,使其变为栈相关代码如下;栈的相关成员函数:#ifndef Stack_h_#define Srtack_h_#include "Coordinate.h"class Stack{public: Stack(int StackCapaticy)原创 2016-09-22 20:48:29 · 541 阅读 · 0 评论 -
C++实现数据结构-队列
最近学了C++,看了下数据结构的东西,这里就跟大家分享一下自己用C++实现队列的一些思想和经验,适合初学者交流学习。队列分类 队列在数据结构中分为普通队列和环形队列。首先说说普通队列,就是一种类似隧道的数据结构,对于队列里的数据,是先入先出,这点和栈相反。但是普通队列有些缺点,下面来说说普通队列缺点。 普通队列的数据从对头开始离开的时候,后面一个内存空间会变为新的队头,那么对头离开后剩下的内存原创 2016-09-19 21:07:47 · 4222 阅读 · 1 评论 -
C++模板-实现栈(进制转换)
下面分享一个代码,实现的是进制转换的效果,用到了类的模板知识。 类的模板我简单理解的解释一下,首先要有两个概念:模板类,和类模板。 当在主函数中使用了模板,才会在内存中分配模板类的空间,二在主函数外定义的都只能叫做类模板。有了模板类,就可以很方便的修改栈中放入和取出的数据类型。 这里把修改的代码给出,其他代码和之前一样。#include "Stack.h"#include "Coordina原创 2016-09-23 13:34:15 · 1558 阅读 · 0 评论 -
C++实现图中的普里姆最短路径算法(P算法)
在图中,有很多种算法,比如最常见的P算法和K算法。这里介绍一下P算法寻找最短路径算法: 1.任意找一个索引的点,通常是索引为0的第一个节点。输出这个节点数据,向容器中添加一个节点,并标记为已经被访问过。 2.设置几个变量,value(记录边的权值),edgeCount(记录加入到边容器里的边数),temp(记录点容器加入值的下标,当成传入参数获取边上权值)。 3.下面的两个函数是最核心的代码,原创 2016-10-09 16:48:50 · 1837 阅读 · 0 评论 -
C++队列应用
这里把上篇里队列中的int数据变为自己定义的类型。 首先自己要定义一个类,在类中定义所需要的成员变量,下面是我定义的类和相关函数:#ifndef Customer_h_#define Customer_h_#include<string>using namespace std;class Customer{public: Customer(string name=" ", in原创 2016-09-20 19:21:09 · 706 阅读 · 0 评论 -
C++数组实现最简单的二叉树
二叉树可以用数组方式去实现,也可以用链表方式去实现。链表方式有点难,这里先用数组方式实现最简单的二叉树的-建立树,删除节点,增加节点,遍历节点,查找节点等。头文件中构建类的代码,在CPP文件中实现,体现了C++的封装性特点。#ifndef Tree_h_#define Tree_h_class Tree{public: Tree(int size,int* PRoot);//构造函原创 2016-10-03 13:38:24 · 3310 阅读 · 0 评论 -
C++链表的增删改查实现原理
本人开始觉得链表这种数据结构很难,但是在学习编程的过程中,渐渐认识到这种数据结构的重要性,于是花了点时间研究了下链表。对于链表。首先,要知道它和顺序表相比有什么优点,最大的优点就是增加元素,和删除元素的速度快,顺序表增加一个元素和删除一个元素就会用循环移动很多元素,这样对于代码运行效率有很大影响。所以必须理解链表。我们要从其本质去理解它,链表分为单链表,环形链表(和环形队列相似),双向链表等。链原创 2016-10-05 17:31:02 · 2382 阅读 · 0 评论 -
C++(二叉树的实现)
这里我分享下一段二叉树的代码,有详细注释。#ifndef Node_h_#define Node_h_class Node{public: Node(); Node* SearchNode(int nodeIndex); void DeleteNode(); void PreorderTraversal(); void InorderTraversal(原创 2016-10-07 14:37:37 · 948 阅读 · 0 评论 -
算法思维-2 :异或寻找数组中不同的数,并确定位置
题目:一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字代码:异或:相同为0,相异为1代码中用n确定位置,我思考了一会儿:n并不是记录了位置的索引,而是记录x中从后往前第一个1出现的位置,这个位置上,两个落单的数此位置肯定不一样,才会有异或为1的结果,所以两个落单的数(a 和b),一定有如果a&n=0,则b&n!=0.其他的data...原创 2019-03-14 21:04:35 · 1239 阅读 · 0 评论