- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 c++简单的链表插入操作
#include<iostream>using namespace std;struct ListNode{ int val; ListNode * next; ListNode(int x): val(x),next(NULL){ }};int getLength(ListNode *head){ int len = 0; while(head) { len++; head = head->next; } return len;}void prin
2021-09-24 14:19:15
1508
原创 数据结构与算法——c++8种排序算法集合
排序算法,结合大话数据结构使用更佳不稳定的排序:希尔,堆,快排#include<iostream>#include<algorithm>#include<vector>using namespace std;class Sort{ public: //1. 冒泡排序法 void Bubble(vector<int> &a) { int len = a.size(); for(int i = 0; i < len; +
2021-09-20 17:33:39
252
原创 数据结构与算法——树的构建和遍历
树的构建方法:通过前序和中序或者中序和后序可以重构二叉树,故也可以通过该方法构建一个二叉树遍历:前序,中序,后序和层序,都采用迭代方式。#include<iostream>#include<vector>#include<stack>#include<queue>using namespace std;struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(i
2021-09-18 21:34:41
574
原创 数据结构与算法(2)——堆排序
思路:利用大顶堆/小顶堆的特性~将数组看作完全二叉树的层序遍历;大顶堆为父结点值>孩子结点,小顶堆为父结点值>孩子结点;设父结点下标为i(0≤i≤len/2-1,则左右孩子结点的下标为2i+1,2i+2。则堆排序分为两步:step1:调整数组,初步将所有的父结点调节成大值(大顶堆)step2:进行循环操作,将父结点依次放到尾部(即,大的放到最后,形成了排序),然后对剩余的进行大顶堆调整!#include<iostream>#include<vector>
2021-08-09 22:16:10
133
原创 数据结构与算法——图
图的邻接矩阵存储及其深度遍历与广度遍历实现原理讲解视频推荐:DFS:懒猫老师的DFS介绍BFS:懒猫老师的BFS介绍以上视频结合动图加深理解,个人觉得非常推荐~原理讲解文字版#include<iostream>#include<queue>using namespace std;#define maxsize 100 //邻接矩阵方式实现图 //是否访问过该顶点,故为一维的! 由于递归的不断变化,故要设置成全局变量 int visited[maxsize] =
2021-07-12 22:15:51
115
原创 数据结构与算法——排序算法1
排序算法C++实现(一)主要实现冒泡排序、简单选择排序、直接插入排序和希尔排序法。前三者的时间复杂度都为O(n2),希尔排序作为插入排序法的一种,其在内部进行分组,使得时间复杂度为O(nlogn)。运行结果: #include<iostream>#include<vector>#include<algorithm>using namespace std;void exchange(int &a, int &b);void test01(in
2021-07-08 23:28:43
173
1
原创 循环队列的C++实现
循环队列的C++实现#大话数据结构学习包括了类定义与调用验证循环队列用两个指针,一个指向队头,一个指向队尾;队尾负责进队,队头负责出队(如同吸管)缺陷是吸管的长度固定呀!(所以有下一节的链式队列~#include <bits/stdc++.h>using namespace std;/*template <class Datatype>struct Queue{ int front; int rear; Datatype data;};*/templat
2021-04-28 15:49:34
279
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人