知识大全 数据结构与算法线性表复习习题5[2]

Posted 元素

篇首语:不戚戚于贫贱,不汲汲于富贵。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构与算法线性表复习习题5[2]相关的知识,希望对你有一定的参考价值。

       要求同 题 试对单链表编写求C的算法

  解

  // 将A B求交后的结果放在C表中 并删除B表

  Status ListCross_L(LinkList &A LinkList &B LinkList &C)

  

  LinkList pa pb qa qb pt;

  pa=A;

  pb=B;

  qa=pa;// 保存pa的前驱指针

  qb=pb;// 保存pb的前驱指针

  pa=pa >next;

  pb=pb >next;

  C=A;

  while(pa&&pb)

  if(pa >data<pb >data)

  pt=pa;

  pa=pa >next;

  qa >next=pa;

  free(pt);

  

  else

  if(pa >data>pb >data)

  pt=pb;

  pb=pb >next;

  qb >next=pb;

  free(pt);

  

  else

  qa=pa;

  pa=pa >next;

  

  

  while(pa)

  pt=pa;

  pa=pa >next;

  qa >next=pa;

  free(pt);

  

  while(pb)

  pt=pb;

  pb=pb >next;

  qb >next=pb;

  free(pt);

  

  pb=B;

  free(pb);

  return OK;

  

   对 题的条件作以下两点修改 对顺序表重新编写求得表C的算法

  ( ) 假设在同一表(A或B)中可能存在值相同的元素 但要求新生成的表C中的元素值各不相同

  ( ) 利用A表空间存放表C

  解

  ( )

  // A B求交 然后删除相同元素 将结果放在C表中

  Status ListCrossDelSame_Sq(SqList &A SqList &B SqList &C)

  

  int i= j= k= ;

  while(i<A length && j<B length)

  if(A elem[i]<B elem[j])i++;

  else

  if(A elem[i]>B elem[j])j++;

  else

  if(C length== )

  ListInsert_Sq(C k A elem[i]);

  k++;

  

  else

  if(C elem[C length ]!=A elem[i])

  ListInsert_Sq(C k A elem[i]);

  k++;

  

  i++;

  

  

  return OK;

  

  ( )

  // A B求交 然后删除相同元素 将结果放在A表中

  Status ListCrossDelSame_Sq(SqList &A SqList &B)

  

  int i= j= k= ;

  while(i<A length && j<B length)

  if(A elem[i]<B elem[j])i++;

  else

  if(A elem[i]>B elem[j])j++;

  else

  if(k== )

  A elem[k]=A elem[i];

  k++;

  

  else

  if(A elem[k]!=A elem[i])

  A elem[k]=A elem[i];

  k++;

  

  i++;

  

  

  A length=k;

  return OK;

  

cha138/Article/program/sjjg/201311/23405

相关参考

知识大全 数据结构与算法线性表复习习题5[3]

      对题的条件作以下两点修改对单链表重新编写求得表C的算法  ()假设在同一表(A或B)中可能存在值相同的元素但要求新生成的表C中的

知识大全 数据结构与算法线性表复习习题6[2]

      已知有一个单向循环链表其每个结点中含三个域predata和next其中data为数据域next为指向后继结点的指针域pre也为指

知识大全 数据结构与算法线性表复习习题2

  已知L是无表头结点的单链表且P结点既不是首元结点也不是尾元结点试从下列提供的答案中选择合适的语句序列  a在P结点后插入S结点的语句序列是__________________  b在P结点前插入S

知识大全 数据结构与算法线性表复习习题3

  指出以下算法中的错误和低效之处并将它改写为一个既正确又高效的算法  StatusDeleteK(SqList&aintiintk)    //本过程从顺序存储结构的线性表a中删除第i个元素

知识大全 数据结构与算法线性表复习习题4

  已知指针la和lb分别指向两个无头结点单链表中的首元结点下列算法是从表la中删除自第i个元素起共len个元素后将它们插入到表lb中第i个元素之前试问此算法是否正确?若有错请改正之  StatusD

知识大全 数据结构与算法线性表复习习题6[1]

  已知AB和C为三个递增有序的线性表现要求对A表作如下操作删去那些既在B表中出现又在C表中出现的元素试对顺序表编写实现上述操作的算法并分析你的算法的时间复杂度(注意题中没有特别指明同一表中的元素值各

知识大全 数据结构与算法线性表复习习题1

  第章 线性表  描述以下三个概念的区别头指针头结点首元结点(第一个元素结点)  解头指针是指向链表中第一个结点的指针首元结点是指链表中存储第一个数据元素的结点头结点是在首元结点之前附设的

知识大全 数据结构与算法线性表复习习题6[3]

      假设在算法描述语言中引入指针的二元运算异或若a和b为指针则a⊕b的运算结果仍为原指针类型且  a⊕(a⊕b)=(a⊕a)⊕b=b

知识大全 数据结构与算法概论复习习题[2]

      在程序设计中常用下列三种不同的出错处理方式  ()用exit语句终止执行并报告错误  ()以函数的返回值区别正确返回或错误返回 

知识大全 数据结构考研分类复习真题 第二章 线性表[39]

  已知长度为n的线性表A采用顺序存储结构请写一时间复杂度为(n)空间复杂度为()的算法该算法删除线性表中所有值为item的数据元素(O()表示算法的辅助空间为常量)  【北京航空航天大学五(分)】