本帖最后由 callmesb 于 2012-8-11 19:14 编辑 1,实现大整数的运算(不允许将整形转换为浮点型) (1) 计算64位长整数的加减法。输入限制为64位bit长度的整数,输出不限。 (2) 计算32位长整数的乘法。输入限制为32位bit长度的整数,输出不限。 (3) 计算64位长整数的除法。输入限制为64位bit长度的整数,输出不限。 2,实现简单的计算器。 (1) 输入加减乘除及整数,计算最终结果,可以不考虑溢出,但是需要考虑0作为除数的情况。 (2) 输入加减乘除括号及整数,其他同上。 3,实现哈夫曼编码算法。 |
[技术| 编程·课件·Linux] 暑期补课数据结构实验
callmesb
· 发布于 2012-08-11 19:12
· 10746 次阅读
转载文章时务必注明原作者及原始链接,并注明「发表于 软院网 RuanYuan.Net 」,并不得对作品进行修改。
上午写了个第四题,写的不好大家轻砸,供有需的朋友参考。 [C++] 纯文本查看 复制代码 // 快排加二分查找.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<stdlib.h> #include<iostream> #include<ctime> using namespace std; #define N 100 int a[N]; int key; int Partition(int arr[],int low,int high)//分割 { int pivotkey; pivotkey = arr[low]; while( low<high ) { while( low<high && arr[high]>=pivotkey ) --high; arr[low] = arr[high]; while( low<high && arr[low]<=pivotkey ) ++low; arr[high] = arr[low]; } arr[low] = pivotkey; return low; } void qsort(int arr[],int low,int high) { int pivotloc;//枢轴 if( low<high ) { pivotloc = Partition(arr,low,high); qsort(arr,low,pivotloc-1); qsort(arr,pivotloc+1,high); } } int Search_Bin(int arr[],int low,int high,int key) { int mid; while( low<=high ) { mid = ( low+high )/2; if ( arr[mid] == key ) { return mid; } else if( arr[mid] > key ) { high = mid - 1; } else low = mid + 1; } return 0; } int main() { srand((unsigned)time(NULL)); for(int i=0;i<N;i++) { a[i]=rand()%100; } int startnum=0; int len=N; qsort(a,startnum,len); cout<<"快排结果"<<endl; for(int i=0;i<N;i++) { cout<<a[i]<<' '; } cout<<"请输入要查找位置的数字"<<endl; cin>>key; cout<<Search_Bin(a,startnum,len,key)<<endl; system("pause"); } |
谢谢楼主! |
geliable~~~~~~ |
没补课的同志看看跟着学学 |
多谢啦~~~ |
我表示很难做啊。 |
let me have a look thx~~~~~~~~~~~ |
啊唉唉唉唉哎哎哎哎 |
en,thank you. |