![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
数据结构与算法
Stack Overflow?Tan90
Linux系统开发者,计科专业,曾任职于某道Linux系统开发高级讲师、某上市公司系统开发
展开
-
CCF认证-出现次数最多的数201312-1(c++题解)
CCF认证-出现次数最多的数201312-1(c++题解)原创 2023-06-14 09:45:52 · 115 阅读 · 0 评论 -
不借助第三个变量实现两个值的交换
不借助第三个变量实现两个值的交换 交换两个数最常用的是借助第三个变量来实现,或者借助其它数据结构(其实也就是借助第三方来实现暂存数据)。那么如何不借助第三方实现交换两个数据呢? 方法一:利用两个值的差值来实现 原理:假如a = 5, b = 7;那么ab大小差2。已知一个变量的值,通过与另外一个变量的差值就可以知道另外的值。 可以先让a暂存与b的差值,a = b - a;a = 2; 然后将a的值赋值给b,b = b - a;b = 5; 最后在利用差值将b赋值给a;a = b + a;a = 7; t原创 2022-05-08 14:50:27 · 1050 阅读 · 0 评论 -
二叉树的遍历(c++)
本文涵盖二叉树的创建、先序、中序、后续(前三种分别给出递归与非递归算法)层序遍历原创 2022-07-04 15:04:09 · 256 阅读 · 0 评论 -
八种排序算法(c++模板实现)------详细注释版
八种排序算法(c++模板实现)------详细注释版 前言 排序算法基本上学过数据结构都是有所学习的,本篇博客不再详细介绍每种算法的基础思想,会直接通过代码及注释的方式展示出算法,方便自己及已经入门同学日常回顾! 概述 排序 种类 内部排序 使用内存 外部排序 内存不够使用需要访问外存,常见算法有:多路归并排序、外分配排序等 内部排序算法种类 排序方式 排序种类 插入排序 直接插入排序、希尔排序 选择排序 简单选择排序、堆排序 交换排序 冒泡排序、快速排序原创 2022-03-21 18:20:18 · 2131 阅读 · 0 评论 -
c++堆空间实现循环队列(超详细版本)
循环队列 循环队列示意图 队列判空判满问题 为了区分队空与队满,将分别采用三种方式: 方式一:牺牲一个队列空间用来区分, 方式二:增加成员变量size,用来记录当前队列元素个数,如果元素个数等于0时,说明队空,等于队列容量说明队满 方式三:增加标志位flag,最开始标志位设置为0,表示空,如果因为入队元素导致_rear = _front表示队满,将flag置为1;如果因为出队元素导致_rear = _front表示对空,将flag置为0 实现 方式一代码: #include <iostream&g原创 2021-12-21 15:09:02 · 578 阅读 · 0 评论 -
c++代码使用堆空间实现数据结构栈
c++代码使用堆空间实现数据结构栈 #include <iostream> using namespace std; class stack { private: int _top; int _size; int *_data; public: // 采用堆空间创建栈 stack(int size = 10) : _top(-1), _size(size), _data(new int[_size]()) {原创 2021-12-17 18:06:57 · 769 阅读 · 0 评论 -
c++实现不带头结点的双向非循环链表(代码即注释,超详细版)
c++实现不带头结点的双向非循环链表(代码即注释,超详细版) 直接上代码 #include <iostream> using namespace std; class Node { public: int _data; Node *_pre; Node *_next; Node(int data = 0) : _data(data), _pre(nullptr), _next(nullptr) { // cout << "N原创 2021-12-09 22:39:29 · 1041 阅读 · 0 评论