![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
小白piao
一个曾经玉树临风,如今秃顶的老登儿,提供专业的C++和Python相关的知识供大家学习
展开
-
C++数据结构--单向循环链表的实现
3.3.2 单向循环链表也分为带头节点和不带头节点这里用带头节点的写就是普通单向链表将尾结点的next指针指向头节点即可关键是当循环链表为空时,头节点的next指向自己本身.h文件://// Created by iotek_chen on 2021/1/19.//#include <iostream>#include <string>using namespace std;#ifndef LOOPBASICLINKLIST_LOOPBASLLIST_H原创 2021-01-19 21:06:22 · 254 阅读 · 0 评论 -
C++数据结构--顺序循环队列的实现
2.10.2 顺序循环队列 顺序队列中当元素删除时,删除的元素处被置为0,但是空间实际上还在,当元素存放满时,由于删除只是置0,所以导致队首下标front后移,所以导致了之前被删除的元素造成空间浪费,存满后形成假溢出无法插入元素(实际上前边被“删除”的元素空间还在,只是值为0),所以为了节省空间,使用顺序循环队列,保证可以在插入元素放满之后(假溢出)还可以利用有效空间插入元素。随着删除和插入的动作较多时,新元素会顶替老元素的位置继续存储从而实现循环存储。代码:seqloopqueque.h#原创 2021-01-10 14:54:08 · 267 阅读 · 0 评论 -
C++数据结构--顺序队列的实现
2.10.1 顺序队列 特殊的线性表,有一个队头和队尾,队头只能删除元素,队尾只能添加元素,先进队列的元素先出(先进先出)。有两个指针分别指向队头和队尾。代码:squeue.h#ifndef SQUEUE_H#define SQUEUE_H#define SQUEUESIZE 40#include <memory.h>#include <iostream>using namespace std;class Squeue{public: Squ原创 2021-01-10 11:04:14 · 272 阅读 · 0 评论 -
C++数据结构--顺序栈的实现
2.9 数据结构–栈 是一种只可以从一端插入和删除元素的线性表,允许进行插入和删除的一端称之为栈顶,栈顶是动态变化的,和线性表一样,他也有两种存储方式:顺序存储和链式存储。2.9.1 顺序栈seqstack.h#ifndef SEQSTACK_H#define SEQSTACK_H#define STACKSIZE 100#include <iostream>#include <memory.h>using namespace std;class Seq原创 2021-01-09 22:25:16 · 212 阅读 · 0 评论 -
C++排序算法实现及原理精析:冒泡、选择、插入、快速、归并排序
文章目录2.2 冒泡排序2.3 选择排序2.6 插入排序2.7 快速排序2.8 归并排序2.2 冒泡排序排序逻辑:从左向右扫描数据,选择最大的数据,放在右边。要点:从左边开始,比较相邻的两个数字,如果左边的数字大于右边的,就进行交换。,第一趟拍完,会将最大的数字排放在最后的位置,第二趟排完会将第二大的数字排放在倒数第二个,以此类推直到排序结束。后续过程依次类推即可。排序实现:#include <iostream>#include <algorithm>#i原创 2021-01-06 16:57:47 · 446 阅读 · 1 评论 -
C++大法:瞎搞一个阉割版本的List实现,凑合能看,单向链表实现(小白piao分享)
这内容不适合初学者这玩意就是瞎搞搞出来的,大家凑合看,没有做什么优化,比起专业的这个很菜,但是,对于稍微有点开发经验的同学来说大有裨益。这玩意直接怼代码了里边有些注释,需要提前了解数据结构中的单向链表,后续出双向和循环的实现。首先是个头文件mylist.h#ifndef MYLIST_H#define MYLIST_H#include <string>#include <iostream>using namespace std;class MyList{p原创 2020-12-30 20:22:16 · 173 阅读 · 2 评论