数据结构
Tianluoyuge
这个作者很懒,什么都没留下…
展开
-
数据结构、算法与应用 (C++描述) 第二版 1.1
=。=虽然是一开始的题目都比较简单,但是咱也不能松懈不是,有题目就得做,就要解决。 **仅给有需要的人以参考,如有不对请纠正我。**#include<iostream>void swap(int & x, int & y);void swap(int & x, int & y){ int temp = x; x = y; y = temp;}int ma原创 2015-11-13 09:14:41 · 560 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.18
关于练习1.17,直接用这个就可以了。[数据结构、算法与应用 (C++描述) 第二版 1.16](http://blog.csdn.net/tianluoyuge/article/details/49863769) 关于1.18,重载了**+、-、*、/**和**>>**运算符,对于>>他要求不能写在**公有成员函数**里,所以用**友元**写,**关于+、-运算我写的比较啰嗦,是为了检测正原创 2015-11-16 15:35:09 · 581 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.23
求解两个数的最大公约数,欧几里得算法。仅供有需要的人以参考,如有错误请纠正我#include<iostream>unsigned long gcd(int x, int y){ if (y == 0) return x; else return gcd(y, x % y);}int main(){ std::cout << gcd(20原创 2015-11-17 10:11:36 · 426 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.25
子集生成算法,这是我从网上看来的,不是太理解,留着以后看= = **仅供有需要的人以参考,如有错误请纠正**#include<iostream>void Subset(char list1[], int list2[], int n, int m){ if (n == m) { std::cout << "{ "; for (原创 2015-11-17 11:15:10 · 1010 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.19
= =我准备换本书看了,这本讲的稍微有点乱,在新书没到之前我还是继续看这本,当然练习也继续做咯。 **仅供有需要的人以参考,如有错误请纠正**递归阶乘#include<iostream>int f(int x){ if (x == 0) return 1; else return (x * f(x - 1));}in原创 2015-11-17 08:22:27 · 482 阅读 · 0 评论 -
数据结构、算法与应用(C++描述) 第二版 1.20
递归计算斐波那契数列,公式是我百度来的。 **公式:f(n) = f(n - 1) + f(n - 2)**。 **仅供有需要的人以参考,如有错误请纠正我**递归:#include<iostream>int f(int n){ static int count = 0; count++; std::cout << count << std:原创 2015-11-17 09:14:26 · 623 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.21
这一题我把递归和非递归写在了一起,注释掉的是递归,没注释的是非递归。 **仅供有需要的人以参考,如有错误请纠正我**#include<iostream>/*unsigned long f(int n){ if (n % 2 == 0) return n / 2; else return f(3 * n + 1);}*原创 2015-11-17 09:35:05 · 507 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.22
我看百度百科上说A(4, 3)的输出大到无法精确计算,就好奇的试了一下= =。 **仅供有需要的人以参考,如有错误请纠正我**#include<iostream>unsigned long A(int i, int j){ if (i == 1 && j >= 1) return pow(2, j); else if (i >= 2原创 2015-11-17 10:00:47 · 682 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.24
递归模板函数,判断元素x是否属于数组a[0:n-1] **仅供有需要的人以参考,如有错误请纠正我。**#include<iostream>template<typename T>bool suan(T list[], int n, T x){ if (n < 0) return false; else if (list[--n] == x)原创 2015-11-17 10:24:41 · 517 阅读 · 0 评论 -
矩阵相乘
矩阵相乘, 矩阵A X 矩阵B = 矩阵C取矩阵A的行与矩阵B的列为矩阵C的行列例如:A[10][20] * B[21][22] = C[10][22]C[i][j] = A的I行的所有元素与B列的所有元素一一对应相乘得到的积相加。 **仅供有需要的人以参考,如有错误请纠正我**#include<iostream>using namespace std;int原创 2015-11-19 15:48:44 · 519 阅读 · 0 评论 -
同位大整数加法算法
位数相同的大整数加法算法。 仅供有需要的人以参考,如有错误请纠正我#include<iostream>using namespace std;int main(){ const unsigned NUM = 4; //3*4位大整数 unsigned int a1[NUM] = { 198, 672,原创 2015-11-19 11:33:29 · 561 阅读 · 0 评论 -
埃拉托色尼筛选算法
求素数算法。#include<iostream>using namespace std;int main(){ const unsigned int NUM = 5500;//这里修改要求的2~n(5500)之间的素数 bool arr[NUM] = {0, 0}; for (int i = 2; i < NUM; i++) arr[i] = 1;原创 2015-11-19 11:08:17 · 574 阅读 · 0 评论 -
大数相乘算法
不能计算负数,小数。用string对象存储数值,然后逆序排列,从左向右相乘进位。[参考1](http://www.cnblogs.com/heyonggang/p/3599857.html)[参考2](http://www.cnblogs.com/life91/p/3389890.html)#include<iostream>#include<string>void fan(std::s原创 2015-11-19 14:29:16 · 552 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.16
按照惯例,分了三个部分(头文件,头文件实现,main)来写。只是按照他的要求粗略的写了一下,没有优化。 **仅供有需要的人以参考,如有错误请纠正我**头文件:currency.h#ifndef CURRENCY_H_#define CURRENCY_H_#include<iostream>#include<exception>enum signType { plu,原创 2015-11-16 11:38:16 · 709 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.15
1)他假设无符号长整型、无符号整型都占用4字节,所以可容许的货币最大值应为:2^32 - 1 = 4294967295,最小值应为:0 2)美分的最大值应为:99,最小值应为:-99. 美元的最大值应为:-2147483648到+2147483647 (因为他没有说是**无符号**) 3)为了确保cureency类型转换成long int类型时不发生错原创 2015-11-16 09:31:27 · 452 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.13
**仅给有需要的人以参考,如有错误请纠正我**#include<iostream>template<typename T>void changeLength1D(T * &ar, int oldLength, int newLength){ T * min = new T[newLength]; for (int i = 0; i < newLength; i++)原创 2015-11-13 15:45:59 · 823 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.9
程序1-1:int abc(int a, int b, int c){ return a + b * c;}程序1-2:float abc(float a, float b, float c){ return a + b * c;}1)cout << abc(1, 2, 3) << endl; 调用了第一个abc(int , int, int); 2)cout << ab原创 2015-11-13 11:29:51 · 505 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.2
刚刚发错了,这才是第二题。。。深感抱歉这题的意思没太看懂- -,计算a[0:n-1]的数值个数,那直接输出n-1不就好了。。谁理解题目意思的请告诉我。**仅给有需要的人以参考,如有错误请纠正我**#include<iostream>template<typename T, typename V>void fill(T arr[], int n, V value){ for (int原创 2015-11-13 09:42:14 · 617 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.6
这个写了蛮长时间的,主要是在想如何让程序判断不是一种排序后检查是不是另一种排序,我想出的这个方法可能不是最优的,如果谁有更好的办法,请留言告诉我。**仅给有需要的人以参考,如有错误请纠正我**#include<iostream>template<typename T>bool is_sorted(T arr[], int n){ T temp; int i; for原创 2015-11-13 11:03:06 · 781 阅读 · 0 评论 -
数据结构、算法与应用(C++描述) 第二版 1.7
这个蛮简单的,求两个数组第一个不一样的数值的索引,我就直接上源码了。**仅给有需要的人以参考,如有错误请纠正我**#include<iostream>template<typename T>int mismatch(T a[], int va, T b[], int vb){ for (int i = 0; i < va > vb ? vb : va; i++) //va >原创 2015-11-13 11:17:08 · 530 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.12
这个比较复杂一点,我在源码里做了一点注释,应该可以看懂。 **仅给有需要的人以参考,如有错误请纠正我**#include<iostream>template<typename T>void make2dArray(T ** &x, int numberOfRows, int arr[], int n) //这里接收一个int数组arr[] 用来指定每行new多少列{原创 2015-11-13 15:28:13 · 723 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.10
直接上代码#include<iostream>#include<cstdlib>int abc(int a, int b, int c){ if (a < 0 && b < 0 && c < 0) throw 1; else if (a == 0 && b == 0 && c == 0) throw 2; return a + b * c原创 2015-11-13 11:54:55 · 856 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.14
这一题有点麻烦,需要判断新的长度是否大于原来的长度,我只做了修改行数,列数如果哪位做出来的话请在评论发一下,我会署上你的名字添加到文章里的。 **仅给有需要的人以参考,如有错误请纠正我** #include<iostream>template<typename T>void changeLength2D(T ** &ar, int oldLength, int n原创 2015-11-13 16:17:56 · 1310 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.8
int abd(int a, int b, int c);float abc(int a, int b, int c);这两个函数虽然返回类型不同,但是形参是相同的,编译器只看形参来判断是否重载,所以这两个函数头不是具有不同签名的函数。 **仅给有需要的人以参考,如有错误请纠正我**原创 2015-11-13 11:21:39 · 784 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.5
**仅给有需要的人以参考,如有不对请纠正我** = = 这个题目应该就是给一个数值然后依次加上数组索引值之后赋给数组相应位置。#include<iostream>template<typename T, typename V>void iota(T a[], int va, V value){ for (int i = 0; i < va; i++) a原创 2015-11-13 10:29:18 · 487 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.4
∑:符号是∑,英文译音是Sigma, 表示数学中的求和号,是数学中常用的符号,主要用于求多项数之和,用∑表示。【这是我从百度百科复制来的】∑有上下标,下标表示从第几个序列开始,上标表示第几个序列结束,比如3∑ (2i + i)i = 1就是要计算 (2*1 + 1) + (2 * 2 + 2) + (2 * 3 + 3)**P.s:**书上给出的西格玛上标是n-1,下标I = 0,所以我原创 2015-11-13 10:07:07 · 565 阅读 · 0 评论 -
数据结构、算法与应用(C++描述)第二版 1.3
第二题,不知道要说啥,直接上源码了【所有的英文全都是我有道翻译的,我英文并不好 - -!】。 **仅给有需要的人以参考,如有错误请纠正我**P.s:这个是指定数组大小的#include<iostream>const int size = 10;template<typename T, typename V>void fill(T arr[], int n, V value){原创 2015-11-13 09:31:43 · 625 阅读 · 0 评论 -
数据结构、算法与应用 (C++描述) 第二版 1.11
比较简单,就不做太多赘述了。 **仅给有需要的人以参考,如有错误请纠正我**#include<iostream>template<typename T>int count(T arr[], int n){ if (n < 1) throw "Num must be greater than 1;"; int count; for (coun原创 2015-11-13 14:51:15 · 436 阅读 · 0 评论 -
魔方矩阵 C++实现
书上的一道题目,魔方矩阵,一行的元素相加与一列的元素相加的和一样大,对角线也一样大一开始不会写,百度也没找到。。后来自己慢慢单步调试写出来了。。。 **仅供有需要的人以参考,如有错误请纠正我**#include<iostream>using namespace std;int main(){ const int N原创 2015-11-19 18:02:55 · 4176 阅读 · 0 评论