知识大全 数据结构考研分类复习真题 第二章 答案[33]

Posted 结点

篇首语:贫不足羞,可羞是贫而无志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第二章 答案[33]相关的知识,希望对你有一定的参考价值。

   .[题目分析] 在单链表中删除自第i个元素起的共len个元素 应从第 个元素起开始计数 记到第i个时开始数len个 然后将第i 个元素的后继指针指向第i+len个结点 实现了在A链表中删除自第i个起的len个结点 这时应继续查到A的尾结点 得到删除元素后的A链表 再查B链表的第j个元素 将A链表插入之 插入和删除中应注意前驱后继关系 不能使链表 断链 另外 算法中应判断i len和j的合法性

  LinkedList  DelInsert(LinkedList heada headb int i j len)∥heada和headb均是带头结点的单链表 本算法删除heada链表中自第i个元素起的共len个元素 然后将单链表heada插入到headb的第j个元素之前   if(i< || len< || j< )printf( 参数错误\\n );exit( );∥参数错 退出算法   p=heada;∥p为链表A的工作指针 初始化为A的头指针 查到第i个元素时 p指向第i 个元素  k= ;∥计数  while(p!=null && k<i )∥查找第i个结点   k++;p=p >next;  if(p==null)printf( 给的%d太大\\n i);exit( );∥i太大 退出算法  q=p >next;∥q为工作指针 初始指向A链表第一个被删结点   k= ;  while(q!=null && k<len)k++;u=q q=q >next;free(u);∥删除结点 后移指针   if(k<len)printf( 给的%d太大\\n len);exit( );  p >next=q;∥A链表删除了len个元素   if (heada >next!=null)∥heada >next=null说明链表中结点均已删除 无需往B表插入  while(p >next!=null)p= p >next;∥找A的尾结点   q=headb;∥q为链表B的工作指针   k= ;∥计数  while(q!=null && k<j )∥查找第j个结点   k++;q= q >next;∥查找成功时 q指向第j 个结点  if(q==null)printf( 给的%d太大\\n j);exit( );  p >next=q >next;∥将A链表链入  q >next=heada >next;∥A的第一元素结点链在B的第j 个结点之后  //if  free(heada);∥释放A表头结点   ∥算法结束

cha138/Article/program/sjjg/201311/23337

相关参考

知识大全 数据结构考研分类复习真题 第十章 答案[33]

  PROCEDURE StraightInsertSort(VARR:listtype;n:integer);  VARij:integer;  BEGIN  FORi:=TOnDO&nb

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[33]

  intBTLC(BiTreeTint*c)//对二叉树T的结点计数  if(T)  *c++;  BTLC(T>lchild&c);//统计左子树结点  BTLC(T>rchi

知识大全 数据结构考研分类复习真题 第五章 答案[33]

  [题目分析]寻找马鞍点最直接的方法是在一行中找出一个最小值元素然后检查该元素是否是元素所在列的最大元素如是则输出一个马鞍点时间复杂度是O(m*(m+n))本算法使用两个辅助数组max和min存放每

知识大全 数据结构考研分类复习真题 第二章 答案[1]

  第章 线性表答案  一.选择题  ABCADDDCBBCIIEBCBCCCAAADCBDCBBAD  二.判断题  ×√√××××××××××√×√  部分答案解释如下  头结点并不仅起

知识大全 数据结构考研分类复习真题 第二章 答案[4]

  .()la      ()         &

知识大全 数据结构考研分类复习真题 第二章 答案[54]

  .[题目分析]本题所用数据结构是静态双向链表其结构定义为  typedef struct node  char data[maxsize];∥用户姓名maxsize是

知识大全 数据结构考研分类复习真题 第二章 答案[51]

  ()voidCreatOut()∥建立有n个单词的单向链表重复单词只在链表中保留一个最后输出频度最高的k个单词  LinkedListla;  la=(LinkedList)malloc(size

知识大全 数据结构考研分类复习真题 第二章 答案[46]

  .[题目分析]在递增有序的线性表中删除数值相同的元素要知道被删除元素结点的前驱结点  LinkedListDelSame(LinkedListla)  ∥la是递增有序的单链表本算法去掉数值相同的

知识大全 数据结构考研分类复习真题 第二章 答案[42]

  ()要求编程实现带头结点的单链表的逆置首先建立一单链表然后逆置  typedef struct node  int data;∥假定结点数据域为整型  struct&

知识大全 数据结构考研分类复习真题 第二章 答案[13]

  ()本题与上面两题类似要求结果指针为lc其核心语句段如下  pa=la>next;pb=hb>next;  lc=(LinkedList)malloc(sizeof(LNode));