在顺序表中删除第i到第ji=j个元素算法_第1页
在顺序表中删除第i到第ji=j个元素算法_第2页
在顺序表中删除第i到第ji=j个元素算法_第3页
在顺序表中删除第i到第ji=j个元素算法_第4页
在顺序表中删除第i到第ji=j个元素算法_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、在顺序表中删除第 i到第 j(i=j) 个元素的算法 :Status SqListDeletei-j(SqList*L,int i, int j) if (iL-Length)& (jL-Length)return ERROR;for (;jlength;i+,j+)L-elemi-1=L-elemj ;L-Length-=j-i+1;return OK;编写一个将顺序表 L 中元素逆置的算法。并只允许在原有线性表的存储空间外再增加一个附加的工作单元。Status Reverse_Sq(SqList *L)int j ,tmp;for (j=0;jlength/2;j+) tmp = L-el

2、emj;L-elemj = L-elemL-length-j-1;L-elemL-length-j-1=tmp;return OK;求单链表中值为 e 的元素的后继元素 nexte 值的算法 :Status NextElem_L(LinkList L,ET e, ET *nexte) LinkList p;p = L-next;while (p-next) & (p-data != e)p = p-next;if (p-data = e) *nexte=p0-next-data;return OK;elsereturn ERROR;试编写删除顺序表L中从第 i 个元素起的k 个元素的算法Sta

3、tus ListDelete(SqList *L, int i, int k) if (iL-Length)return ERROR;p=L-elem+i-1;q=L-elem+L-Length-1-k;for (p;pLength-=k;return OK;试编写顺序表 L中在第 i 个位置起插入 n个值为e的元素的算法。Status ListInsert(SqList*L, int i, int n, ET e)if (iL-Length+1)return ERROR;if (L-Length+n= L-ListSize)p=(ET*)realloc(L-elem,(L-ListSize+

4、n)*sizeof(ET);if (p=NULL)exit(OVERFLOW);L-elem=p;L-ListSize+=ListIncrement;q=L-elem+i-1;for (p=L-elem+L-Length-1;p=q;-p)*(p+n)=*p;for (j=0;jelemi+j=e;L-Length+=n;return OK;已知线性表中的元素以值递增有序排列 , 并以单链表作存储结构。试写一算法,删除表中所有值大于 mink且小于maxk的元素。Status ListDelete(LinkListL,char mink, char maxk)LinkList p,q;if (

5、mink1 & maxk maxk)return ERROR;p = L;while (p-next&p-next-datanext;while (p-next &p-next-datanext;p-next = q-next;free(q);return OK;试写一算法,删除表中所有值相同的多余元素Status ListDelete(LinkListL)if (L-next)return ERROR;p = L-next;while (p)if (p-data = p-next-data)q = p-next;p-next = q-next;free(q);elsep = p-next;r

6、eturn OK;递归和非递归 -作业已知 f(n)函数 (n为自然数 )的定义如下:1(n=1)f(n) =2*f(n/2) + n(n1)( 1)写出计算 f(n) 的递归算法。( 2)利用堆栈改写出非递归算法。递归算法 -作业int DValue ( int n) if(n1)return0;else if (n=1)return1;elsereturn(2* DValue(n/2) +n) ;/* 若参数不合适( n1 ),结果为 0 */非递归算法分析设计 -作业若参数不合适(n1)非递归算法intValue ( intn) Stack S;int Tn=0,k;InitStack(&S) ;/ 建立堆栈while( n 0 ) Push(&S, n); n = n/2; while( ! StackEmpty(&S) Pop(&S,&k);Tn=2*Tn +k ; return Tn ;/* 若参数不合适( nlchild, bt

温馨提示

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

评论

0/150

提交评论