
数据结构
iwonako
这个作者很懒,什么都没留下…
展开
-
2021-11-07翻转链表(带头结点)
struct linknode{ int val; linknode* next; } void reverselinklist(linknode* root){ if(nullptr==root)return; linknode* pre=nullptr,cur=root->next; while(cur){ cur->next=pre; pre=cur; cur=pre->next; } .原创 2021-11-07 20:11:10 · 141 阅读 · 0 评论 -
哈希表部分实现
只做了增删查,基本的数据类型和字符串 template<class T> class HashMap { template<class T>//基本数据类型 struct item { T _value; item<T>* _next;//用链表,无需扩容 explicit item(T value = 0) :_next(nullptr), _value(value){} }; .原创 2021-07-25 05:43:55 · 129 阅读 · 0 评论 -
桶排序
要知道数据范围,然后定划分多少个区间,暂时不支持负数? template<class T> void my_printAry(T* a, int len) { if (a == nullptr || !len)return; for (int i = 0; i < len; i++)cout << a[i] << " "; cout << endl; } template<class T,int NUM>//分成N..原创 2021-07-23 23:59:41 · 83 阅读 · 0 评论 -
计数排序
void countSort(int* a, int len) { if (a == nullptr || !len)return; int min = a[0], max = a[0]; for (int i = 1; i < len; i++) { if (a[i] > max)max = a[i]; else if (a[i] < min)min = a[i]; } int* cnt = new int[max.原创 2021-07-23 21:34:23 · 87 阅读 · 0 评论 -
b树 c++
#include<queue> template<class K,int M = 3> struct BTreeNode {//M阶b树 K _key[M];//从0开始,M-1用于溢出时暂时存放 BTreeNode<K, M>* _sub[M + 1];//子树指针,从0开始,M+1暂时存放 BTreeNode<K, M>* _parent; size_t _keynum;//关键字个数 BTree...原创 2021-07-22 20:57:51 · 120 阅读 · 0 评论 -
平衡树AVL
需要注意的是删除结点,有时删除结点不会影响此结点所在层的平衡,如删除50,会在递归返回时判断出40的平衡受影响 当删除30时,用31补充。30所在层的平衡已经被破坏,需要马上调整 40 30 70 2031 50 19 template<class T> struct BinTree { T data; BinTree* left, * right; ...原创 2021-07-16 22:16:01 · 90 阅读 · 0 评论