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

Posted 结点

篇首语:正确的道路是这样:吸取你的前辈所做的一切,然后再往前走。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第二章 答案[48]相关的知识,希望对你有一定的参考价值。

   .[题目分析] 在由正整数序列组成的有序单链表中 数据递增有序 允许相等整数存在 确定比正整数x大的数有几个属于计数问题 相同数只计一次 要求记住前驱 前驱和后继值不同时移动前驱指针 进行计数 将比正整数x小的数按递减排序 属于单链表的逆置问题 比正整数x大的偶数从表中删除 属于单链表中结点的删除 必须记住其前驱 以使链表不断链 算法结束时 链表中结点的排列是 小于x的数按递减排列 接着是x(若有的话) 最后是大于x的奇数

  void  exam(LinkedList la int x)∥la是递增有序单链表 数据域为正整数 本算法确定比x大的数有几个;将比x小的数按递减排序 并将比x大的偶数从链表中删除 )  p=la >next;q=p;∥p为工作指针  q指向最小值元素 其可能的后继将是>=x的第一个元素   pre=la;∥pre为p的前驱结点指针   k= ;∥计数(比x大的数)   la >next=null;∥置空单链表表头结点   while(p && p >data<x)∥先解决比x小的数按递减次序排列  r=p >next;∥暂存后继  p >next=la >next;∥逆置  la >next=p;  p=r;∥恢复当前指针 退出循环时 r指向值>=x的结点     q >next=p; pre=q;∥pre指向结点的前驱结点  while(p >data==x)pre=p; p=p >next;∥从小于x到大于x可能经过等于x  while(p)∥以下结点的数据域的值均大于x  k++; x=p >data;∥下面仍用x表示数据域的值 计数  if(x % == )∥删偶数  while (p >data==x)  u=p;p=p >next;free(u);  pre >next=p;∥拉上链    else∥处理奇数  while (p >data==x)∥相同数只记一次  pre >next=p;pre=p;p=p >next;  ∥while(p)  printf( 比值%d大的数有%d个\\n x k);  ∥算法exam结束

  [算法讨论] 本题 要求用最少的时间和最小的空间 本算法中 最少的时间 体现在链表指针不回溯 最小空间是利用了几个变量 在查比x大的数时 必须找到第一个比x大的数所在结点(因等于x的数可能有 也可能多个 也可能没有) 之后 计数据的第一次出现 同时删去偶数

  顺便指出 题目设有 按递增次序 的 有序单链表 所给例子序列与题目的论述并不一致

cha138/Article/program/sjjg/201311/23323

相关参考

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

  [题目分析]数组A和B的元素分别有序欲将两数组合并到C数组使C仍有序应将A和B拷贝到C只要注意A和B数组指针的使用以及正确处理一数组读完数据后将另一数组余下元素复制到C中即可  voidunion

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

  .[题目分析]在中序穿线二叉树中求某结点p的后序后继q需要知道p的双亲结点f的信息(中序线索树的性质若p是f的左子女则f是p的最右子孙的右线索若p是f的右子女则f是p的最左子孙的左线索)找到f后若

知识大全 数据结构考研分类复习真题 第二章 答案[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)); 

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

  .设 q:=p^llink; 则  q^rlink:=p^rlink; p^rlink^llink:=q; p^llink:=q^llink;  q^lli