算法/数据结构
如果你也听说-小烨
http://blog.csdn.net/yangye608
展开
-
红黑树
#include<iostream>using namespace std;typedef struct node//节点结构{ int data;//数据域 node *father;//父指针 node *left;//左孩子指针 node *right;//右孩子指针 bool color;//颜色,规定黑为0,红为1}node;static原创 2016-07-28 13:32:56 · 366 阅读 · 0 评论 -
冒泡排序
#include<iostream>#include<cstdlib>using namespace std;void swap(int &a,int &b){ int temp=a; a=b; b=temp;}void BubbleSort(int *a,int n){ for(int i=0; i<n; i++) for(int j=原创 2016-07-14 13:57:47 · 225 阅读 · 0 评论 -
插入排序
#include<iostream>#include<cstdlib>using namespace std;void InsertSort(int *a,int n){ for(int i=0; i<n; i++) for(int j=i; j<n; j++) if(a[i]>a[j]) {原创 2016-07-14 13:59:06 · 177 阅读 · 0 评论 -
选择排序
#include<iostream>#include<cstdlib>using namespace std;void swap(int &a,int &b){ int temp=a; a=b; b=temp;}void ChoiceSort(int *a,int n){ for(int i=0; i<n; i++) { int原创 2016-07-14 14:00:27 · 198 阅读 · 0 评论 -
堆排序
#include<iostream>#include<cstdlib>using namespace std;void swap(int &a,int &b){ int temp=a; a=b; b=temp;}void adjust(int *a,int i,int n)//调整堆{ int lift=2*i+1,right=2*i+2;//i的左、右原创 2016-07-14 14:02:12 · 194 阅读 · 0 评论 -
归并排序
#include<iostream>#include<cstdlib>using namespace std;void Merge(int *a,int *b,int len1,int len2,int*c)//排序{ int cou1=0,cou2=0,cou3=0; while(cou1<len1||cou2<len2)//查看是否越界,没有越界就继续循环 {原创 2016-07-14 14:05:55 · 245 阅读 · 0 评论 -
快速排序
#include<iostream>#include<cstdlib>using namespace std;void print(int *a,int n);void swap(int &a,int&b){ int t=a; a=b; b=t;}int resort(int *a,int p,int r)//对子数组a[p,r]的划分,选取的值放在正确的位置原创 2016-07-14 15:38:21 · 206 阅读 · 0 评论 -
基数排序(桶排序)
#include<iostream>#include<cstdlib>using namespace std;int num(int m){ int count=0; while(m) { m/=10; count++; } return count;}int pow(int a,int b){ int s原创 2016-07-14 19:01:00 · 237 阅读 · 0 评论 -
八大排序
#include<iostream>#include<cstdlib>using namespace std;class bubble//1.冒泡排序{private: void swap(int &a,int &b) { int temp=a; a=b; b=temp; }public: void sort原创 2016-07-14 19:04:16 · 278 阅读 · 0 评论 -
栈(数组模拟)
includeusing namespace std; void clean(int *s,int n)//将栈清空 { for(int i=0;i原创 2016-07-15 13:28:47 · 300 阅读 · 0 评论 -
队列(数组模拟)
#include<iostream>using namespace std;void clean(int *s,int n)//将队列清空{ for(int i=0;i<=n;i++) s[i]=0;}bool queue_empty(int *s)//检查队列是否为空{ if(s[0]==0) return 1;//空返回1 el原创 2016-07-15 14:12:04 · 523 阅读 · 0 评论 -
双向链表
#include<iostream>using namespace std;typedef struct node//节点结构{ int date;//数据域 struct node *prev;//前指针 struct node *next;//后指针} node;node* create(node *head)//创建初始链表{ node *s,*p;原创 2016-07-18 00:06:45 · 336 阅读 · 0 评论 -
二叉搜索树
#include<iostream>using namespace std;typedef struct node//节点结构{ int data;//数据域 node *father;//父指针 node *left;//左孩子指针 node *right;//右孩子指针} node;node *findnode(node* root,int num)//原创 2016-07-20 14:40:13 · 249 阅读 · 0 评论 -
计数排序
#include<iostream>#include<cstdlib>using namespace std;void CountingSort(int *a,int n){ int max=a[0],min=a[0]; for(int i=0; i<n; i++)//找到最大值 { if(a[i]>max) max=a[i];原创 2016-07-14 14:03:54 · 198 阅读 · 0 评论