数据结构与算法
小白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 · 282 阅读 · 0 评论 -
C++数据结构--顺序循环队列的实现
2.10.2 顺序循环队列 顺序队列中当元素删除时,删除的元素处被置为0,但是空间实际上还在,当元素存放满时,由于删除只是置0,所以导致队首下标front后移,所以导致了之前被删除的元素造成空间浪费,存满后形成假溢出无法插入元素(实际上前边被“删除”的元素空间还在,只是值为0),所以为了节省空间,使用顺序循环队列,保证可以在插入元素放满之后(假溢出)还可以利用有效空间插入元素。随着删除和插入的动作较多时,新元素会顶替老元素的位置继续存储从而实现循环存储。 代码: seqloopqueque.h #原创 2021-01-10 14:54:08 · 293 阅读 · 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 · 282 阅读 · 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 · 226 阅读 · 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 · 555 阅读 · 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 · 197 阅读 · 2 评论