数据结构算法综合题浅析mooc_第1页
数据结构算法综合题浅析mooc_第2页
数据结构算法综合题浅析mooc_第3页
数据结构算法综合题浅析mooc_第4页
数据结构算法综合题浅析mooc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构算法题和操作系统pv数据结构算法题和操作系统pv操作部分。语言要求+1.C++是C的超集,沿袭了C的语法规则,增加了面向对象功能(C/C++)十年408真题数据十年408真题数据结构部分算法线性求中位数线性二叉树树线性树转中树线性理论图查图树图树图图时间复杂度空间复杂度【2009年计算机联考真题…qp相距为k-^…qp相距为k-^typedefintElemType;typedefstructLNode{//链表数据的类型//链表结点的结构typedefintElemType;typedefstructLNode{//链表数据的类型//链表结点的结构//结点数//结点链接指structLNode}LNode,//指针p、q指示第一个int{if(count<k)count++;elseq=q->link;//遍历链表直到最后一个时间复杂度//计数,若count<k只移动空间复杂度//之后让p、q同步{//查找失败返回//否则打印并返回}}技巧技巧题(多以数组为载体voidquick_sort(int*array,voidquick_sort(int*array,intleft,{if(left>=right)inti=left-1,j=right+1,tmp=0;{intmid=快速排序模while(array[++i]<while(array[--j]>if(i>=j)break;}quick_sort(array,i-quick_sort(array,j+1,}{findmin(intintlow=0,high=n-1;while{findmin(intintlow=0,high=n-1;while(low<=high){二分查找模题目关键字:有序、中if(data[mid]>x)high=mid-else}return}小小小X大大大大方法一:直接将两序列合并(S1+S2),低级排序,时间复杂度O(n2),空间24682468方法一:直接将两序列合并(S1+S2),低级排序,时间复杂度O(n2),空间24682468【2011年计算机联考真题{{}2468方法四(最优法方法四(最优法M_Search(intA[],intn){ints1=0,d1=n-1,m1,s2=0,d2=n-1,m2;while(M_Search(intA[],intn){ints1=0,d1=n-1,m1,s2=0,d2=n-1,m2;while(s1!=d1||s2!=d2){}}}}}}//满足条件//满足条件//若元素个数为奇//舍弃A中间点以前的部分且保留中间//舍弃B中间点以后的部分且保留中间//元素个数为偶//舍弃A中间点及中间点以前//舍弃B中间点以后部分且保留中间//满足条件//若元素个数为奇//舍弃A中间点以后的部分且保留中间//舍弃B中间点以前的部分且保留中间//元素个数为偶//舍弃A中间点以后部分且保留中间//舍弃B中间点及中间点以前}returnA[s1]<B[s2]?}已知一个整数序列A=(a0a1an-1),其中0≤ai<n(0≤i<n)。若存在ap1=ap2=…=apm=x且m>(0≤pk<n,1≤k≤m),则称x为A的主元素。例如A=(0,5,5,3,5,7,5,5),则5为主元素;又如A=(0,5,3,5,1,5,7),则A中没有主元素。假设A中的n个元素保存在一个一维数组中,请设计一个尽可能高效【2013年计算机联考真题{minnum(int*a,int*flag=newint[n+1],i;ifif(flag[i]==0)returnreturn}【2018年计算机联考真题回忆版有关有关于树的代码实【2017年计算机联考真题typedefstructchardata[10];//存储操作数或操作符structnode*left,*right;voidBtreeToE(BTreeBtreeToExp(root,voidBtreeToE(BTreeBtreeToExp(root,}voidBtreeToExp(BTree*root,int{if(root==NULL)printf(“%s”,root-if(deep>1)printf(“%s”,root-if(deep>1)}}WPL(BiTreereturn}前序遍wpl_PreOrderWPL(BiTreereturn}前序遍wpl_PreOrder(BiTreestaticint//静态变量if(root->lchild==NULL&&root-wpl+=deep*root-//若为叶结点,累积if(root-//若左子树不空,对左子树递wpl_PreOrder(root-if(root-//若右子树不空,对右子树递wpl_PreOrder(root-return}【2014年计算机联考真题initialboolAncestors(initialboolAncestors(Node*root,int{{(!root)return(root->data==x)returnreturn}return}动态动态规划、深度优先搜索等套{fib(intif{fib(intif(n==0||n==1)return}{fib_dp(intintdp[maxn]={-1,-1,-1,...,-1};if(n==0||n==1return1;//边界条件if(dp[n]!=-1)returndp[n];return}{findmax({findmax(int1.此连续序列若只有A[i]一个元素,那dp[i]2.此连续序列若不止一个元素,那dp[i]A[idp[i-以上两者,比较后取最大值就是intdp[maxn];dp[0]=A[0//边界条件for(intintans=0;for(intif(dp[i]>dp[ans])ans=i;returndp[ans];}10,-4,7,2,-5},请设计一个时间上尽可能高效的算法,求出数组A的子数组之和的最大值(例如数组背包问题(01背包、完全背包void{if(到达终点void{if(到达终点状态{}{(循环查找下一个位置if(下一个位置状态合法{....//根据题意来添更新状态//flag[i]=1;剪枝(还原状态,回溯);//flag[i]=0k}}}深度优先搜索voiddfs(char*ch,voiddfs(char*ch,intn,intlength)//n{if{}{(inti=length-}}charvoid{if(到达终点状void{if(到达终点状态{}状态转移方程(递推关系式{(循环查找下一个位置if(下一个位置状态合法{....//根据题意来添更新状态//flag[i]=1;剪枝(还原状态,回溯);//flag[i]=0k}}}【关【关于理论分析题【2017年计算机联考真题11001110010011011321202201100111001001101132120220231031112A201013【2015年计算机联考真题532432361ASL成功=查找次数/元素个数78911113320123456789789789036ASL成功=查找次数/元素个数789111133201234567897897890365560【2010年计算机联考真题ASL不成功=查找次数/散列后的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论