- 博客(4)
- 收藏
- 关注
原创 数据结构之堆
堆以及堆排序堆的定义:1.是一颗完全二叉树(除最后一层叶子节点,其他层级节点不为空,并且叶子节点全部要偏向左边)2.当前节点的值要大于等于(小于等于)左右子树,那么就会有大顶堆和小顶堆的区别,大顶堆意味着堆顶值最大,小顶堆意味着堆顶最小如何实现堆由于完全二叉树的定义,那么堆完全可以使用数组的形式进行实现,通过下标来确定每个节点的位置,这样就省去了左右节点指针的额外开销。1.插入:方式1:从下往上进行插入,每次都将值放在最末端,通过不断与其父节点比较并且置换。方式2:将所有数据先放入到数
2020-09-22 23:21:32 64
原创 数据结构学习之路之二叉搜索树
二叉搜索树代码如下:#include<stdlib.h>#include<iostream>template<typename T>struct Tree{ Tree* right; Tree* left; T data; Tree(Tree* pRight,Tree* pLeft,T nVal):right(pRight),left(pLeft),data(nVal){};};template<typename
2020-09-16 22:35:07 58
原创 数据结构与算法之美链表练习
简单的单向链表template<typename T>class SingleList{public: Node<T>* pHead;public: SingleList()=default; SingleList(T d):pHead(new Node<T>(d)){}; //增 void addNode(T val) { if(!pHead) pHead = new No
2020-07-08 21:35:59 110
原创 数据结构与算法之美练习
数组和链表数组实现一个支持动态扩容的数组实现一个大小固定的有序数组,支持动态增删改操作实现两个有序数组合并为一个有序数组#include<stdlib.h>#include<vector>using namespace std;//动态数组相关操作template<typename T>class Array{public: Array(int nSize = 3) { m_array = new T[nSize
2020-07-07 21:42:05 96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人