![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
happy_caffe
专注图像算法和深度学习领域在移动端的开发与应用。
展开
-
二分查找(折半查找)
二分查找(折半查找)template <typename T>int BinarySearch(T *list, const T x, const int n){ int low, high, mid; low = 0; mid = 0; high = n - 1; while (low <= high) { ...原创 2019-01-17 21:19:47 · 173 阅读 · 3 评论 -
顺序队列
ArraySequentialQueue.h:#pragma oncetemplate<class T>class Queue{public: Queue(int queueCapacity = 10); ~Queue();public: //查看队列是否为空 bool IsEmpty() const; //查看或者读取队首元素...原创 2019-01-31 23:13:06 · 168 阅读 · 0 评论 -
链表以及链表的迭代器
List.h:#pragma once template<class Type>class List;template<class Type>class ListIterator;//链表节点template<class Type>class ListNode{public: friend class List<Type...原创 2019-01-31 23:15:59 · 876 阅读 · 0 评论 -
单向循环链表
CircularLsit.h#pragma once//循环链表template<class Type>class List;template<class Type>class ListIterator;//链表节点template<class Type>class ListNode{public: friend class ...原创 2019-02-03 22:36:10 · 354 阅读 · 0 评论 -
简单的双向链表原理
#include <iostream>//带表头的双向链表using namespace std;class DblList;class DblListNode{ friend class DblList;public: int data;//数据域 DblListNode *llink;//指向左边节点 DblListNode *rli...原创 2019-02-06 20:12:30 · 300 阅读 · 0 评论 -
双向链表
#pragma onceclass IteratorMismatchException{};template <typename Object>class List{private: struct Node { Object data; Node *prev; Node *next; ...原创 2019-02-06 20:16:26 · 149 阅读 · 0 评论 -
链式栈
#pragma onceusing namespace std;template<class T>class LinkedStack;template<class T>class ChainNode{ friend class LinkedStack<T>;private: ChainNode(const T& the...原创 2019-02-06 22:19:38 · 137 阅读 · 0 评论 -
链式队列
#pragma once template<class Object>class Queue{public: Queue(); ~Queue(); bool isEmpty() const; const Object& GetFront() const;//拿出队首的数据 void enqueue(const Object&a...原创 2019-02-07 09:54:07 · 303 阅读 · 0 评论 -
基数排序
#include <iostream>#include <list>using namespace std;void print(int data[], int n){ cout << "{ "; for (int i = 0; i < n; i++) { cout << data[i] &l...原创 2019-02-07 20:54:11 · 202 阅读 · 0 评论 -
顺序栈
MyUtil.h:#pragma once#include <algorithm>//用来将数组放大一倍template <class T>void ChangeSize1D(T *a, const int oldSize, const int newSize){ if (newSize < 0) { throw "Ne...原创 2019-01-31 23:07:47 · 166 阅读 · 0 评论 -
归并排序
#include <iostream>#include <algorithm>using namespace std;//initList:初始数组//mergeList:合并之后的数组//l:数组的下标//m:数组的下标//n:一共有多少个数要合并template <typename T>void Merge(T *initList, T ...原创 2019-01-31 23:04:57 · 116 阅读 · 0 评论 -
冒泡排序
冒泡排序template <typename T>void BubbleSort(T *list, T n){ for (int i = 0; i < n - 1;++i) { for (int j = 0; j < n - i - 1; ++j) { if (list[j] > lis...原创 2019-01-17 21:20:40 · 140 阅读 · 0 评论 -
选择排序
选择排序template <typename T>void SelectSort(T* list, int num){ for (int i = 0; i < num-1; ++i) // num-1 { int min = i; int j = 0; for (int j = i + 1; j < n...原创 2019-01-17 21:21:43 · 124 阅读 · 0 评论 -
顺序排序
顺序排序template <typename T>T SequentialSearch(T *list, const int num, const T x){ int i = 0; for (; i < num; i++) { if (list[i] == x) { return i; ...原创 2019-01-17 21:22:38 · 505 阅读 · 0 评论 -
交换方法
void swap(int *px, int *py){ int temp = *px; *px = *py; *py = temp;}void swap(int &x, int &y){ int temp = x; x = y; y = temp;}template<class T>void swap(T...原创 2019-01-17 21:25:05 · 147 阅读 · 0 评论 -
折半递归和迭代查找法
int BinarySearch_Iter(int *list, const int x, const int n){ int left = 0; int right = 0; while (left <= right) { int mid = (left + right) / 2; if (x < list[mid])...原创 2019-01-17 22:23:02 · 306 阅读 · 0 评论 -
Permutation
template <typename T>void Permutations(T* list, const int k, const int n){ if (k == n) { for (int i = 0; i <= n; ++i) { std::cout << list[i]; ...原创 2019-01-19 22:36:23 · 841 阅读 · 0 评论 -
插入排序
#include <iostream>using namespace std;template <typename T>void Insert(T& e, T *a, int i){ a[0] = e; while (e < a[i]) { a[i + 1] = a[i]; i--; ...原创 2019-01-20 19:28:10 · 132 阅读 · 0 评论 -
快速排序--Quick Sort
#include <iostream>using namespace std;void QuickSort1(int iArray[], int left, int right){ //快速排序之前先判断一下当前待排序数组元素个数是不是大于1 否则就没有必要排序 if (left >= right) { //直接退出排序代码 没...原创 2019-01-31 23:03:21 · 139 阅读 · 0 评论 -
二叉树---遍历
BinaryTree.h:#pragma once#include <queue>template<class T>class BinaryTree;template<class T>class TreeNode{public: TreeNode() :leftChild(NULL), rightChild(NULL) { ...原创 2019-02-10 22:04:03 · 203 阅读 · 0 评论