
数据结构
文章平均质量分 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 · 107 阅读 · 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 · 109 阅读 · 0 评论 -
数组/向量
C风格数组int arr1[10];arr1实际上是一个指向大到足以存储10个int型量的内存指针; 大小由程序员确定内存快可以通过new[]分配,但此后必须通过delete[]释放内存块不能调整大小(但可以获得一个新的、根据推测可能更大的内存块,并利用原来的内存块初始化,然后将原内存块释放)Vector#include<algorithm>template<...原创 2018-12-13 08:45:51 · 862 阅读 · 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 · 116 阅读 · 0 评论 -
散列表
散列表及其查找1. 散列的概念散列表(hash table)是表示查找结构的一种有效方法。通过将关键码映射到表中某个位置来存储元素,然后根据关键码用同样的方式来直接访问。存储位置与关键码之间的对应函数关系 Address = hash(key) 。2. 常见散列函数直接定址法除留余数法数字分析法平方取中法折叠法3. 解决冲突的开地址法通常关键码集合比散列表地址集合大得多。因...原创 2018-12-11 19:08:12 · 165 阅读 · 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 · 160 阅读 · 0 评论