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

Posted 指针

篇首语:私心胜者,可以灭公。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构与算法线性表复习习题5[3]相关的知识,希望对你有一定的参考价值。

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

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

  ( ) 利用原表(A表或B表)中的结点构成表C 并释放A表中的无用结点空间

  解

  ( )

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

  Status ListCrossDelSame_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

  if(pa >data==qa >data)

  pt=pa;

  pa=pa >next;

  qa >next=pa;

  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;

  

  ( )

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

  Status ListCrossDelSame_L(LinkList &A LinkList &B)

  

  LinkList pa pb qa qb pt;

  pa=A;

  pb=B;

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

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

  pa=pa >next;

  pb=pb >next;

  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

  if(pa >data==qa >data)

  pt=pa;

  pa=pa >next;

  qa >next=pa;

  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;

  

cha138/Article/program/sjjg/201311/23406

相关参考

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

      要求同题试对单链表编写求C的算法  解  //将AB求交后的结果放在C表中并删除B表  StatusListCross_L(Li

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      判断下列各对函数f(n)和g(n)当时n→∞哪个函数增长更快?  试用数学归纳法证明  试写一算法自大至小依次输出顺序读入的三个

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

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