![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
叶子_Y
我不会写文章!
展开
-
C++单链表、双链表基本操作参考代码
单链表#include<iostream>using namespace std;struct Node{ int data; Node* next;};void great_list(Node *p) //创建空链表{ p = new Node; p->next = NULL;}void setList_r(Node * &head, int n) { //后插创建链表 Node* p; p = new Nod原创 2020-09-24 20:16:10 · 154 阅读 · 0 评论 -
C++创建二叉树(链)
在中国大学MOOC听了武汉大学—李春葆老师的数据结构课,来写个笔记。(如有侵权,联系博主,立删。)括号表示法字符串构造二叉链:遍历所给的字符串,当一个元素后面紧跟着一个左括号"(",便代表着它有孩子结点,将这个元素入栈,去构造它的左子树和右子树,遇到",",表示右子树的开始,遇到")",表示一棵子树的结束。一个父亲结点的子树构造完成,便将其出栈。直到所给字符串遍历结束。Code#include<iostream>#include<stack>#include<原创 2020-07-31 22:33:59 · 2627 阅读 · 2 评论 -
C++归并排序(2-路归并)
前置知识归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 —百度百科实现代码#include<iostream>#include<string>#include<stack>#include<algorithm>usin原创 2021-01-04 10:41:52 · 374 阅读 · 0 评论 -
C++选择排序(直接选择/堆排序)
选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 —百度百科实现代码#include<iostream>#include<string>#include<stack>#i原创 2021-01-04 10:42:51 · 468 阅读 · 0 评论 -
C++ 交换排序(冒泡/快速排序)
前置知识所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 —百度百科实现代码#include<iostream>#include<string>#include<algorithm>using namespace std;void bubbleSort(int a[], int len) {//冒泡排序 从小到大 b原创 2021-01-04 10:42:37 · 259 阅读 · 0 评论 -
C++ 插入排序 (直接插入/拆半插入/希尔排序)
前置知识插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动 。 -----百度百科实现代码#include<iostream>#inclu原创 2021-01-04 10:42:28 · 207 阅读 · 0 评论 -
C++二叉排序树的创建、插入、删除
二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的结点。Code#include<iostream>#include<string>#include<algorithm&g原创 2021-01-04 10:42:14 · 1537 阅读 · 0 评论 -
C++构造中序线索二叉树(链)
通过构造中序线索二叉树,在对中序线索二叉树中序遍历时,实现O(1)的空间复杂度。Code#include<iostream>#include<string>#include<algorithm>#include<stack>using namespace std;struct tbtNode{ char data; int ltag;//0表示lchild域指向结点的左孩子 1表示lchild域指向结点的前驱 int rtag;//0表原创 2020-08-08 14:52:27 · 558 阅读 · 0 评论 -
C++手动封装栈和队列——数据结构
话不多说,直接上代码顺序栈#include<iostream>#include<string>#include<algorithm>using namespace std;const int Maxsize = 100;template <typename T>struct Stack{ T data[Maxsize]; int top;};template <typename T>void InitStack(Stac原创 2020-08-03 21:47:51 · 221 阅读 · 0 评论