2013年4月23日

用类的对象来排序

摘要: 问题 E: 1,2,3班_Contest1_Q5时间限制: 1 Sec 内存限制: 128 MB 提交: 320 解决: 166 [提交][状态][讨论版]题目描述定义抽象排序模板类Tsortin,该类有一个纯虚函数sortmtd;定义排序模板类Tmysort,该类继承自类Tsortin并实现纯虚函数sortmtd,使用任意一种排序算法实现纯虚函数sortmtd。在main函数中,使用排序模板类Tmysort对象,对整型数组进行从小到大的排序。输入输入为若干组数据,每组数据用2行表示,第1行为一个整数n,表示接下来输入的是一个具有n个整数的数列,第2行为n个整数。n大于0小于5000。数列中的 阅读全文

posted @ 2013-04-23 23:56 Besion王 阅读(247) 评论(0) 推荐(0) 编辑

应用vector类来定义二维数组

摘要: Description在类模板T_Matrix中使用类模板T_Vector(向量运算类模板)实现矩阵的加、减运算,在main函数中使用类模板T_Matrix建立整型矩阵对象进行矩阵的加减运算。Input输入为若干组数据,每组数据用若干行表示,其中第1行为一个字符(+或-),表示接下来输入的两个矩阵所要做的运算,第2行为两个整数m和n,表示接下来输入的两个矩阵均为m*n的矩阵。随后若干行为两个n*m的矩阵。Output输出为若干组数据,每组数据用若干行表示,为一个m*n的矩阵,即运算结果。Sample Input+2 31 2 34 5 61 2 34 5 6-2 31 2 34 5 67 8 阅读全文

posted @ 2013-04-23 23:37 Besion王 阅读(2103) 评论(0) 推荐(0) 编辑

类的运算符重载的事例

摘要: 1 #include<iostream> 2 using namespace std; 3 class DoubleMath{ 4 int high; 5 int *th; 6 public : 7 DoubleMath(int h,int*it); 8 DoubleMath(DoubleMath & it); 9 ~DoubleMath(){delete th;}10 void build();11 friend DoubleMath operator+(DoubleMath & one, DoubleMath & two);12 frien... 阅读全文

posted @ 2013-04-23 23:31 Besion王 阅读(209) 评论(0) 推荐(0) 编辑

类实现时间差

摘要: Problem A: 1,2,3班_Contest1_Q1Time Limit: 1 Sec Memory Limit: 128 MB Submit: 517 Solved: 142 [Submit][Status][Web Board]Description设定一个时间类,类中包含年、月、日,计算任意两个时间之间的天数,并显示出来。注意闰年与平年类如下:class Date{private: int year; int month; int day;public: Date(void); Date(int year,int month,int day); ~Date(void); int g 阅读全文

posted @ 2013-04-23 23:27 Besion王 阅读(149) 评论(0) 推荐(0) 编辑

2012年12月2日

二叉树的层次遍历(队列实现)

摘要: 层次遍历的C++算法代码:(传入的是二叉树的根结点) 1 template <class Elem> 2 void level(BinNode<Elem>* subroot) 3 { 4 AQueue<BinNode<Elem>*> Q; 5 Q.enqueue(subroot); 6 while(!Q.isEmpty()) 7 { 8 BinNode<Elem>* temp; 9 Q.dequeue(temp); //返回temp指针是Q队列的表头的二叉树中的结点,而temp指针的结点已经被dequeue(出列)10... 阅读全文

posted @ 2012-12-02 17:12 Besion王 阅读(2518) 评论(0) 推荐(0) 编辑

关键码是否在目标二叉树中(search函数)

摘要: 编写一个递归函数search,传入参数为一颗二叉树根结点root和关键码值K,如果出现K返回true值,否则返回false值。课本的答案为:1 template <class Key, class Elem, class KEComp>2 bool search(BinNode<Elem>* subroot, Key K);3 { 4 if (subroot == NULL) return false;5 if (subroot->value() == K) return true;6 if (search(subroot->right())) ret... 阅读全文

posted @ 2012-12-02 11:40 Besion王 阅读(491) 评论(0) 推荐(0) 编辑

将general树转化为二叉树

摘要: 在general树中,二叉树A的左子结点是树中的A的最左子结点,A的右子结点是树中A的右侧兄弟结点转化算法代码:1 template <class Elem>2 BinNode<Elem>* convert(GTNode<Elem>* genroot) 3 {4 if (genroot == NULL) return NULL;5 GTNode<Elem>* gtemp = genroot->leftmost_child();6 btemp = new BinNode(genroot->val(), convert(gtemp),co 阅读全文

posted @ 2012-12-02 09:44 Besion王 阅读(132) 评论(0) 推荐(0) 编辑

2012年12月1日

二叉树的顺序表示法(" ' "代表有子结点,"/"代表空指针,无'代表无子结点)

摘要: 可以把图6.16中的二叉树表示如下: A'B'/DC'E'G/F'HI从二叉树中读取的print函数C++算法代码: 1 template<class Elem> 2 void printhelp(BinNode*subroot) 3 { 4 if(subroot==NULL) cout<<"\\"; 5 else cout<<subroot->value(); 6 if((subroot->left==NULL)&&(subroot->right==NULL)) 阅读全文

posted @ 2012-12-01 20:49 Besion王 阅读(347) 评论(0) 推荐(0) 编辑

二叉树的顺序表示法("/"代表空指针)

摘要: 对于图6.16中的二叉树,相应的顺序表示结点表示如下: AB/D//CEG///FH//I//(数据结构课本中的135页)从二叉树中用printhelp函数打印出来,printhelp函数的C++算法代码:1 template<class Elem>2 void printhelp(BinNode*subroot)3 {4 if(subroot==NULL) {cout<<"\\";return;}5 cout<<subroot->value();6 printhelp(subroot->left());7 printhelp 阅读全文

posted @ 2012-12-01 20:49 Besion王 阅读(763) 评论(0) 推荐(0) 编辑

General树的顺序表示法(")"代表一个结点的结束)

摘要: 可以把图6.3中的树如下表示:RAC)D)E))BF)))读取的函数的算法代码: 1 template<class Elem> 2 void printhelp(BinNode*subroot) 3 { 4 if(subroot==NULL) {cout<<")";return;} 5 cout<<subroot->value(); 6 BinNode<Elem>*root=subroot->leftmost_child(); 7 printhelp(root); 8 if(root->right_iblin 阅读全文

posted @ 2012-12-01 20:48 Besion王 阅读(223) 评论(0) 推荐(0) 编辑

导航