C++数据结构
文章平均质量分 79
PzLu
Email: panzhong171@outlook.com
博客会偶尔更一下,比较忙。会抽时间整理。
展开
-
栈与队列的简单应用(C++)
问题一:利用链栈,将十进制转换为R进制。#include using namespace std;//节点struct Node{ int data;//数据域 Node *next;//指针域 Node(){ next=NULL; } Node(int item,Node *link=NULL){ data=item;原创 2018-01-02 14:05:54 · 1004 阅读 · 0 评论 -
C++ Depth-First-Search
深度优先遍历深度优先遍历(Depth-First-Search),简称 dfs,应用比较广泛的一种搜索算法。dfs 按照深度优先的广式搜索,通俗地说就是“一条路走黑”。dfs 是一种穷举的手段,实际上就是把所有的可行方案列举出来,不断去试探,知道找到问题的解,其过程是对每一个可能的分支路径深入到不能再深入为止,而且 每个顶点只能访问一次 。举例说明:下图是一个无向图,如果我们从 A 点开始...原创 2018-03-19 19:14:44 · 471 阅读 · 0 评论 -
C++ 递归
递归是计算机编程中应用最广泛的一个技巧,也是比较难理解的一个技巧。所谓递归,就是函数调用函数自身,一个过程或者函数在其定义或说明中有直接或者间接调用自身都叫递归。而递归一般都用来解决有重复子问题的问题。我们先来理解直接递归,间接递归非常复杂,用的比较少。下面通过求解 n! 的问题来理解直接递归。int factorial(int n) { return n * factorial(...原创 2018-03-19 18:51:16 · 519 阅读 · 0 评论 -
C++ 递推
递推递推也是经常被使用的一种简单的算法。递推是一种用若干步可重复的简单运算来描述复杂问题的方法。递推的特点在于,每一项都和他前面的若干项由一定的关联,这种关联一般可以通过递推关系式来表示,可以通过其前面若干项得出某项的数据。对于递推问题的求解一般从初始的一个或若干个数据项出发,通过递推关系式逐步推进,从而得出想要的结果,这种求解问题的方法叫递推法。其中,初始的若干数据项称为边界。我们来看这样一道题目原创 2018-03-24 17:06:41 · 7640 阅读 · 1 评论 -
C++ Breadth-first-search
广度优先搜索广度优先搜索(C++ Breadth-first-search),又称宽度优先搜索,简称bfs,是图的搜索算法之一。与深度优先不同的是,广度优先搜索会先搜索到与起始点距离较近的点,而深搜却是沿着一个分支递归到最后。对上图进行深搜按照顶点访问顺序会得到序列:A - B - E - F - C - D - G 对上图进行广搜按照顶点访问顺序会得到序列: A - B - C - D - E原创 2018-03-24 16:46:09 · 488 阅读 · 0 评论 -
一个很有意思的并查集详解
来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。如果是1个连通分支,说明整幅图上的点都连起来了,不用再修路转载 2018-03-17 16:48:59 · 256 阅读 · 0 评论 -
C++基础数据结构STL
在C++里有写好的标准模板库,我们称为STL库,它实现了集合、映射表、栈、队列等数据结构和排序、查找等算法。我们可以很方便地调用标准库来进行各类操作。动态数组引用库有时候想开一个数组,但是却不知道应该开多大长度的数组合适,因为我们需要用到的数组可能会根据情况变动,是个时候就需要我们用到动态数组了。 C++中的动态数组写作 vector,它的实现被写在 vector 的头文...原创 2018-03-08 21:54:21 · 6640 阅读 · 0 评论 -
随机生成100个数,利用几种排序算法对其实现排序(C++)
C++中几种排序算法的实现其实问题很简单:随机生成100个数,编写以下4种排序算法对其从小到大排序。冒泡排序快速排序希尔排序堆排序归并排序以下内容主要包括算法实现。补充内容概念内容:#include<iostream>:主要功能是处理输入输出流。(具体参考:https://baike.baidu.com/item/iostream/2850567?fr=aladdin)#include...原创 2017-12-26 22:15:06 · 19248 阅读 · 1 评论 -
单链表的删除与插入(C++)
简单单链表的删除与插入问题1:删除值为x的节点的后继结点问题2:删除值为x的节点的前继结点问题3:在值为x的节点后添加一个值为y的节点#include using namespace std;//Nodestruct Node{ int data;//数据域 Node* next;//指针域 Node();//构造 Node(int elem, Node* lin原创 2018-01-01 21:37:38 · 1886 阅读 · 0 评论 -
广度优先遍历BFS(C++)
广度优先遍历代码:// main.cpp// BFS// Created by apple on 2018/1/2.// Copyright © 2018年 apple. All rights reserved.// 关键词:广度优先遍历、无向图、邻接表、单链表、队列#includeusing namespace std;//初始化一些默认值int value=0原创 2018-01-02 23:46:35 · 911 阅读 · 0 评论 -
深度优先遍历DFS(C++)
深度优先遍历算法代码:// main.cpp// DFS简版// Created by apple on 2018/1/2.// Copyright © 2018年 apple. All rights reserved.// 关键词:无向图,邻接矩阵,深度优先遍历#includeusing namespace std;//默认值int value=-10000;/原创 2018-01-02 21:22:50 · 1491 阅读 · 0 评论 -
深度优先遍历实例(C++)
问题描述:用图的邻接矩阵的方法存储一个图(图的节点是整数),然后对图进行深度优先遍历,输出图的深度优先遍历的序列,并输出其中最大的节点的值。+-+#include using namespace std;int value=-30000;//用于查找所有节点中值最小的节点值enum StatusCode {SUCCESS, FAIL, UNDER_FLOW, OVER_FLOW,原创 2018-01-02 17:10:12 · 1910 阅读 · 0 评论 -
广度优先遍历实例(C++)
问题:用图的邻接表的方法存储一个图(图的节点是整数),然后对图进行广度优先遍历,输出遍历的序列,并输出图中所有节点的值的和。// BreadthFirstTraversal// Created by apple on 2018/1/2.// Copyright © 2018年 apple. All rights reserved.//#include using names原创 2018-01-02 17:41:40 · 1337 阅读 · 0 评论 -
每日一题-计算字符串中字符索引和字符个数
每日一题-计算字符串中字符索引和字符个数//author: PzLu//date: 08/07/2019//Question: search and count#include <bits/stdc++.h>using namespace std;int main(){ //默认 string ss; set<string> di...原创 2019-07-08 19:54:18 · 298 阅读 · 0 评论