Data Stuctures And Algorthms a

Data Stuctures And Algorthms a

ID:37276132

大小:122.00 KB

页数:35页

时间:2019-05-20

Data Stuctures And Algorthms a_第1页
Data Stuctures And Algorthms a_第2页
Data Stuctures And Algorthms a_第3页
Data Stuctures And Algorthms a_第4页
Data Stuctures And Algorthms a_第5页
资源描述:

《Data Stuctures And Algorthms a》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构知识:  1.数据结构中对象的定义,存储的表示及操作的实现.  2.线性:线性表、栈、队列、数组、字符串(广义表不考)   树:二叉树   集合:查找,排序   图(不考)能力:  分析,解决问题的能力过程:  ●确定问题的数据。  ●确定数据间的关系。  ●确定存储结构(顺序-数组、链表-指针)  ●确定算法  ●编程  ●算法评价(时间和空间复杂度,主要考时间复杂度)一、数组  1、存放于一个连续的空间  2、一维~多维数组的地址计算方式   已知data[0][0]的内存地址,且已知

2、一个元素所占内存空间S求data[i][j]在内存中的地址。   公式:(add+(i*12+j)*S)(假设此数组为data[10][12])  注意:起始地址不是data[0][0]时候的情况。起始地址为data[-3][8]和情况;  3、顺序表的定义   存储表示及相关操作  4、顺序表操作中时间复杂度估计  5、字符串的定义(字符串就是线性表),存储表示   模式匹配算法(简单和KMP(不考))  6、特殊矩阵:存储方法(压缩存储(按行,按列))   三对角:存储于一维数组   三对角问

3、题:已知Aij能求出在一维数组中的下标k;已知下标k求Aij。  7、稀疏矩阵:定义,存储方式:三元组表、十字链表(属于图部分,不考)  算法  ●数组中元素的原地逆置;对换  ●在顺序表中搜索值为X的元素;  ●在有序表中搜索值为X的元素;(折半查找)  ●在顺序表中的第i个位置插入元素X;  ●在顺序表中的第i个位置删除元素X;  ●两个有序表的合并;算法?  线性表数据结构定义:   Typedefstruct{    intdata[max_size];    intlen;   }lin

4、ear_list;  ●模式匹配  ●字符串相加  ●求子串  ●(i,j)<=>K注意:不同矩阵所用的公式不同;  ●稀疏矩阵的转置(两种方式,后种为妙)  ●和数组有关的算法  例程:求两个长整数之和。  a=13056952168  b=87081299  数组:  a[]:13056952168  b[]:87081299   由于以上的结构不够直观(一般越是直观越容易解决)将其改为:  a[]:11 86125965031a[0]=11(位数)  b[]:8 99218078000b[0

5、]=8  c进位 01100111100   c[]:11 76433044231c[0]的值(C位数)由c[max_s+1]决定!  注意:在求C前应该将C(max_s+1)位赋0.否则为随机数;较小的整数高位赋0.  算法:已知a,b两个长整数,结果:c=a+b;  总共相加次数:max_s=max(a[],b[])  程序:  for(i=1;i<=max_s;i++){   k=a[i]+b[i]+c[i];   c[i]=k%10;   c[i+1]=k/10;  }  求c位数:  i

6、f(c[max_s+1]==0)   c[0]=max_s;  else   c[0]=max_s+1;  以下代码是我编的(毕竟是初学者.不太简洁大家不要见怪!):  /*两长整数相加*/  #include  #include  #definePRINprintf("");  intflag=0;/*a[0]>b[0]?1:0*/  /*max(a[],b[]){}*/  change(charda[],chardb[],inta[],intb[],i

7、ntc[]){   inti;   if(a[0]>b[0]){    for(i=1;i<=a[0];a[i]=da[a[0]-i]-'0',i++);/*a[0]-'0'sogood!*/    for(i=1;i<=b[0];b[i]=db[b[0]-i]-'0',i++);    for(i=b[0]+1;i<=a[0];b[i]=0,i++);    for(i=1;i<=a[0]+1;c[i]=0,i++);    flag=1;   }   else{    for(i=1;i<=b

8、[0];b[i]=db[b[0]-i]-'0',i++);    for(i=1;i<=a[0];a[i]=da[a[0]-i]-'0',i++);    for(i=a[0]+1;i<=b[0];a[i]=0,i++);    for(i=1;i<=b[0]+1;c[i]=0,i++);   }  }  add(inta[],intb[],intc[]){   inti,sum;   if(flag==1){    for(i=1;i<=a[0];i++){     sum=a[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。