数据结构编程题汇总.doc

数据结构编程题汇总.doc

ID:51707236

大小:39.95 KB

页数:4页

时间:2020-03-15

数据结构编程题汇总.doc_第1页
数据结构编程题汇总.doc_第2页
数据结构编程题汇总.doc_第3页
数据结构编程题汇总.doc_第4页
资源描述:

《数据结构编程题汇总.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、2.11StatusInsert_SqList(SqList&va,intx)//把x插入递增有序表va中{  if(va.length+1>va.listsize)returnERROR;  va.length++;  for(i=va.length-1;va.elem[i]>x&&i>=0;i--)    va.elem[i+1]=va.elem[i];  va.elem[i+1]=x;  returnOK;}//Insert_SqList2.19StatusDelete_Between(Linklist&L,intmink,i

2、ntmaxk)//删除元素递增排列的链表L中值大于mink且小于maxk的所有元素{  p=L;  while(p->next->data<=mink)p=p->next;//p是最后一个不大于mink的元素  if(p->next)    //如果还有比mink更大的元素  {    q=p->next;    while(q->datanext;//q是第一个不小于maxk的元素    p->next=q;  }}//Delete_Between2.21voidreverse(SqList&A)//顺序表的

3、就地逆置{  for(i=1,j=A.length;iA.elem[j];}//reverse2.22voidLinkList_reverse(Linklist&L)//链表的就地逆置;为简化算法,假设表长大于2{  p=L->next;q=p->next;s=q->next;p->next=NULL;  while(s->next)  {    q->next=p;p=q;    q=s;s=s->next;//把L的元素逐个插入新表表头  }  q->next=p;s->ne

4、xt=q;L->next=s;}//LinkList_reverse分析:本算法的思想是,逐个地把L的当前元素q插入新的链表头部,p为新表表头.2.33StatusLinkList_Divide(LinkList&L,CiList&A,CiList&B,CiList&C)//把单链表L的元素按类型分为三个循环链表.CiList为带头结点的单循环链表类型.{  s=L->next;  A=(CiList*)malloc(sizeof(CiLNode));p=A;  B=(CiList*)malloc(sizeof(CiLNode));

5、q=B;  C=(CiList*)malloc(sizeof(CiLNode));r=C;//建立头结点  while(s)  {    if(isalphabet(s->data))    {      p->next=s;p=s;    }    elseif(isdigit(s->data))    {      q->next=s;q=s;    }    else    {      r->next=s;r=s;    }  }//while  p->next=A;q->next=B;r->next=C;//完成循环链表}

6、//LinkList_Divide2.38DuLNode*Locate_DuList(DuLinkedList&L,intx)//带freq域的双向循环链表上的查找{  p=L.next;  while(p.data!=x&&p!=L)p=p->next;  if(p==L)returnNULL;//没找到  p->freq++;q=p->pre;  while(q->freq<=p->freq&&p!=L)q=q->pre;//查找插入位置  if(q!=p->pre)  {    p->pre->next=p->next;p->

7、next->pre=p->pre;    q->next->pre=p;p->next=q->next;    q->next=p;p->pre=q;//调整位置  }  returnp;}//Locate_DuList3.19StatusAllBrackets_Test(char*str)//判别表达式中三种括号是否匹配{  InitStack(s);  for(p=str;*p;p++)  {    if(*p=='('

8、

9、*p=='['

10、

11、*p=='{')push(s,*p);    elseif(*p==')'

12、

13、*p=='

14、]'

15、

16、*p=='}')    {      if(StackEmpty(s))returnERROR;      pop(s,c);      if(*p==')'&&c!='(')returnERROR;      if(*p==

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

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

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