数据结构
文章平均质量分 66
chasein
这个作者很懒,什么都没留下…
展开
-
二叉树
求二叉树的高度(深度) 对于二叉树,树的高度和深度相等,对于某个节点来说就不一样了。 struct Node{ int val; Node* left; Node* right; }; int findHeight(Node* root){ if(root == NULL) return -1; return max(findHeight(root->left), findHeight(root->right)) + 1;原创 2020-07-05 14:31:03 · 89 阅读 · 0 评论 -
队列
队列的数组实现 template<typename T, int size = 100> class ArrayQueue{ private: int first, last; T storage[size]; public: ArrayQueue(){ first = last = -1; } void enqueue(T); T dequeue(); bo原创 2018-12-09 09:12:36 · 90 阅读 · 0 评论 -
数组/向量
C风格数组 int arr1[10]; arr1实际上是一个指向大到足以存储10个int型量的内存指针; 大小由程序员确定 内存快可以通过new[]分配,但此后必须通过delete[]释放 内存块不能调整大小(但可以获得一个新的、根据推测可能更大的内存块,并利用原来的内存块初始化,然后将原内存块释放) Vector #include<algorithm> template<...原创 2018-12-13 08:45:51 · 821 阅读 · 0 评论 -
栈
栈的简单C实现 #define maxSize 20 typedef int typename; typedef struct { typename elem[maxSize]; int top; }Stack; //初始化 void initStack(Stack& s){ s.top = -1; } //入栈 void push(Stack& s, typenam...原创 2018-12-09 09:11:55 · 95 阅读 · 0 评论 -
散列表
散列表及其查找 1. 散列的概念 散列表(hash table)是表示查找结构的一种有效方法。通过将关键码映射到表中某个位置来存储元素,然后根据关键码用同样的方式来直接访问。存储位置与关键码之间的对应函数关系 Address = hash(key) 。 2. 常见散列函数 直接定址法 除留余数法 数字分析法 平方取中法 折叠法 3. 解决冲突的开地址法 通常关键码集合比散列表地址集合大得多。因...原创 2018-12-11 19:08:12 · 136 阅读 · 0 评论 -
二分查找
非递归实现 //二分查找非递归版本 #include&amp;amp;lt;iostream&amp;amp;gt; #include&amp;amp;lt;vector&amp;amp;gt; int binarySearch(std::vector&amp;amp;lt;int&amp;amp;gt; data, int k){ int low = 0; int high = data.size() -原创 2018-12-17 21:55:52 · 133 阅读 · 0 评论