数据结构&算法
文章平均质量分 59
clarence_cpp
这个作者很懒,什么都没留下…
展开
-
二叉搜索树_c++
#includeusing namespace std;template struct BinaryNode{ BinaryNode(const T& t):key(t), p(0),left(0),right(0){} T key; BinaryNode *p; BinaryNode *left; BinaryNode *right;};template class Bi原创 2014-04-13 17:03:34 · 705 阅读 · 0 评论 -
栈(数组形式)实现_c++
templateclass Stack{public: Stack():top(-1),MAXSZIE(20) { stacka = new Type[MAXSZIE]; } ~Stack() { delete []stacka; } bool Push(const Type& value); bool Pop(); Type Top(); bool Empty(原创 2014-04-16 20:13:56 · 671 阅读 · 0 评论 -
队列(链表形式)实现_c++
template class Queue;template ostream& operator&);template class QueueItem{ friend class Queue; friend ostream& operator (ostream&, const Queue&); QueueItem(const T& t):item(t),next(0){} T it原创 2014-06-22 15:01:08 · 908 阅读 · 0 评论 -
堆排序实现_c++
#include #include using namespace std;int Left(int i){return 2*i;}int Right(int i){return 2*i+1;}template void MaxHeapfy(vector& heap, int i, int heap_size){int l = Left(i);int r = Right(i);int larges原创 2014-04-12 11:08:51 · 618 阅读 · 0 评论 -
快速排序实现_c++
templatevoid ShellSort(vector& v){ for (int gap = v.size(); gap > 0; gap /=2) { for (int i = gap; i < v.size(); ++i) { Type tmp = v[i]; int j = i; for (; j >= gap && tmp < v[j-gap];原创 2014-04-27 11:44:02 · 604 阅读 · 0 评论 -
栈(vector)实现 c++
#include #includeusing namespace std;template class Stack{public: void Push(const T& key); void Pop(); T& Top(); bool Empty() const;private: vector c;};template void Stack::Push(const T原创 2014-05-10 14:06:46 · 1540 阅读 · 0 评论 -
归并排序实现_c++
templatevoid Merge(vector &a, int p, int q, int r){ int left_end = q; int right_end = r; int left_pos = p; int right_pos = q+1; int numElements = r - p + 1; vector temp_vector; while (left_p原创 2014-04-17 22:58:18 · 651 阅读 · 0 评论 -
快速排序实现_c++
templateint Partition(vector& a, int start, int end){ Type pivot = a[end]; int i = start-1; for (int j = start; j < end; ++j) { if (a[j] <= pivot) { swap(a[++i],a[j]); } } swap(a[原创 2014-04-17 20:19:11 · 530 阅读 · 0 评论 -
插入排序实现_c++
templatevoid InsertSort(vector& a){ for (int j = 1; j < a.size(); ++j) { Type key = a[j]; int i = j-1; while (i>=0 && a[i]>key) { a[i+1] = a[i]; i--; } a[i+1] = key; }}原创 2014-04-17 19:15:04 · 524 阅读 · 0 评论 -
双向链表实现_c++
#include using namespace std;template class List;template class ListNode{ friend class List; ListNode(const T& t):key(t),prev(0),next(0){} T key; ListNode *prev; ListNode *next;};template原创 2014-04-16 17:15:33 · 672 阅读 · 0 评论 -
队列(数组形式)实现_c++
template class Queue{public: Queue():MAXSIZE(20),head(0),tail(0),count(0) { array = new Type[MAXSIZE]; } ~Queue() { delete []array; } bool IsFull(); bool IsEmpty(); bool EnQueue(const Ty原创 2014-04-16 20:56:42 · 845 阅读 · 0 评论