Rick's Blog

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

随笔分类 -  01.Algorithms

摘要:一、最长递增子序列递推公式:F[1] = 1;F[i] = max{1,F[j]+1 | aj<ai&&j<i} 阅读全文
posted @ 2014-06-07 23:50 rick-hsg 阅读(143) 评论(0) 推荐(0)

摘要:题目描述:判断两序列是否为同一二叉搜索树序列输入:开始一个数n,(1#includestruct Node{ //树结点结构体 Node *lchild; Node *rchild; int c;}Tree[10];int loc;//静态数组中已经分配的结点个数Node *creat(){//申请一个结点空间,返回指向其的指针 Tree[loc].lchild = Tree[loc].rchild = NULL; return &Tree[loc++];}char str[25],str1[25],str2[25];int size=0;void preOrde... 阅读全文
posted @ 2014-04-07 21:54 rick-hsg 阅读(648) 评论(3) 推荐(0)

摘要:题目描述: 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入: 输入第一行包括一个整数n(1#includestruct Node{ //树结点结构体 Node *lchild; Node *rchild; int c;}Tree[100];int loc;//静态数组中已经分配的结点个数Node *creat(){//申请一个结点空间,返回指向其的指针 Tree[loc].lchild = Tree[loc].rchild = NULL; return &Tree[loc++];}void preOrder(Node * T){//前序遍历树... 阅读全文
posted @ 2014-04-07 21:21 rick-hsg 阅读(179) 评论(0) 推荐(0)

摘要:由前序遍历串与中序遍历串还原二叉树,并得到二叉树的后序遍历串。 1 #include 2 #include 3 struct Node{ //树结点结构体 4 Node *lchild; 5 Node *rchild; 6 char c; 7 }Tree[50]; 8 9 ... 阅读全文
posted @ 2014-04-07 16:38 rick-hsg 阅读(268) 评论(0) 推荐(0)

摘要:求集合K中权值最小的两个元素,使用堆数据结构。O(logn)。绕过对堆的实现。使用标准模板库中的--优先队列。#include using namespace std;priority_queue Q; //建立的是最大堆; priority_queue,greater> Q; //建立的是最小堆;将元素x放入堆中:Q.push(x);取出堆顶元素:int a = Q.top();弹出堆顶元素:Q.pop();#include#includeusing namespace std;priority_queue,greater > Q;int main(){ int n; while 阅读全文
posted @ 2014-04-07 14:50 rick-hsg 阅读(155) 评论(0) 推荐(0)

摘要:题目描述:有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天输入:有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出:每组数据输出一行,即日期差值样例输入:2011041220110422样例输出:11 1 #include 2 #define ISYEAP(x) (x%100!=0 && x%4==0 || x%400==0)? 1 : 0 3 int dayofmonth[13][2]={ 4 0,0, 5 31,31, 6 28,29, 7 31,31, 8 30,30, 9 31,31,10 30,30,11 31, 阅读全文
posted @ 2014-04-04 10:44 rick-hsg 阅读(239) 评论(0) 推荐(0)